[로아투두] JPA N+1 문제 해결과 쿼리 카운팅 기반 성능 테스트 인프라 구축
·
Project/LOATODO
개요이번 작업에서는 ScheduleService.search() 메서드에서 발생하던 N+1 문제를 해결하고, 향후 동일한 문제의 재발을 방지하기 위한 쿼리 카운팅 기반 성능 테스트 인프라를 구축했습니다. 본 글에서는 문제의 원인 분석, 해결 과정, 그리고 테스트 인프라의 설계 의도를 상세히 다룹니다.1. 문제 분석1.1 N+1 문제란N+1 문제는 ORM을 사용하는 애플리케이션에서 빈번하게 발생하는 성능 이슈입니다. 하나의 쿼리로 N개의 엔티티를 조회한 후, 각 엔티티의 연관 데이터를 가져오기 위해 N번의 추가 쿼리가 발생하는 현상을 말합니다.예를 들어 100개의 일정을 조회하고, 각 일정에 참여한 친구 목록을 가져와야 한다면:일정 목록 조회: 1회각 일정별 친구 조회: 100회총 101회의 쿼리 발생이 ..