본문 바로가기

Spring Data

JPA와 Hibernate의 차이점은 무엇인가요?

JPA와 Hibernate는 둘 다 자바 환경에서 관계형 데이터베이스를 다루기 위한 도구입니다. 몇 가지 중요한 차이점이 있습니다.

 

JPA는 자바 객체와 데이터베이스 테이블 간의 매핑을 위한 표준 API를 제공합니다.

JPA 자체는 구현이 없으며, 인터페이스만 제공합니다. 그러므로 Hibernate라는 ORM이 없을 경우 JPA의 기능들을 사용할 수 없습니다.

JPA는 JPQL이라는 언어를 제공합니다. 객체 지향적인 쿼리를 작성할 수 있습니다.

 

Hibernate는 JPA의 표준 사양을 구현한 구현체이며 라이브러리 중 하나입니다. 따라서 JPA의 모든 기능을 Hibernate에서도 사용할 수 있습니다.

Hibernate는 JPA기능 외에도, Lazy Loading, Caching, Dirty Checking 등과 같은 다양한 추가 기능을 제공합니다.

Hibernate는 XML이나 프로퍼티 파일을 이용한 다양한 설정 옵션을 제공합니다.

Hibernate는 JPQL보다 더 복잡한 쿼리 작업을 할 수 있는 Hibernate Query Language(HQL)을 지원합니다.

 

결론적으로, JPA는 Java에서 RDBMS를 사용하기 위한 표준 인터페이스를 제공하고, Hibernate는 그 표준 인터페이스를 구현하고 확장한 실제 라이브러리입니다. 실제 개발에서는 JPA 인터페이스를 통해 Hibernate와 같은 구현체를 사용하는 경우가 많습니다.

이렇게 하면, 필요에 따라 다른 JPA 구현체로 쉽게 전환할 수 있습니다.