ORM과 JPA

Ina Kim·2021년 5월 25일
0

SpringBoot

목록 보기
1/2

ORM(Object Realational Mapping)

객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술

ORM의 시작은 '객체지향'의 구조가 '관계형 데이터베이스'와 유사하다는 점에서 시작한다.
객체지향 언어 중에서 '클래스'를 사용하는 언어는 특히 그러한 경우인데, 예를 들어
'클래스'장치를 사용하는 객체지향 프로그래밍 언어들은 어떠한 데이터의 구조를 잡기 위해서 클래스를 우선적으로 설계한다.

객체지향에서는 클래스에서 인스턴스를 생성해서 인스턴스라는 '공간'에 데이터를 보관한다.

public class Member {

    private Stirng id;
    private Stirng pw;
    private Stirng name;
    
}

관계형 데이터 베이스를 다루는 입장에서는 클래스는 아니지만 '테이블'을 설계한다.
칼럼을 정의하고 칼럼에 맞는 데이터 타입을 지정해서 데이터를 보관하는 틀을 만든다는 의미는 클래스와 상당히 유사하다.
테이블에서는 하나의 'Row'에 데이터를 저장한다. (데이터베이스에서는 Entity라는 용어를 사용한다)

uid varchar2(50)
upw varchar2(50)
uname varchar2(100)

이렇게 유사한 특징을 기초해서 '객체지향을 자동으로 관계형 데이터베이스에 맞게'처리해 주는 기법에 대해서 아이디어를 내기 시작했고 그것이 ORM의 시작이다.


JPA(Java Persistence API)

ORM을 Java언어에 맞게 사용하는 '스펙'

Java 라는 언어에 국한된 개념이기 때문에 ORM보다는 하위 개념이다.
단순한 스펙이기 때문에 해당 스펙을 구현하는 구현체마다 회사의 이름이나 프레임워크의 이름이 다르게 된다.
여러 프레임 워크가 있지만 그중에서 가장 유명한 것은 'Hibernate'이다. 스프링 부트는 하이버네이트를 사용한다. 단독으로 프로젝트에 적용이 가능한 독립된 프레임워크이다.

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

profile
기록하는것을 좋아합니다

0개의 댓글