본문 바로가기
DataBase/개념

SQL Mapper

by 깐니 2020. 10. 11.

이번 포스팅에서 다루는 내용
1. SQL Mapper와 ORM의 차이점
2. 영속성 개념


결론부터 말하자면,
1.  ORM은 데이터베이스 테이블을 자바 객체로 매핑함으로써 객체간의 관계를 바탕으로 SQL을 자동으로 생성하지만,
SQL Mapper는 SQL을 명시해주어야한다.
2.  ORM은 RDB의 관계를 객체에 반영하는 것이 목적이라면,
SQL Mapper는 단지 필드를 매핑시키는 것이 목적이라는 차이가 있다.

 

1. SQL Mapper, ORM에 대해 알아보자.

SQL Mapper이란?

SQL <- mapping -> Object field
SQL 문으로 직접 데이터베이스를 조작한다.

사용: MyBatis, iBatis, jdbcTemplate

 

ORM (Object-Relation Mapping/ 객체-관계 매핑)이란?

DB data <- mapping -> Object field
객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.
객체와 데이터베이스의 데이터를 자동으로 매핑한다.
SQL 쿼리가 아니라 메서드로 데이터를 조작할 수 있다.
객체간 관계를 바탕으로 sql을 자동으로 생성한다.
Persistant API이다.

사용: JPA, Hibernate

 

JDBC 란?

JDBC는 데이터베이스에 접근할 수 있도록 자바에서 제공하는 API이다.
모든 JAVA Data Access 기술의 기원이다. = 모든 Persistance Framework는 내부적으로 JDBC API를 이용한다.

어떤 의미일까?
DBMS에 따라 데이터베이스를 다루는 방식이 다르다면, 사용자는 알아야 할 것이 매우 많다.
그래서 JDBC를 통해 추상화된 인터페이스를 제공하기만 하고, 각 벤더들 (Oracle, MySQL...)은 각자의 DBMS에 맞게 구현을 해 놓은 상태이다.
사용자는 특정 DBMS를 사용하기 위해, 각 벤더에서 개발해놓은 드라이버를 설치하기만 하면 되고,
데이터베이스에 접근하기 위한 인터페이스는 JDBC에서 제공하는 API를 사용하면 된다.

 

2. 영속성이란? 

영속성이란, 데이터를 생성한 프로그램이 종료되어도 사라지지 않는 데이터의 특성을 말한다.

영속성을 갖지 않으면 데이터는 메모리에서만 존재하게 되고, 
프로그램이 종료되면, 해당 데이터는 모두 사라지게 된다.

따라서 우리는 데이터를 파일이나 데이터베이스에 영구 저장함으로써 데이터에 영속성을 부여한다.

Persistance Layer
프로그램의 아키텍처에서 데이터에 부여해주는 계층을 말한다.
JDBC를 이용해서 직접 구현이 가능하지만, 보통 Persistance Framework를 사용한다.
왜?
JDBC 프로그래밍의 복잡함이나 번거로움 (connection 연결 등) 없이, 간단한 작업으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있고, 안정적인 구동을 보장하기 때문이다. 

Persistance Framework
JDBC 프로그래밍의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있고, 안정적인 구동을 보장한다.

Persistance Framework는 SQL Mapper와 ORM으로 나눌 수 있다.

 

아래 그림은 데이터베이스와 Presentation Layer간의 계층구조를 나타낸 이미지이다.

계층구조  출처: https://velog.io/@adam2/JPA%EB%8A%94-%EB%8F%84%EB%8D%B0%EC%B2%B4-%EB%AD%98%EA%B9%8C-orm-%EC%98%81%EC%86%8D%EC%84%B1-hibernate-spring-data-jpa

 

Presentation Layer     =     UI Layer
Application Layer       =      Service Layer 
Business logic Layer   =      Domain Layer
Data access Layer      =     Persistance Layer (영속 계층) 

 

 

 

Ref.
📕 영속성에 대한 개념 👉🏻항상도움받는 블로그