본문 바로가기

Tech/Spring

[Spring Data JPA] ORM, JPA, Hibernate 헷갈리는 용어 정리

ORM(Object Relational Mapping)?

  • 객체와 데이터베이스의 테이블 사이의 관계를 연결해주는 것
  • 애플리케이션에서의 객체와 데이터베이스의 테이블에는 차이점이 존재함(상속 여부, 외래키 등등)
  • ORM없이 데이터를 직접 핸들링한다면 select 쿼리를 날려 받은 결과값을 하나하나 어떤 정보인지 매핑해서 사용해야함

 

JPA(Java Persistence API)

  • Java 진영에서 ORM 표준으로 지정
  • 데이터에 접근한 api 규격을 정의

→ ORM이 전체적인 개념이라면 jpa는 구체적으로 기능을 정의한 스펙

 

 

Hiabernate

  • JPA에 대한 실제 구현체

 

Spring Data JPA

  • Spring에서 hibernate를 더 간편하게 사용하도록 추상 객체를 한번 더 감싸서 만들어놓은 것
  • 실제로 EntityManager에 접근하지 않더라도 데이터에 대한 접근을 쉽고 객체지향적으로 처리할 수 있음

 

[출처] https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/

정리!!!

→ 객체와 테이블을 연결해주는 기술을 ORM.

→ Java에서는 ORM 표준 스펙으로 JPA를 인터페이스로 정의

→ JPA의 실제 구현체 중 범용적으로 쓰이는 것이 Hibernate

→ Hibernate 중에서도 특정 기능들을 더 사용하기 쉽도록 Spring Framework에서 제공하는 것이 Spring Data JPA

반응형