#011. ORM SQL Mapper JDBC

안녕하세요 오늘은 persistent layer를 어떻게 구성하는지에 관한 배민 tech 강의를 요약했습니다. (거의 강의 그대로만 따라갔어요)

 

먼저 DB와 통신하는 부분을 이해하기 위해서 Persistency Architecture의 Persistence layer를 이해해야합니다. 애플리케이션의 깊이라고도 이해할 수 있을 것 같습니다. Persistence Layer는 모델과 DB사이에 존재하며 DB로부터 GET/POST기능을 합니다.

Persistence layer를 구성하는 방법이 여러가지 있지만 대표적으로 (Java기준) JDBC,SQL Mapper, JPA(ORM)이 있습니다.

먼저 JDBC로 구성된 Persistence Layer는 DB에따라 바껴야하는 Query를 독립시키는 것을 목표로 만들어진 드라이버입니다. 그러나 여전히 Query를 사용하기 위해 코드를 반복적으로 사용하며, 자원 고갈의 문제를 가지고 있습니다.

이러한 문제를 해결하기 위해 나온 프레임워크가 SQL Mapper입니다.

 

 

SQL Mapper는 SQL문을 객체화 합니다. SQL과 Code를 분리하긴 했지만 여전히 논리적으로 강하게 엮여있습니다.

 

이렇게 SQL과 Code를 섞어 쓰는 데에 문제가 생기는 이유는 객체 지향적인 코드와 데이터 구조 중심의 RDB가 서로 다른 패러다임(목표)를 가지고 있기 때문입니다. 패러다임이 불일치하는 세 가지 지점을 찾아보면 (그림 왼쪽이 문제상황, 오른쪽이 JPA가 해결한 방식)

(1) 상속: Code에는 있는 개념이고 RDB에는 없는 개념.

 

(2) 연관관계: 참조해서 사용하는 기능

(3) 객체 그래프 탐색: 그래프 모양의 구조를 탐색하는 기능

(4) 비교

이러한 패러다임의 차이 문제를 해결한 것이 ORM으로 위의 해결방식들을 보면 대부분 JPA에 추가된 매서드로 해결한다.

 

 

ORM_SQLMapper_JDBC.pdf

0.51MB

기반 강의: [10분 테코톡] ⏰ 아마찌의 ORM vs SQL Mapper vs JDBC

https://www.youtube.com/watch?v=VTqqZSuSdOk 

 

  Comments,     Trackbacks