Spring
N+1 문제
save한 데이터를 그대로 리턴해주면 컨트롤러도 엔티티를 그대로 리턴할 것이기 때문에 메세지 컨버터가 json으로 변환하기 위해 getter를 계속 때리며 혹시 연관관계가 있다면 N+1 문제(순환참조문제)가 발생할 수 있다. 엔티티는 DB랑만 통신해야 한다. 이는 @JsonIgnoreProperties 어노테이션을 붙여줘도 되지만, dto로 변환시켜 응답해주는게 좋다. dto를 서비스에서 변환하는 순간 단점이 하나 생긴다. OSIV가 false인것과 동일해진다. OSIV(Open Session In View) 여기서 세션은 데이터베이스 세션(DB Connection) 뷰까지 세션이 오픈되는게 OSIV이다. 여기서 뷰는 컨트롤러를 말한다. 컨트롤러의 책임은 파싱하고, 뷰 찾아주고 이런걸 해야하는데 스프링 ..
2022. 5. 30. 11:09