Spring Data JPA 2

Spring Data JPA 고급 기능 - Specification, Projection, Auditing

들어가며Spring Data JPA는 기본 CRUD 외에도 강력한 고급 기능들을 제공합니다. 동적 쿼리를 위한 Specification, 필요한 컬럼만 조회하는 Projection, 생성/수정 시간을 자동 관리하는 Auditing 등을 제대로 활용하면 코드 품질과 생산성을 크게 높일 수 있습니다. 이 글에서는 실무에서 바로 적용 가능한 수준으로 각 기능을 다루겠습니다.1. JpaSpecificationExecutor - 동적 쿼리 구현검색 조건이 동적으로 변하는 경우(관리자 검색 화면 등), QueryDSL 없이 Specification만으로도 깔끔하게 동적 쿼리를 구현할 수 있습니다.Repository에 JpaSpecificationExecutor 추가public interface ProductRepo..

JPA 2026.04.03

JPA N+1 문제 완벽 정리 - 원인부터 해결까지 실무 가이드

들어가며JPA를 사용하는 백엔드 개발자라면 한 번쯤은 마주치게 되는 문제가 있습니다. 바로 N+1 문제입니다. 분명 하나의 쿼리로 끝날 것 같았는데, 콘솔 로그를 열어보면 수십, 수백 개의 쿼리가 쏟아지는 경험을 해보셨을 겁니다. 이 글에서는 N+1 문제의 원인을 정확히 이해하고, 실무에서 바로 적용할 수 있는 해결법을 정리하겠습니다.1. N+1 문제란 무엇인가N+1 문제는 연관 관계가 설정된 엔티티를 조회할 때, 1번의 쿼리로 N개의 엔티티를 가져온 뒤, 각 엔티티의 연관된 데이터를 가져오기 위해 추가로 N번의 쿼리가 실행되는 현상입니다. 총 1 + N번의 쿼리가 발생하기 때문에 N+1 문제라고 부릅니다.간단한 예시로 이해하기팀(Team)과 회원(Member)이 일대다 관계라고 가정하겠습니다.@Enti..

JPA 2026.03.24