¡Hola, Mondo!

ORM (Object Relational Mapping) 과 SQL Mapper 정의 본문

DB

ORM (Object Relational Mapping) 과 SQL Mapper 정의

베지(Beji) 2016. 7. 12. 17:56

 

 

ORM (Object Relational Mapping)

 : 객체(Object)와 관계형 데이터베이스(RDBMS)을 매핑하여 데이터베이스 테이블을 객체지향적으로 사용하기 위한 기술이다. 

애플리케이션 내의 객체와 관계형 데이터베이스의 테이블이 매핑되어, 관계형 데이터를 객체처럼 사용할 수 있다.

ORM을 사용한다면, SQL문 작성 없이 매핑하는 설정만으로 DB 테이블내의 데이터를 객체로 전달 받을 수 있다.

ORM을 사용하면 데이터베이스 작업이 줄어들기 때문에 개발 작업이 편해지는 장점을 가지고 있다.

(성능 최적화 기능, 코드 변경 없이 db 변경, sql 작성 필요 없음, db 스키마 변경시 수정할 코드가 줄어들음.)

외국에서는 자바 개발자 60% 이상이 순수 JDBC나 MyBatis(SQL Mapper)보다 Hibernate를 사용한다는 통계가 있다.

하지만, ORM을 사용하기 위해서는 DB 설계가 잘되어있어야 한다. (top-down 방식, 도메인 계층 구조)

 

JPA (Java Persistent API) 

: ORM 기술 표준이다. 대표적으로 Hibernate, OpenJPA, EclipseLink, TopLink Essentials와 같은 구현체(ORM 프레임워크)가 있다.

 

 

 

SQL Mapper

: 객체(Object)와 SQL 문을 매핑하여 데이터를 객체화하는 기술을 뜻한다. 객체와 관계를 매핑하기보다는 SQL문의 질의 결과와 객체를 매핑시켜주기 때문에 ORM과는 다른 기술이라고 할 수 있다. 대표적인 프레임워크로는 iBatis, MyBatis, Oracle SQLJ 가 있다.  

우리나라에서는 Hibernate(ORM 프레임워크)보다는 iBatis, MyBatis를 많이 사용한다. (DB 설계가 복잡하게 되어 있기 때문에 ORM은 적용이 어려움)

 

Comments