Spring Data ORM, JPA, JPA 개요

Spring Data ORM, JPA, JPA 개요

백기선님의 강의인 Springboot 개념과 활용 강의를 듣고 공부한 내용을 정리한 글

ORM과 JPA

ORM은 Object-Relational Mapping의 약자로 객체와 릴레이션을 매핑할 때 발생하는 개념적 불일치를 해결하는 프레임워크이다.

가령 예를들어, 객체지향에서는 객체가 Class로 정의되어진다.

Class에서는 프로퍼티를 가질 수 있다.

Primitive Type Property, Reference Type Property를 가질 수 있고 여러개 가지는 것 또한 가능하다.

테이블은 테이블과 Column만 존재한다. 그러나 객체는 크기가 매우 다양하다.

그리고 객체는 상속이 존재하는데 Table에는 상속이라는 개념이 없다.

Relational에서 식별자는 주로 id이고 primary key이다.

Object에서는 식별자가 누구일까? hashcode? id와 매핑되는 프로퍼티가 존재하면 가능한가? 만약 id가 null이면?

이러한 문제들을 해결하기 위한 기술이 ORM이다.

JPA는 자바 진영에서의 ORM을 위한 표준이다.

대부분의 자바 표준은 Hibernate를 기준으로 한다.

Hibernate는 JPA의 구현체이다.

Spring data JPA

그럼 spring-data-jpa는 무엇인가?

이러한 ORM 표준을 아주 쉽게 사용할 수 있게 추상화 시켜놓은 것이다.

spring-data-jpaJPA를 사용하고, JPA의 구현체는 Hibernate이며 HibernateDatasource를 사용하게 된다.

Reference

인프런 백기선님의 스프링 부트 개념과 활용



© 2022. by minkuk

Powered by minkuk