[JPA] N+1 문제란 무엇일까?
·
Back-End/Spring
Spring Boot 프로젝트를 진행하다 보면 JPA의 연관관계를 자주 사용하게 된다.처음에는 @ManyToOne, @OneToMany 같은 연관관계를 단순히 Entity끼리 연결하는 기능으로 사용했지만, 실제 조회 로직을 작성하다 보면 예상보다 많은 SQL이 실행되는 상황을 마주할 수 있다.이때 자주 언급되는 문제가 바로 N+1 문제다.N+1 문제란?N+1 문제는 하나의 조회 쿼리를 실행한 뒤, 조회된 N개의 데이터와 연관된 데이터를 가져오기 위해 추가 쿼리가 N번 더 실행되는 문제를 말한다.예를 들어 상품 목록을 조회했는데, 각 상품의 판매자 정보를 가져오기 위해 상품 개수만큼 추가 쿼리가 실행되는 상황이다.상품 목록 조회 쿼리 1번+ 각 상품의 판매자 조회 쿼리 N번= 총 N+1번의 쿼리 실행즉, ..