본문 바로가기
TIL/JPA

JPA::JPA, Hibernate, 그리고 Spring Data JPA

by DandyU 2023. 2. 19.

JPA는 기술 명세이며, 인터페이스이다.

JPA는 Java Persistence API의 약자이며, JAVA 애플리케이션에서 관계형 데이터베이스를 어떻게 사용해야 되는지를 정의한 인터페이스이다. 라이브러리가 아니다. 인터페이스이므로 구현이 없다.

 

JPA를 구현한 여러 라이브러리가 존재한다.

Spring으로 개발하다 보면 Hibernate 자주 볼 수 있는데, Hibernate는 JPA를 구현한 라이브러리이다.

Hibernate 외 DataNucleus, EclipseLink 등 다른 여러 라이브러리가 존재한다.(꼭 Hibernate를 사용해야되는 것은 아니다.)

 

Spring Data JPA는 개발자가 쉽게 JPA를 사용할 수 있도록 한 Spring에서 제공하는 모듈이다.

Spring으로 개발하다 보면 JPA에 정의된 EntityManager 대신에 DB 관련 작업 시 Repository를 자주 사용하게 된다. 이 Repository가 바로 Spring Data JPA의 핵심이다.

 

Spring Data JPA는 JPA를 한 단계 추상화시킨 Repository라는 인터페이스를 제공한다. 사용자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면, Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록한다.

 

 

'TIL > JPA' 카테고리의 다른 글

JPA::Could not open JPA EntityManager for transaction 오류  (0) 2023.07.06
JPA::개념  (0) 2023.02.19

댓글