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
'Spring Boot' 카테고리의 다른 글
스프링부트+JPA - 8편 ( OOP관점에서의 모델링 ) (0) | 2021.08.20 |
---|---|
스프링부트+JPA - 7편 ( 영속성 컨텍스트 ) (2) | 2021.06.02 |
스프링부트+JPA - 5편 ( JPA ) (1) | 2021.05.03 |
스프링부트+JPA - 4편 ( BufferedReader, BufferedWrite ) (2) | 2021.04.26 |
스프링부트+JPA - 3편 ( MessageConverter ) (0) | 2021.04.19 |