
[Spring Data JPA] Offset 기반 Pagination 성능 향상하기 (index 설정, count 쿼리 캐싱)
·
Java & Kotlin/JPA
🧐 들어가기전프로젝트를 진행하면서 Pageable을 활용한 검색 필터링 API를 구현해야 했다. 이 API는 프로젝트의 핵심 자재인 원단을 등록하고 조회할 때 사용되며, 비즈니스 로직의 특성상 원단은 빈번하게 조회해야 하며, 조회 결과를 기반으로 다음 단계의 로직이 수행되기 때문에 조회 성능이 매우 중요한 요소였다. 해당 API는 총 다섯 개의 파라미터를 받는다.page, size, startDate, endDate, 그리고 fabricTypeName이며, 이 중 fabricTypeName만 필수로 입력받고 나머지 값들은 선택적으로 전달된다. JPA Repository에서는 아래와 같이 @Query를 사용하여 JPQL로 조회 조건을 정의하였다: @Query( """ SELECT f F..