Java

[Spring Boot] ORM, JPA, Hibernate 개념

yerinpark 2023. 10. 23. 22:42

ORM

Object Relational Mapping

: 객체와 데이터베이스 사이의 관계를 연결해주는 것.

 

- 우리가 정의한 객체를 데이터에 연결해서 사용할 수 있다. 

- 만약, ORM 없이 직접 data를 핸들링한다면, select query 후 일일히 어떤 정보인지 mapping해서 사용해야 할 것이다.

 

JPA

Java Persistence API

: 현재 Java 진영의 ORM 표준으로 채택됨.

Persistence 영역 즉, data에 접근하기 위한 API의 규격을 정의해놓은 것이다.

 

ORM vs. JPA

ORM : 전체적인 개념

JPA : 구체적으로 그 기능을 정의해놓은 스펙 

 

 

Hibernate

JPA에 대한 실제 구현체. 즉, implementation이다.

c.f. 또 다른 구현체로는 Eclipse Link(JPA Provider)가 있다. 대부분 Hibernate를 사용함.

 

 

Spring Data Jpa

Spring에서 Hibernate를 간편하게 사용할 수 있도록 특정 객체를 한 번 더 감싸서 만들어 놓은 것이다.

Spring Data Jpa에서 제공하는 방식을 활용하여 실제로 entity manager에 접근하지 않고도 data에 접근할 때 좀 더 쉽고, 객체 지향적으로 사용할 수 있다.