일단 해보고, 아니면 뭐

실패했어도 배웠으면 실패가 아냐.

무한한 개발세계 여행기

Programing/Jpa

JPA / Hibernate / Spring Data JPA

개발자 김은혜 2022. 5. 30. 13:15

사용하는 기술에 대한 정확한 개념을 가지고 있는 것이

좋은 코드의 시작점이라고 생각한다.

 

그래서 나는 내가 사용하는 기술들 중에 여태까지 헷갈렸던?

기술들 세가지(JPA / Hibernate / Spring Data JPA)의 차이점을 정리해보았다.

 

 

 

 

 

1. JPA

JPA는 기술명세이다.

JPA는 Java Persistence API의 약자로,

자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.

여기서 중요한 것은 말 그대로 인터페이스라는 점이고, 특정 기능을 하는 라이브러리가 아니라는 점이다.

 

2. Hibernate

Hibernate는 JPA라는 명세의 구현체이다.

즉, 위에서 언급한 JPA의 인터페이스를 직접 구현한 라이브러리이다.

"Hibernate는 JPA의 구현체이다"로부터 도출되는 중요한 결론 중 하나는

JPA를 사용하기 위해서 반드시 Hibernate를 사용할 필요가 없다는 것이다.

 

3. Spring Data JPA

Spring Data JPA는 JPA를 쓰기 편하게 만들어놓은 모듈이다

Spring Data JPA는 Spring에서 제공하는 모듈 중 하나로,

개발자가 JPA를 더 쉽고 편하게 사용할 수 있도록 도와준다.

이는 JPA를 한 단계 추상화시킨 Repository라는 인터페이스를 제공함으로써 이루어진다.

 

 

 

 

 

 

 

요약 : 셋을 혼동하지 말고 사용하자!