Node.js 백엔드에서 사용되는 유명한 ORM들 중 하나인 Sequelize 사용법을 공식 문서에 기반하여 정리하고자 한다. 일단 Sequelize는
Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.
이 설명에 나온 것처럼 자바스크립트 ES6 표준부터 등장한 Promise에 기반한 ORM이고 Postgres, MySQL, MariaDB, SQLite, MS SQL Server를 지원한다.
(1) 하나씩 시작해보자. 먼저, sequelize_sample이라는 디렉토리를 만들고 해당 디렉토리를 package로 만든다.
cd sequelize_sample
npm init -y
(2) 그리고 sequelize 패키지를 설치한다.
npm install sequelize
(3) 여기서부터는 선택지가 크게 2개이다. 바로 코드부터 작성하거나, 아니면 sequelize-cli라고 하는 sequelize 관련 명령을 내릴 수 있게 해주는 패키지를 설치하는 것이다. 경험상 sequelize-cli를 사용하는 것이 속이 편하다. sequelize-cli 패키지를 설치하자.
npm install sequelize-cli
(4) 자, 그런데 여기서 한 가지 더 설치해주어야 한다. sequelize를 사용하더라도 실제로 SQL 문을 데이터베이스 서버에 전달해줄 저수준의 드라이버 패키지가 필요하다. 사용할 데이터베이스의 종류에 맞는 패키지를 설치해주면 되는데 각각 다음과 같다.
$ npm install pg pg-hstore # Postgres
$ npm install mysql2
$ npm install mariadb
$ npm install sqlite3
$ npm install tedious # Microsoft SQL Server
이 튜토리얼에서는 mysql을 사용할 것이기 때문에 mysql2 패키지를 설치하겠다.
npm install mysql2
자, 이제 sequelize-cli 패키지를 사용해서 sequelize를 ORM으로 사용하는 패키지에 적합한 디렉토리 구조를 세팅하겠다. 다음 명령을 실행하면 된다.
npx sequelize init
이렇게 하고나면 sequelize_sample 디렉토리 안에 다음과 같은 총 4개의 디렉토리들이 생성된다.
각 디렉토리의 역할이 무엇인지는 다음 글에서 살펴보자.