N+1 problem Fact Check

2025-09-05

두 줄 요약


N+1은 “1개의 초기 쿼리(N개 결과) + N개의 추가 쿼리가 실행”를 의미합니다.

Fetch Join, 어노테이션으로 같이 조회, 쿼리 최적화 옵션을 통해 N+1 문제를 해결할 수 있다네요.. (우와 멋지다..)

Fact 1. N+1은 ORM의 정상 동작

Fact 2. Lazy Loading의 존재 이유 == 높은 결합도

Fact 3. 제대로 된 Aggregate라면 한 번의 쿼리로 충분

결론은 N+1으로 인해 성능 문제가 발생하면 Fetch Join의 종류를 외우지 말고 "왜 이 객체들이 함께 조회되야 하지?"를 고민해보기.