ORM, JPA, Spring Data JPA

yanju·2022년 12월 5일
0
post-thumbnail

ORM

ORM : 객체지향 패러다임을 관계형 DB에 보존하는 기술, 객체지향 패러다임을 관계형 패러다임으로 매핑해주는 개념

패러다임 불일치

// Member 클래스

public class Member {
	private String id;
	private String pw;
	private String name;
}

Member 테이블

idString
pwString
nameString
  1. 클래스와 테이블은 유사하다
    1. 새로운 테이블에 칼럼을 정의하고 칼럼에 맞는 데이터 타입을 지정해서 데이터를 보관한다는 점이 유사
  2. 인스턴스와 Row도 유사하다.
    1. 객체지향에서는 클래스에서 인스턴스를 생성해서 인스턴스라는 공간에 데이터를 보관
    2. 테이블에서는 하나의 Row에 데이터를 저장
  3. 관계와 참조라는 의미도 유사하다.
    1. RDB는 테이블 사이의 관계를 통해서 구조적인 데이터를 표현한다.
    2. 객체지향에서는 참조를 통해서 관계를 맺고 있는지를 표현한다.

JPA

JPA는 Java Persistence API의 약어로 ORM을 Java 언어에 맞게 사용하는 스펙이다.

JPA는 단순한 스펙이기 때문에 해당 스펙을 구현하는 구현체마다 이름이 다르다.

가장 유명한 것은 Hibernate 이다.

스프링 부트는 JPA의 구현체 중에서 Hibernate를 이용한다.

Spring Data JPA

프로젝트 생성 시 추가한 Spring Data JPA는 Hibernate를 스프링 부트에서 쉽게 사용할 수 있는 추가적인 API들을 제공한다.

스프링 프레임워크 자체는 대부분의 다른 프레임워크와의 호환성을 위한 라이브러리를 제공하는데 Spring Data JPA 역시 그러한 예이다.

Spring Data JPA를 이용하면 다음과 같은 구성을 이용하게 된다.

0개의 댓글