본문 바로가기
반응형

세션3

[Spring boot jpa] 연관된 엔티티 불러올때 LazyInitializationException 발생하는 문제 해결 지연 로딩하려 할 때 세션/entityManager이 닫혀 LazyInitializationException이 발생하는 문제 @OneToMany 관계에서 fetch의 기본값은 LAZY이다.@OneToMany(mappedBy = "house", cascade = CascadeType.ALL)private List rooms = new ArrayList();원인지연 로딩(Lazy Loading) 관련 오류FetchType.LAZY는 엔티티 관계에서 연관된 다른 엔티티를 지연 로딩 방식으로 로딩하겠다는 의미이다.그러나 지연 로딩을 사용하는 엔티티가 프록시 객체로 반환되기 때문에, 실제로 해당 엔티티가 사용될 때까지 로딩되지 않는다.이 때문에, 관계된 엔티티가 사용될 때 LazyInitializationExce.. 2025. 1. 25.
[Spring] HTTP 세션의 개념과 로그인 구현 세션이라는것은 쿠키 기반이기 때문에 쿠키에 대한 이해가 필요하므로 이전 포스트를 보고 오시면 좋습니다. 자바 스프링에서 HttpSession을 이미 지원하기 때문에, 이것을 이용해 간단한 세션 로그인을 구현해보겠습니다. 세션을 직접적으로 구현하는 것은 만약에 요청이 들어오면 나중에 포스트하겠습니다! HttpSession이 알아서 세션을 구현해줄테지만, 그래도 내부 원리를 알고 써야되기 때문에 (redis등을 적용하려면) 원리를 설명하고 적용하는 것을 보여드리겠습니다. 이전 포스트에서 오로지 쿠키만을 이용했을때 생기는 보안문제에 대해서 보고, 그의 대안책으로 세션이 나온것이라고 배웠습니다. 쿠키 값은 임의로 변경할 수 있고, 보관된 정보는 훔쳐갈 수 있습니다. 만약 쿠키에 개인정보나, 신용카드 정보가 있다.. 2023. 5. 6.
[Spring] HTTP 쿠키의 개념과 로그인 구현 보통 현업에서는 Spring Security(스프링 시큐리티)라이브러리를 사용하거나, 세션을 이용합니다. 오로지 쿠키로만 로그인을 구현하면 심각한 보안 문제가 있으므로 토큰이나 세션, 라이브러리를 추가로 사용해야됩니다. 그래도 쿠키의 개념과 용도는 알아야하므로 쿠키를 다뤄보는 실습을 제작하게 됐습니다. Stateless(무상태) 프로토콜 우리가 현재 사용하는 HTTP 프로토콜은 Stateless(무상태), 비연결성 프로토콜 입니다. (연결성이 필요한 경우 소켓 프로토콜이라고 따로 이용합니다.) 클라이언트와 서버가 요청과 응답을 주고 받으면 연결이 끊어지고, 클라이언트가 다시 요청하면 서버는 이전 내용을 기억하지 못합니다. 클라이언트와 서버는 서로 상태를 유지하지 못하는 대신의 서버의 확장성이 좋다는 장점.. 2023. 3. 27.