[JPA] N+1 문제와 3가지 전략에 대한 고찰

·
Serve/Spring Boot
들어가며최근 IT 창업 동아리 멋쟁이 사자처럼 홈페이지를 만들며 조회 성능 개선을 진행하였다. 그 과정에서 N+1 문제를 해결하기 위해 JPQL을 도입하였고 그동안 추상적으로만 알고 있던 N+1 문제에 대해서 정리하려고 한다. 처음에는 N+1문제가 발생하는 조건과 상황을 소개하고, 이후에 3가지 해결책을 소개하며, 마지막에는 상황에 맞는 전략을 정리할 것이다.특히 마지막 부분에는 결론적으로 N+1문제가 발생할 수 밖에 없던던 Spring Data JPA의 설계 철학과 의도에 대해서 본인만의 생각을 정리하고자 한다. N+1 문제 상황N+1 문제란?JPA를 사용하면서 지연 로딩으로 설정된 엔티티의 연관관계를 조회할 때, 예상보다 많은 SQL 쿼리가 실행되어 불필요한 DB 조회가 발생하는 현상을 말한다.문제 ..