개발의 시작과 끝

2023.09.18 / JPA, Hibernate, Spring Data JPA 차이 본문

IT 용어

2023.09.18 / JPA, Hibernate, Spring Data JPA 차이

개발지혜 2023. 9. 18. 17:51

JPA(Java Persistence API)

  • 자바를 사용하여 DB와 상호 작용하기 위한 자바의 ORM 기술 중 하나.
  • DB 테이블과 자바 객체 간의 매핑 지원.
  • 개발자가 SQL 쿼리를 직접 작성하지 않고도 DB 조작이 가능.
  • 객체 지향 프로그래밍의 장점을 유지하며 DB 액세스 코드를 작성할 수 있어 개발 생산성 향상.
  • ORM을 사용하기 위한 인터페이스를 모아둔 것.
  • JPA를 사용하기 위해선 JPA를 구현한 HibernateEclipseLinkDataNucleus 같은 ORM 프레임워크를 사용해야 함.
  • 단순히 명세이기 때문에 구현이 없음.

Hibernate

  • 자바 언어 기반의 ORM 프레임워크.
  • JPA라는 명세의 구현체.
  • Hibernate는 마치 자바의 interface와 해당 interface를 구현한 class와 같은 관계.
  • 관계형 데이터베이스자바 객체 간의 매핑을 제공하는 오픈 소스 라이브러리.
  • DB와 상호 작용을 추상화하고 개발자가 SQL 쿼리를 직접 작성하지 않고도 DB 조작을 수행할 수 있도록 도움.

Spring Data JPA

  • Spring 프레임워크와 JPA를 함께 사용하는 더 추상화된 라이브러리.
  • Spring Data 프로젝트의 일부로 제공.
  • DB와 상호 작용을 더 쉽고 효율적으로 만들어 주는 여러 기능을 제공.
  • JPA를 한 단계 추상화시킨 Repository라는 인터페이스를 제공함으로써 이루어짐.
  • 사용자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면,
    Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록.

 

 

참고

- https://chat.openai.com

- https://velog.io/@alicesykim95/JPA-ORM-JDBC-Hibernate%EB%9E%80

- https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/