[JAVA] N+1 문제와 해결 방법 – Fetch Join과 @EntityGraph로 해결하기
JPA를 실무에 도입하면 많은 개발자가 가장 먼저 마주하는 성능 문제 중 하나가 N+1 문제입니다. 간단한 데이터 조회 쿼리처럼 보이지만, 실제 서비스 환경에서는 심각한 성능 저하로 이어질 수 있습니다. N+1 문제의 발생 원인부터 실전 해결책인 Fetch Join과 @EntityGraph를 활용하는 을 정리했습니다. 1. N+1 문제란 무엇인가?간단히 말해, 1번의 조회 쿼리(N) 이후에 관련된 엔티티를 조회하기 위한 추가 쿼리(+N)가 발생하는 문제입니다. 예를 들어 게시글(Post) 리스트를 조회하고, 각 게시글의 댓글(Comment) 리스트를 같이 가져오려고 할 때 다음과 같은 쿼리 구조가 됩니다.List posts = postRepository.findAll();for (Post post : ..