제이제이
article thumbnail

2. JPA란 ORM입니다.


❓ ORM이란?

🔥 Object Relational Mapping의 약자로써 객체간의 관계를 매핑(연결)하는 것을 의미합니다.

 

먼저 모델링의 개념을 알고 넘어갑시다.

 

❓ 모델링이란?

🔥 추상적인 개념을 현실세계의 개념으로 뽑아내는 것을 의미합니다.
  • 위의 그림처럼 설계도를 바탕으로 건축 모형을 만드는 것을 “모델링한다”라고 합니다.

 

다음과 같이 DB의 테이블자바 프로그램이 있다고 가정하겠습니다.

 

 

프로그래밍의 순서

🔥 먼저 1.DB 속 Team의 테이블을 만든 후 2.자바 프로그램에에서 이를 이용하도록 프로그래밍하게 됩니다.

 

❗ 문제점

자바 프로그램의 데이터 타입과 DB에 있는 자료형 타입이 서로 다르다는 문제가 있습니다.

우리는 위와 같은 방식을 “DB에 있는 데이터를 자바 프로그램에 모델링한다!”라고 합니다.

반면 ORM에는 위의 프로그램 작성 순서가 다음과 같이 변경됩니다.

 

 

ORM 프로그래밍의 순서

🔥 1. 자바 프로그램에서 DB에 저장하고 싶은 데이터를 생성한 후 실행 하면 2. DB 속에 Team 테이블이 생성됩니다.

 

ORM을 통해 자바 클래스의 데이터를 DB에 Mapping하게 됩니다.

즉, 테이블을 통한 매핑(TRM:Table Relational Mapping)이 아닌 ORM을 통해 매핑하게 됩니다.

이 때 필요한 것이 JPA의 인터페이스 입니다.

정리

ORM(Object Relational Mapping)이란?

🔥 객체간의 관계를 매핑(연결)하는 것을 의미하며,
     JPA의 인터페이스 규칙을 지키면서 클래스를 만들어 데이터베이스에 자동으로 생성하는 기법입니다.

3. JPA란 반복적인 CRUD 작업을 생략하게 해줍니다.


❓CRUD란?

🔥 생성(Create),조회(Read), 수정(Update), 삭제(Delete)를 의미합니다.

 

다음 그림을 통해 CRUD의 작업을 이해하고 넘어갑시다.

 

 

CRUD 작업은 굉장히 자주 반복되어 일어납니다.

다음으로 CRUD가 일어나는 과정을 살펴보겠습니다.

 

CRUD가 일어나는 과정

 

과정

첫번째 요청

1. 자바 프로그램은 DB에 첫번째 요청을 통해 Connection을 요청합니다.

2. DB는 확인을 하고 세션을 오픈합니다.(세션 오픈)

→ 자바 프로그램과 연결이 됩니다.

3. 자바 프로그램이 Connection을 가집니다.

 

두번째 요청

4. 첫번째 요청으로부터 Connection이 연결된다면 두번째 요청부터는 DB에 쿼리를 전송할 수 있습니다.

5. DB는 테이블을 생성합니다.

6. DB에서 테이블을 생성한 후 자바 프로그램에게 응답을 줍니다.

7. 자바 프로그램은 DB의 응답을 받고 DB의 데이터 타입과 자바 프로그램상의 데이터 타입이 다르기 때문에
자바는 해당 데이터를 받아 자바 Object로 변경합니다.

 

이 과정은 엄청난 로직이 아닌 단순한 반복 로직입니다.

 

JPA는 이러한 반복 로직을 줄이게 합니다. (JPA에서는 함수 하나로 위와 같은 반복 로직을 할 수 있게 제공합니다.)

정리

JPA는 CRUD를 단순하게 처리하도록 도와줍니다. 또한 내가 만든 클래스를 자동으로 테이블로 생성해주기 때문에 단순한 반복로직을 ORM으로 처리합니다.

📒 Reference(참고자료)


 

[무료] 스프링부트 개념정리(이론) - 인프런 | 강의

스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, - 강의 소개 | 인프런...

www.inflearn.com

 

profile

제이제이

@아사비치즈스틱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!