[DB]ORM과 ODM에 대하여


데이터 베이스에서 정보를 꺼내거나 변경하는데 우리는 SQL이라는 query문을 사용했었다.
하지만 새로운 언어를 배워야 하는 부담감이 존재했었는데..

이러한 단점을 보완하고자 ORM,ODM이라는 기능이 만들어졌다. 한번 알아보도록 하자


ODM(Object Data Mapping)

node.js 에서 MongoDB를 사용하다 보면 Mongoose라는 라이브러리를 사용하는데, 이것이 바로 ODM입니다.

MongoDB는 document based 데이터 베이스입니다.

ODM을 사용하면 코드의 개체가 필욯나 경우 데이터의 document 표현간에 변환할 수 있습니다.

또한 객체 표기법을 Document 표기법으로 변환하기 위해 JSON 또는 JSONB API를 사용합니다.

ORM(Object-Relational Mapping)

ORM은 객체 지향 프로그래밍 언어를 사용해서 호환되지 않는 유형 시스템간에 데이터를 변환 하는 프로그래밍 기술입니다.

MySQL은 관계형 데이터 베이스의 한 예입니다. 코드에서 개체와 데이터의 관계형 표현간에 ORM을 사용하여 변환 할 수 있습니다.

즉, 쿼리문을 사용하지 않고 좀더 간결한 표현문으로 같은 기능을 수행할 수 있도록 도와줍니다.


ORM,ODM의 장점과 단점

  • 장점

    1. DBMS에 대한 종속성이 줄어들어 DBMS 변경시 드는 비용이 줄어듭니다.

    2. 객체 지향적인 코드로 가독성이 향상됩니다.

  • 단점

    1. 프로젝트의 복잡성이 커질수록 ORM의 추상화라는 장점이 오히려 단점이 될 수 있습니다.

    2. 결국 프로젝트가 커질 수록 SQL을 사용해야합니다.