JPQL 프로젝션으로 N+1 문제와 Over-fetching 해결하기
·
Jungle
카테고리별 상품 조회 API에서 성능 문제가 발생했다. 문제의 원인은 불필요한 데이터를 너무 많이 조회하고, JPA가 필요 이상으로 엔티티를 관리하고 있었기 때문이다.이번 포스트에서는 JPQL 프로젝션을 도입해서 이 문제들을 해결한 과정을 공유해보려고 한다.🚨 기존 방식의 문제점현재 데이터 흐름기존 카테고리별 상품 목록 조회 API의 데이터 흐름은 다음과 같았다:[Repository] → [Service] → [Controller] → [HTTP Response] ↓ ↓ ↓ Product 엔티티 → DTO 변환 → JSON 응답이 과정에서 두 가지 주요 비효율이 발생하고 있었다.문제 1: Over-fetching (불필요한 데이터 조회)Over..