ggoggo
[SpringDataJPA] SpringDataJPA란? 본문
JPA란?
- JPA는 자바 ORM(Object Relational Mapping) 기술에 대한 API 표준 명세를 말한다.
- 여기서 ORM 기술이란
- 말 그대로 객체와 관계형 데이터 베이스를 매핑해주는 기술이다.
- 객체는 객체대로, 관계형 데이터베이스는 관계형 데이터베이스대로 설계하고, ORM 프레임워크가 중간에서 매핑해준다.
- JPA는 라이브러리가 아닌 ORM을 사용하기 위한 인터페이스의 모음이다.
- JPA는 인터페이스의 모음, 단순한 명세이기 때문에 구현이 없다.
- 자바 애플리케이션에서 관계형 데이터베이스를 어떻게 사용할 지 정의하는 하나의 방법일 뿐이다.
따라서! JPA의 구현체가 있어야 JPA를 사용할 수 있다.
Hibernate란?
- Hibernate는 JPA를 구현한 구현체이다.
- 개발된 지 10년이 넘은 대중적인 JPA 구현체 중 하나이다.
- JPA의 핵심들인 EntityManagerFactory, EntityManager, EntityTransaction 등을 상속받아 구현한다.
- JPA를 구현하는 다른 구현체들로는 EclipseLink나 DataNucleus 등이 있다.
- 개발자가 직접 JPA 구현체를 만들어 사용할 수도 있음!
- Hibernate는 내부적으로 JDBC(Java Database COnnectivity)를 이용해 관계형 데이터베이스와 커넥션을 맺고 상호작용을 한다.
Spring Data JPA란?
- Spring Data JPA는 JPA를 사용하기 편하도록 만들어놓은 모듈이다.
- Spring Data JPA는 JPA를 한단계 더 추상화시킨 Repository 인터페이스를 제공하고 Hibernate와 같은 JPA 구현체를 사용해서 JPA를 사용하게 된다.
- Spring Data JPA를 사용하면 사용자는 더욱 간단하게 데이터 접근이 가능해진다.
정리
JPA
- 자바 진영의 ORM 기술에 대한 API 표준 명세
Hibernate
- JPA의 구현체
- 내부적으로 JDBC를 이용
Spring Data JPA
- JPA를 이용하기 쉽게 스프링에서 제공하는 모듈
- 내부적으로 JPA 구현체를 이용
'Spring > JPA' 카테고리의 다른 글
[JPA] 다대다관계 (0) | 2023.11.29 |
---|---|
[JPA] 연관관계 매핑 (0) | 2023.11.26 |