티스토리 뷰

BackEnd

[DB] ORM, SQL Mapper 이란?

밀래 2021. 4. 12. 22:38
반응형

ORM과 SQL Mapper의 개념을 정리하기전 영속성(Persistence)에 대해 먼저 정리해보겠습니다.

 

영속성(Persistence)

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

영속성을 갖지 못한 데이터는 메모리에만 존재하기 때문에 프로그램이 종료되면 사라지게 된다.

영속성은 파일 시스템, 관계형 데이터베이스 또는 객체 데이터 베이스를 활용하여 구현한다.

 

데이터가 영속성을 가지기 위해 Spring에서 사용하는 방법은 3가지가 존재한다.

 

1. JDBC (Java)

2. Spring JDBC

3. Persistence Framework

 

Persistence Framework

Persistence Framework는 JDBC를 사용하기 위한 복잡하고 번거로운 작업 없이 간다한 작업으로 데이터베이스와 연동할 수 있게 제공하는 프레임워크이다. 이 프레임워크를 사용하면 시스템을 빠르고 안정적으로 개발이 가능하다. 

Persistence Framework에는 ORM과 SQL Mapper가 있다.

 

ORM : JPA, Hibernate

SQL Mapper : Mybatis

 

ORM (Object-Relation Mapping)

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑시켜주는 프레임워크이다.

설정된 객체 간의 관계를 바탕으로 자동으로 SQL를 생성하여 실행한다.

SQL를 직접 작성할 필요가 없다.

 

장점

  1. 객체 지향적인 코드로 직관적인 비지니스 로직을 작성할 수 있다.

  2. DBMS 종속성이 줄어들고 종류에 관계 없이 빠르게 적용 가능하다.

  3. 쿼리에 집중할 필요 없이 빠르게 개발이 가능하다.

  4. 재사용 유지 보수 편리성이 증가 한다.

 

단점

  1. 초기 적용에 러닝 커브가 어느 정도 있다.

  2. 프로젝트의 복잡성이 커질경우 난이도가 올라간다.

  3. 잘못 적용할 경우 속도 저하가 발생 할 수 있다.  

  4. 복잡한 SQL의 사용하지 못할 수 도 있다.

 

SQL Mapper

객체와 관계형 데이터베이스의 데이터를 개발자가 작성한 SQL로 매핑시켜주는 프레임워크이다.

개발자가 SQL을 직접 작성해야 하며 SQL문을 실행하고 얻은 데이터를 객체로 매핑시켜준다.

 

장점

  1. SQL을 작성 할 줄 안다면 수월하게 사용이 가능하다.

  2. 세부적인 SQL 변경시 편리하다.

 

단점

  1. DBMS에 따라 SQL 문법이 다르기에 DBMS에 종속적이다.

  2. 개발시 SQL를 작성해야 한다.

  3. DBMS 변경시 SQL문의 재사용이 어렵다.

  4. 2개 이상의 DBMS 지원시 유지 보수가 어렵다.

반응형
댓글