📖 스프링 데이터 JPA 소개

스프링 데이터 JPA는 스프링 프레임워크에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트다.

데이터 접근 계층을 개발할 때 지루하게 반복되는 CRUD 를 처리하기 위한 공통 인터페이스를 제공한다.

이후 리포지토리를 개발할 때 인터페이스만 작성하면 실행 시점에 스프링 데이터 JPA가 구현 객체를 동적으로 생성해서 주입해준다.

따라서 데이터 접근 계층을 개발할 때 구현 클래스 없이 인터페이스만 작성해도 개발을 완료할 수 있다.

//스프링 데이터 JPA 적용public interface MemberRepository extends JpaRepository<Mebmer, Long>{    Member findByUsername(String username);}public interface ItemRepository extends JpaRepository<Mebmer, Long>{}

이와 같이 인터페이스만 작성하면 된다.

CRUD를 처리하기 위한 공통 메소드는 스프링 데이터 JPA가 제공하는 JpaRepository 인터페이스에 있다.

그리고 회원과 상품 리포지토리의 인터페이스의 구현체는 애플리케이션 실행 시점에 스프링 데이터 JPA가 생성해서 주입해주기 때문에 직접 구현체를 개발하지 않아도 된다.

MemberRepository.findByUsername(...)처럼 직접 작성한 공통으로 처리할 수 없는 메소드도 스프링 데이터 JPA가 메소드 이름을 분석해 JPQL을 실행한다.

SELECT m FROM Member m WHERE username =:username

스프링 데이터 프로젝트

스프링 데이터 JPA는 스프링 데이터 프로젝트의 하위 프로젝트 중 하나다.

스프링 데이터 프로젝트는 다양한 데이터 저장소에 대한 접근을 추상화해서 개발자의 편의를 제공하고 반복하는 데이터 접근 코드를 줄여준다.