[JPA] N+1 문제 개선
·
Spring
JPA에서 N+1 문제란?요청이 1개의 쿼리로 처리되기를 기대했는데 N개의 추가 쿼리가 발생하는 현상즉, 1번의 쿼리로 N개의 데이터를 조회한 후 각각에 대해 추가로 1번씩 쿼리를 실행하는 문제. 결과적으로는 1 + N번의 쿼리가 실행된다.현상 분석 전 JPA의 핵심개념영속성 컨텍스트(Persistence Context): 엔티티를 관리하는 메모리 공간프록시 객체(Proxy): 실제 객체 대신 사용하는 가짜 객체지연 로딩(Lazy Loading): 필요할 때까지 데이터를 조회하지 않는 전략왜 N+1 쿼리가 발생하는가?JPA가 문제를 일으키는 근본적인 이유는 '관계를 맺고 있는 엔티티에 대한 조회 시점을 최적화' 하려는 시도 때문사용하는 Fetch 전략은 3가지가 있다. EAGER Loading, LAZY..