TIL - [DAY 3] ORM이란?

jihan kong·2022년 5월 16일
0

Spring Boot 개념정리

목록 보기
3/6
post-thumbnail

지난 시간에 JPA (Java Persistence API) 의 기본적인 용어에 대한 정의가 있었고, 대표되는 특성에 대해서 공부했다. 계속해서 JPA에 관해 학습해보자.


1. JPA는 ORM 기술이다.

ORM이란?
Object Relational Mapping : 객체 관계 매핑

빌딩을 건축하기 위해서는 그에 맞는 설계도가 필요하다. 추상적인 개념(설계도) 를 통해 현실에서의 실제적인 건물을 구현하는 것처럼 이를 자바에서도 적용한것을 '모델링' 이라고 한다.

예를 들어, Team Table이라는 DB 데이터가 있다면 이를 토대로 모델링하여 자바에서는 다음과 같이 나타낼 수 있다.

						1) Team Table (SQL)

						2) class Team (java)

따라서 두 객체 관계에 의해 자바 프로그램에서 Table로 데이터를 input하기도 하고, Table에서 java로 데이터를 output하기도 하는데 input하는 작업을 SQL 문법으로 DML (Delete, Update, Insert), output으로 데이터를 가져오는 작업은 Select라고 한다.

따라서 결론적으로 2번의 결과는 "DB 언어의 데이터를 JAVA 언어의 모델링" 한 결과물이 된 것이다.


2. ORM 작동원리

원래 일반적인 순서는 1) 테이블 을 토대로 2) 자바의 클래스나 오브젝트를 구현하지만 "ORM (Object Relational Mapping)" 의 이름에서 알 수 있듯이 상황이 역전되어 class를 구현하고 이를 통해 데이터베이스를 자동생성하게 된다. 이 때, JPA에서의 인터페이스의 규칙을 지키고 class를 만들어 실행하게 되면 DB에서 SQL(테이블)이 자동으로 생성되는 기법이 ORM이다.


3. ORM의 장점

저번 시간에 자바와 파이썬이 통신하기 위해서 json 파일을 주고 받은 것처럼 객체지향 프로그래밍은 클래스를 사용하고, 관계형 DB는 테이블을 사용하기 때문에 데이터 타입 불일치의 문제가 생기게 된다. 그러나 이를 JPA가 함수 하나로 대신 처리해주기 때문에 다양한 장점들이 생기게 된다.

ORM의 장점
1) 생산성이 증가
2) 재사용 및 유지보수 편의성 증가
3) DBMS에 대한 종속성 감소

결론적으로 DB를 다루기 위해선 필연적으로 그러나 반복적으로 해야하는 작업인 CRUD에 관한 작업들을 ORM을 통해 굉장히 단순하게 구현할 수 있게 해주는 것이다.

profile
학습하며 도전하는 것을 즐기는 개발자

0개의 댓글