[ORM] ORM(Object Relational Mapping)

cabbage·2023년 1월 25일
0

ORM

목록 보기
6/7
post-custom-banner

ORM이란?

ORM(Object Relational Mapping)은 객체지향 프로그램과 관계형 데이터베이스 사이에 "브릿지"를 만들기 위해 사용하는 기술이다.
다르게 보자면, ORM은 객체지향 프로그래밍과 관계형 데이터베이스를 연결하는 레이어라고 볼 수 있다.

  • 객체지향 언어로 데이터베이스와 상호작용하는 경우, 데이터베이스에서 데이터를 CRUD하기 위해 SQL이 아닌 별도의 명령어를 사용한다.
  • 관계형 데이터베이스 안에서 데이터를 CRUD하는 경우에는 SQL을 사용한다.
  • ORM은 관계형 데이터베이스와 객체지향 언어 사이의 상호작용을 간단하게 할 수 있도록 도와주는 역할을 한다.

ORM 툴

ORM 툴은 객체지향 개발자들이 관계형 데이터베이스와 상호작용하는 것을 돕기 위해 고안된 소프트웨어이다.

SQL 쿼리문을 사용해 데이터베이스에서 데이터를 CRUD할 수도 있지만, ORM 툴을 사용하면 현재 개발 중에 사용하는 프로그래밍 언어로 좀 더 쉽게 데이터베이스에서 데이터를 CRUD할 수 있다.

대부분의 객체지향 프로그래밍 언어들은 다양한 종류의 ORM 툴을 가지고 있기 때문에 사용하고 싶은 툴을 선택하면 된다.

자바스크립트 ORM 툴 종류

  • Knex.js: SQL Query Builder
  • Sequelize
  • Bookshelf
  • Waterline
  • Objection.js
  • Mongoose
  • Typegoose
  • TypeORM
  • MikroORM
  • Prisma

NestJS의 ORM

NestJS의 데이터베이스 공식문서에 따르면 NestJS에서 다음과 같은 ORM을 사용할 수 있다.

  • MikroORM
  • Sequalize
  • Knex.js
  • TypeORM
  • Prisma

또한 편의를 제공하기 위해 Nest는 다음과 같은 ORM과의 통합을 제공한다.

  • TypeORM
  • Sequalize
  • Mongoose

이런 ORM들과의 통합은 추가적인 NestJS 관련 기능들을 제공한다.

  • model/repository injection
  • testability
  • asynchronous configuration

이 기능들은 데이터베이스에 접근하는 것을 더 쉽게 해준다.

참고

profile
캐비지 개발 블로그입니다. :)
post-custom-banner

0개의 댓글