본문 바로가기
Spring Boot

스프링부트+JPA - 6편 ( ORM )

by SICDev 2021. 5. 14.
반응형

ORM이란??? Object Relational Mapping이다❗❗

Object를 DataBase에 연결하는 어떤 방법론 같은 것이다.


ORM은 나의 하인 같은 것이다❗

우리가 어떤 클래스를 하나 만들 때 Model클래스라는 것을 생성하게 된다.

Model클래스라는 것이 무엇이냐🤔🤔

우리가 어떤 건물을 짓는 설계도가 있다고 생각해보자 이 💶설계도를 가지고 🏢건물을 하나 뙇❗ 짓는 것을 모델링한다고 표현한다.

모델링한다는 것은 추상적인 개념을 현실세계에 뽑아내는 것을 의미한다❗

 

모델링을 프로그래밍적으로 보면

DataBase에 Team이라는 테이블이 있다고 가정해보자😵

ID INT
Name VARCHAR2(255)
Year VHACHAR2(255)

Java에서 Team테이블의 데이터를 Input(DML:DELETE, UPDATE, INSERT)하기도 하고 Output(SELECT)하기도 한다❗

우리가 Table에서 데이터를 Output(가져오거나)하거나 Input(집어넣거나)할 때 Java의 Data Type과 DataBase의 Data Type이 완전히 다르다❗ Java는 INT라든가 VARCHAR2 같은 Type을 가지고 있지 않다❗


그.래.서 우리는 Class를 통해서 DataBase에 있는 테이블모델링해야 한다💡

저 Team이라는 테이블을 모델링하게 되면 이런 식의 클래스가 나올 것이다😵😵😵

Class Team {
  int id;
  String name;
  String year;
}

이런 것을 "DB 세상에 있는 데이터를 JAVA 세상에 모델링한다"라고 한다❗

그래서 보통 어떤 프로젝트를 할 때 가장 먼저 (1)DataBase 테이블들을 설계하고 그에 맞는 (2)Class를 생성한다❗

( 나도 그러고 있다... )


이 순서를 ORM을 통해 완전히 반대로 바꿀 수 있다❗❗

Object Relational Mapping이라는 이름에서 알 수 있듯이 Object를 통한 맵핑이기 때문이다❗

 

먼저💡 Team이라는 (1)Class를 생성하고 Class에 맞는 (2)DataBase Table을 자동으로 생성할 수 있다👏

이때 필요한것이 JPA가 가지고 있는 Interface이다👏

 

JPA의 Interface의 규칙을 지켜 Class를 만들고 실행 하면 Table이 자동으로 생성되게 하는 기법을 ORM이라고 한다

 

 

 

 

 

 

 

출처

https://www.youtube.com/watch?v=XBG6CUtVCIg&list=PL93mKxaRDidG_OIfRQ4nztPQ13y74lCYg
반응형