daily

23.04.29. ORM과 ODM의 같은점과 다른점

Juhyuck 2023. 4. 29. 10:56
728x90

node.js 강의를 듣고, 과제를 구현하면서 MongoDB ↔ mongoose와 MySQL ↔ sequelize를 사용해봤다. 

mongoose는 noSQL인 MongoDB를 편리하게 사용할 수 있게 해주는 ODM이고, sequelize는 MySQL과 같은 SQL을 편리...(?)하게 사용할 수 있게 해주는 ORM이다. 둘의 차이는 관계형 데이터베이스이냐, document 또는 noSQL 방식의 데이터베이스냐의 차이인데, 조금 더 공부하는 차원에서 정리해 보면,

 

Database icons created by Smashicons - Flaticon

 

ORM과 ODM은 모두 데이터베이스와 상호작용하는 프로그래밍 도구이지만, ORM은 관계형 데이터베이스와 작동하고 ODM은 NoSQL 데이터베이스와 작동한다. 두 도구는 비슷한 목적을 가지고 있지만 몇 가지 중요한 차이점이 있다.

 

같은점:

  • 객체 관계 매핑(ORM)과 객체 문서 매핑(ODM)은 모두 데이터베이스 작업을 추상화하며, 개발자가 적은 코드로 데이터베이스 작업을 수행할 수 있도록 도와준다.
  • 두 도구는 모두 데이터베이스 모델링을 추상화하며, 개발자가 객체 지향 프로그래밍으로 데이터베이스를 사용할 수 있도록 한다.
  • ORM과 ODM 모두 데이터베이스에서 데이터를 쉽게 조회, 생성, 업데이트, 삭제할 수 있는 기능을 제공한다.

다른점:

  • ORM은 관계형 데이터베이스와 작동하는 도구이며, ODM은 NoSQL 데이터베이스와 작동하는 도구이다.
  • ORM은 데이터를 테이블로 구성된 관계형 데이터베이스에 저장한다. 반면에 ODM은 데이터를 문서 형태로 구성된 NoSQL 데이터베이스에 저장한다.
  • ORM은 SQL 쿼리를 사용하여 데이터베이스 작업을 수행한다. ODM은 자체 쿼리 언어를 사용하여 데이터베이스 작업을 수행한다.
  • ORM은 테이블, 행, 열 등의 데이터베이스 개체와 관련된 개념을 사용한다. ODM은 문서, 컬렉션, 필드 등의 데이터베이스 개체와 관련된 개념을 사용한다.