최대 1 분 소요

스프링 데이터 JPA는 JPA를 사용할 때 지루하게 반복하는 코드를 자동화 해준다. 이미 라이브러리는 포함되어 있다. 기존의 MemberRepository를 스프링 데이터 JPA로 변경해 보자.

기존 코드

1
2
3
public interface MemberRepository extends JpaRepository<Member, Long> {  
  
}

이렇게 빈 깡통 인터페이스를 만들어 놨다. 그런데 원래 MemberRepository 를 사용중인 service단 코드를 보면

join이랑 findMembers는 살아있는 걸 볼 수 있다. 이미 스프링에서 몇 가지 자주 사용하는 행위는 미리 만들어 놨다는 걸 알 수 있다.

없는 건 그냥 인터페이스에 생성 해버리면 된다. 그런데 findBy ~~~ 로 하면 구현 필요 없이 스프링이 알아서 해준다 . 예를 들어 findByName 처럼 일반화 하기 어려운 기능도 메서드 이름으로 정확한 JPQL 쿼리를 실행한다.

  • select m from member m where m.name = :name
  • 개발자는 인터페이스만 만들면 된다. 구현체는 스프링 데이터 JPA 가 애플리케이션 실행 시점에 주입해준다.

스프링 데이터 JPA는 스프링과 JPA를 활용해서 애플리케이션을 만들 때 정말 편리한 기능을 많이 제공한다. 단순한 편리함을 넘어서 때로는 마법을 부리는 것 같을 정도로 놀라운 개발 생산성의 세계로 우리를 이끌어 준다. 하지만 스프링 데이터 JPA는 JPA를 사용해서 이런 기능을 제공할 뿐이다. 결국 JPA 자체를 잘 이해하는 것이 가장 중요하다.

태그: ,

카테고리:

업데이트:

댓글남기기