[DB/JPA] ORM이란?
ORM이란?
➡️ Object Relational Mapping
Object를 Database에 연결하는 방법론
Class를 살펴보면
건물을 짓는 설계도(2D)를 가지고 실제 건물로 만든다고 할 때 이것을 모델링
한다라고 할 수 있다.
모델링
을 한다는 것은 추상적인 개념을 현실 세계에 뽑아내는 것을 말한다.
Database로 살펴보면
테이블 설계 이후 Java에서 사용하고자 할 때 Java Program에서 어떠한 data를 테이블로 input하기도 하고 input된 data를 java로 가져와서 output하기도 한다. 밀어넣기도 하고 가져오기도 하는데 밀어 넣는 작업을 DML(Delete, Update, Insert, Select)이라고 한다.
이 때 data를 가져오거나 밀어넣을 때 Java가 들고있는 data type과 Database가 들고있는 data type이 다르다. 때문에 Class를 통해 Database에 있는 테이블을 모델링 해야한다.
실제로 모델링을 하게되면
public class Example {
int id;
String name;
String loc;
}
Database에 있는 data를 Java에 모델링 한 것이라고 할 수 있다.
즉 프로그래밍을 할 때 원래의 순서라면 Database에 table을 먼저 만들고 Class를 만들겠지만 역으로 바꿔버릴 수도 있다. ORM = object를 통한 relational mappling이기 때문에 역전되는 것이다.
먼저는 1️⃣Class를 만들게 되고 Class를 통해 2️⃣table을 자동 생성할 수 있다. 이 때 필요한 것이 JPA가 가지고 있는 인터페이스이다. 이 인터페이스 규칙을 지키며 Class를 만들어서 실행을 하면 Database에 table이 자동 생성되는 기법을 ORM이라고 한다.