QueryCounter1 JPA N+1 완전 정복: 자동 감지부터 fetch join·EntityGraph·batch_size 실전 해결 전략 JPA N+1 완전 정복: 자동 감지부터 fetch join·EntityGraph·batch_size 실전 해결 전략운영 중인 서비스에서 가장 많이 겪는 퍼포먼스 문제 중 하나가 바로 N+1 문제입니다.제가 실제로 겪었던 한 사건은, 한 페이지 조회가 로컬에서는 몇 ms였는데운영에서는 갑자기 3~5초로 느려지며 장애 직전까지 갔던 일이었습니다.원인은 단순했습니다. 리스트 조회 → 연관 엔티티 지연 로딩 → 수십~수백 건의 추가 쿼리 발생.튜닝하기 전까지는 도대체 왜 이런 일이 생기는지 이해조차 어려운 문제였습니다.그래서 이 글에서는 단순히 “N+1이 뭔지” 설명하는 수준을 넘어서,실제 서비스에서 어떻게 자동 감지하고, 어떻게 해결했는지까지 모두 정리해 봅니다. 1. N+1은 왜 생기는가? (지연 로딩의.. 2025. 10. 9. 이전 1 다음