Spring boot
JPA 와 하이버네이트란?
haejujung
2024. 9. 30. 09:32
DBMS에 여러 종류가 있듯이, ORM에도 여러 종류가 있습니다. 자바에서는 JPA(Java Persistence API)를 표준으로 사용합니다. 즉, JPA는 자바 진영에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스입니다. 그러나 실제로 DB와 상호작용하려면 이 인터페이스를 구현한 구체적인 도구가 필요합니다. 그 대표적인 구현체로는 Hibernate가 많이 사용됩니다. Hibernate는 JPA 스펙을 구현한 자바용 ORM 프레임워크로, 스프링 부트 프로젝트에서 ORM을 구현할 때 자주 사용되는 도구입니다.
JPA(Java Persistence API):
- 자바 객체와 관계형 데이터베이스를 연결하여 데이터를 관리하는 표준 API입니다. JPA는 객체 지향 도메인 모델과 데이터베이스 간의 중간 역할을 하며, 데이터베이스에 대한 접근을 추상화하여 애플리케이션 코드에서 데이터베이스에 의존하지 않고 데이터를 처리할 수 있도록 합니다.
하이버네이트(Hibernate):
- JPA 인터페이스 스펙을 구현한 대표적인 ORM 프레임워크입니다. Hibernate는 JPA의 표준을 따르며, 내부적으로는 JDBC API를 활용하여 데이터베이스와 상호작용합니다. 즉, Hibernate는 JPA의 구현체로서, 데이터베이스 작업을 처리하는 데 필요한 구체적인 기능을 제공합니다.

JPA 학습에서의 주의점 확인
JPA는 객체지향적 접근 방식입니다.
- SQL은 데이터베이스의 테이블 간 관계를 정의하는 언어입니다. 테이블과 테이블의 관계는 외래 키를 통해 설정되며, 주로 데이터베이스 관점에서 관리됩니다.
- JPA는 객체 간의 관계를 정의하는 자바의 ORM(객체-관계 매핑) 기술입니다. JPA에서는 클래스와 객체를 사용해 테이블과 데이터 간의 관계를 표현합니다.
중요한 차이점은 SQL은 테이블 간의 관계를 직접 정의하는 반면, JPA는 객체지향적인 관계를 통해 테이블 간의 관계를 간접적으로 정의한다는 점입니다.