Close

ORM

ORM

ORM 은 Object-relational mapping 의 약자이며, 말 그대로 객체 관계에 대한 매핑을 말합니다.
이는 호환되지 않는 시스템간에 데이터를 변환-구성 하여 상호 통신이 가능하게 만들어주는 기능을 뜻합니다.

ORM 오픈소스 라이브러리를 이용할수도 있지만 필요에 따라 자체적인 ORM 도구를 만들 수 도 있습니다.

이러한 ORM을 이용하면 개발자가 SQL Query를 사용하지 않고 객체로 작업할 수 있게 됩니다.

orm
잘 구성된 객체 모델은 프로그래밍과 디버깅면에서 유용할 수 있으나, 언어에 따라 객체지향 언어 또는 절차지향의 언어로 만든 모델을 데이터베이스의 관계형 모델과 매핑해야 하므로 객체 모델링을 하는것은 쉬운편이 아닙니다.

ORM을 이용하게 되면 개발 중 사용되는 객체와 DATABASE 간의 불일치성을 줄여주고 복잡한 SQL Query의 사용을 함수화 시킴으로서 디버깅의 편의성을 제공해줍니다.

또한 단순히 DML 뿐 아니라 DLL을 제공함으로서 관계를 가진 테이블의 생성등의 기능을 제공합니다.

  • Example, Beego orm(Golang)
// models
package models
import (
    _ "github.com/astaxie/beego/orm"
)

type user struct {
    idx int64
    email string
    password string
    name string
}
//auto generation log
CREATE TABLE IF NOT EXISTS "user" (
    "idx" serial NOT NULL PRIMARY KEY,
    "email" text NOT NULL DEFAULT '' ,
    "password" text NOT NULL DEFAULT '' ,
    "name" text NOT NULL DEFAULT ''
    );

다만 단점으로는 ORM을 이용하여 개발을 진행할시, 개발자는 Database 구조에 대하여 같이 개발을 진행해야 하고, 성능면에서 직접적인 SQL QUERY 보다 부족합니다.

따라서 개발자는 개발에 대한 전체 환경에 대한 이해와 데이터베이스 설계를 명확히 해야하고 모델 구조를 명확하게 짤줄 알아야 하여 이해도가 부족할 경우 개발 할때 어려움이 있을 수 있습니다.

Leave a Reply

avatar
  Subscribe  
Notify of
%d 블로거가 이것을 좋아합니다: