Spring Data JPA는 데이터 액세스 계층 작성을 단순화한다. 주로 사용하는 인터페이스 중 하나는 JpaRepository
다. 이 인터페이스가 어떻게 동작하는지 알고자 할 때, SimpleJpaRepository
에 주목하게 된다. 본 글에서는 두 요소 간의 관계와 Spring Data JPA의 작동 원리를 간단히 살펴본다.
JpaRepository
정의JpaRepository
는 Spring Data JPA의 핵심 인터페이스다. 이 인터페이스는 다음을 확장한다:
1. ListCrudRepository<T, ID>
2. ListPagingAndSortingRepository<T, ID>
3. QueryByExampleExecutor<T>
이 인터페이스들은 CRUD, 페이징 및 정렬, 예제 기반 쿼리 실행 메서드를 제공한다. 추가로, JpaRepository
에는 JPA 특징을 활용한 특별한 메서드가 있다.
SimpleJpaRepository
: 설명SimpleJpaRepository
는 JpaRepository
인터페이스의 기본 구현 클래스다. JpaRepository
인터페이스를 상속하는 리포지토리 인터페이스가 구현체를 필요로 할 때, Spring Data JPA는 SimpleJpaRepository
를 활용하여 구현체를 동적으로 생성한다.
SimpleJpaRepository
사용 방법일반적으로, 개발자가 직접 SimpleJpaRepository
를 사용하거나 참조할 필요는 없다. 대신, JpaRepository
인터페이스를 상속하는 리포지토리 인터페이스 작성에 집중하면, Spring Data JPA가 나머지를 처리한다.
Spring Data JPA는 데이터 액세스 계층 작성을 단순화한다. JpaRepository
사용 시 대부분의 데이터 액세스 작업을 쉽게 수행할 수 있다. 그러나, 내부적으로 SimpleJpaRepository
가 실제 작업을 수행한다. 이 내부 동작을 이해하면, Spring Data JPA 활용이 더 쉬울 것이다.