사용하는 기술에 대한 정확한 개념을 가지고 있는 것이
좋은 코드의 시작점이라고 생각한다.
그래서 나는 내가 사용하는 기술들 중에 여태까지 헷갈렸던?
기술들 세가지(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라는 인터페이스를 제공함으로써 이루어진다.
요약 : 셋을 혼동하지 말고 사용하자!

'Programing > Jpa' 카테고리의 다른 글
우아한 테크캠프 Pro 회고록 - EnableJpaAuditing (4) | 2022.11.08 |
---|---|
JPA Dynamic Query (1) - Querydsl 도입기 (0) | 2022.06.05 |