환타몬 2022. 11. 23. 10:56

우선 JPA를 알기 전에 ORM에 대해 먼저 알아보아야 할 것 같습니다.

 

1. ORM ( Object Relational Mapping )

- 객체와 데이터베이스의 관계를 연결시켜 주는 것

 

 

데이터를 저장하기 위해 사용하는 것은 데이터베이스입니다. 

객체지향프로그래밍에서 사용하는 기본 단위는 오브젝트라 불리우는 기본 객체입니다. 

 

이렇게 눈으로 보게 된다면 Member 테이블의 Name은 Member 객체의 Name filed에 매핑되면 될 것 처럼 보이나,

컴퓨터는 이 관계를 어떻게 연결시켜줄 수 있을까요?

 

객체와 데이터베이스의 관계를 연결시켜주는 것을 ORM라 합니다.

 

 

2. JPA(Java Persistance API)

- 데이터에 접근하기 위한 API 규격을 정의한 것입니다.

 

 

현재 자바진영의 ORM 기술 표준으로 채택되어있습니다.

 

데이터에 접근하기 위한 API 규격을 정의한 것입니다.

ORM이 전체적인 개념이라 한다면 JPA는 좀 더 구체적으로 그 기능을 정리한 스택이라 할 수 있습니다.

 

3. Hibernate 

JPA에 대한 실제 구현체, 흔히 말하는 Implementation입니다. 

이클립스 링크등의 다른 JPA provider가 있지만 현재 자바에서 사용하는 것은 기본적으로 Hibernate 구현체입니다.

 

4. Spring Data JPA

- Spring에서 hibernate를 좀 더 편하게 사용할 수 있도록 수상객체를 한 번 더 감싸서 만들어 놓은 것

 

 

Spring Data JPA에서 제공하는 방식을 사용하여 실제로 Entity Manage에 접근하지 않고도 데이터에 대한 접근을 좀 더 쉽고 객체지향적으로 사용할 수 있습니다.

 

 

정리

- 어플리케이션과 DB를 연결시켜주는 것이 ORM라는 개념

- 자바진영에서는 ORM의 표준스택으로 JPA라는 것을 인터페이스로 정의하고 제공하고 있음.

- 해당 JPA 실제 구현 클래스들을 모아둔 것이 Hibernate

- 그 중 자주 사용하는 기능들을 좀 더 사용하기 쉽도록 Spring Framework에서 다시 한 번 더 묶음으로 제공하는 것이 Spring data JPA