Anyway

[DB/JPA] ORM이란? 본문

Database

[DB/JPA] ORM이란?

dyana 2024. 8. 22. 10:12

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이라고 한다.