DevBoi

[JPA] JPA 관련 기초 개념 정리 본문

Develop/[JPA]

[JPA] JPA 관련 기초 개념 정리

HiSmith 2022. 3. 17. 19:05
반응형

1. ORM이란?

Object Relational Mapping 의 약자로, 이름 그대로 객체와 관계형 데이터를 매핑하기 위한 기술이다.

객체와 관계형 데이터 베이스는 패러다임의 불일치가 존재할수 밖에없고, 해당 패러다임을 맞추려, 객체지향적 설계를 할수 없다.

ORM은 이러한 문제를 해결한다. 

 

2. JPA

java persistence APi의 약자로, 자바 ORM 기술에 대한 API 표준 명세이다. 즉, 인터페이스 모음이다

이 인터페이스를 구현한 프레임워크가 하이버네이트이다.
JPA는, 애플리케이션과 JDBC 사이에서 동작하며, JPA를 개발자가 사용하면, JPA 내부에서 JDBC API를 사용하여, SQL을 호출하여 DB와 통신한다.

 

 

3. 하이버네이트 

JPA를 구현한 프레임워크 중 사실상 표준에 가깝고, 오픈소스 소프트웨어이다.

JPA는 기술스펙이고, 하이버네이트는 기능을 구현, 공급해주는 역할이다.

즉 인터페이스와 인터페이스 구현체이다.

 

4. Spring Data JPA

Spring framework에서 JPA를 편리하게 사용할수 있도록 지원하는 모듈이다.

Spring Data JPA의 목적은 JPA를 사용할때 필수 적으로 생성해야하나, 예상 가능하고 반복 적인 코드를 대신 작성해줘서 코드를 줄여주는 것이다.

Repository라는 인터페이스를 제공하여, 뻔한 코드들의 사용을 줄여주는 인터페이스이다. Spring Jpa는 항상 하이버네이트같은 Provider가 필요하다.

반응형

'Develop > [JPA]' 카테고리의 다른 글

[JPA] 영속성 컨텍스트란?  (0) 2022.03.17
[JPA] 엔티티 생명 주기  (0) 2022.03.17
[JPA] Bulk 연산  (0) 2022.03.11
[JPA] Named 쿼리  (0) 2022.03.11
[JPA] 패치조인  (0) 2022.03.11