JPA, Hibernate, Spring Data JPA 차이점

SANG HUN SHON·2023년 5월 2일
0

[ JPA ]

JPA는 Java Persistence API의 약자로, 자바 ORM 기술에 대한 API 표준 명세 를 의미한다. 즉 ORM 기술의 인터페이스들을 모아둔 것이다. 따라서 JPA를 사용하려면 JPA를 구현한 ORM 프레임워크를 선택해야한다. 현재 가장 대중적인 ORM 프레임워크는 Hibernate 이다.

JPA라는 표준 덕분에 특정 구현 기술에 대한 의존도를 줄일 수 있고 다른 구현 기술로 손쉽게 이동 할 수 있는 장점이 있다. 그리고 JPA 표준은 일반적이고 공통적인 기능의 모음이므로, 표준을 먼저 이해하고 필요에 따라 JPA 구현체가 제공하는 고유의 기능을 알아가는 식으로 공부하면 된다.

[ Hibernate]

하이버네이트는 JPA 표준 명세의 구현체이다. 현 시점에서 JPA를 주도하는 프레임워크이기에 JPA와 혼용해서 사용하기도 하며, 2001년도에 공개된 후 지금도 발전하고 있는 성숙한 ORM 프레임워크이다.

하이버네이트는 SQL 매퍼인 MyBatis와 달리 직접 SQL을 사용하지 않고 직관적인 코드를 사용해 데이터를 조작할 수 있다.

[ Spring Data JPA ]

Spring Data JPA는 Spring에서 제공하는 라이브러리 중 하나로, JPA를 쉽고 편하게 사용할 수 있도록 도와준다.

우리가 JPA를 사용하기 위해 JPARepository를 상속받은 Repository 인터페이스를 사용하는 것이 바로 Spring Data JPA를 통해 JPA를 사용한 것이다.

Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면, Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록해주기 때문에 우리는 더 간단하게 JPA를 이용할 수 있다.

JPA, Hibernate, Spring Data JPA를 그림으로 표현하면 다음과 같다.

[ 참고 사이트 ]

https://annajin.tistory.com/192

profile
개발이 너무 좋아요

0개의 댓글