프로그래밍 언어/NODE JS

시퀄라이즈 사용하기

· 코딩마이데이

시퀄라이즈는 MySQL 작업을 쉽게 할 수 있도록 도와주는 라이브러리입니다.

 

시퀄라이즈는 ORM(Object-relational Mapping)으로 분류됩니다. ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구입니다.

 

시퀄라이즈를 단지 MySQL과 같이 써야만 하는 것은 아닙니다. MariaDB, PostgreSQL, SQLite, MSSQL 등 다른 데이터베이스도 같이 쓸 수 있습니다. 문법이 어느 정도 호환되므로 프로젝트를 다른 SQL 데이터베이스로 전환할 때도 편리합니다.

 

시퀄라이즈를 쓰는 이유는 자바스크립트 구문을 알아서 SQL로 바꿔주기 때문입니다. 따라서 SQL 언어를 직접 사용하지 않고도 자바스크립트만으로 MySQL을 조작할 수 있으며, SQL을 몰라도 MySQL을 어느 정도 다룰 수 있게 됩니다.

 

시퀄라이즈 실습을 위한 새 프로젝트를 생성하갰습니다. learn-sequelize 폴더 안에 생성합니다.

{
  "name": "learn-sequelize",
  "version": "0.0.1",
  "description": "시퀄라이즈를 배우자",
  "main": "app.js",
  "scripts": {
    "start": "nodemon app"
  },
  "author": "ZeroCho",
  "license": "MIT"
}

 

이제 시퀄라이즈에 필요한 sequelize와 sequelize-cli, mysql2 패키지를 설치합니다.

$ npm i express morgan nunjucks sequelize sequelize-cli mysql2
$ npm i -D nodemon

 

 

sequelize-cli는 시퀄라이즈 명령어를 실행하기 위한 패키지이고, mysql2는 MySQL과 시퀄라이즈를 이어주는 드라이버입니다. 

 

설치 완료 후 sequelize init 명령어를 호출하면 됩니다. 전역 설치 없이 명령어로 사용하려면 앞에 npx를 붙이면 됩니다.

$ npx sequelize init

Sequelize CLI [Node: 22.13.0, CLI: 6.6.3, ORM: 6.37.7]

Created "config\config.json"
Successfully created models folder at "D:\공부\Nodejs\7장\learn-sequelize\models".
Successfully created migrations folder at "D:\공부\Nodejs\7장\learn-sequelize\migrations".
Successfully created seeders folder at "D:\공부\Nodejs\7장\learn-sequelize\seeders".

 

config, models, migrations, seeders 폴더가 생성되었습니다. models 폴더 안에 index.js가 생성되었는지 확인합니다. sequelize-cli가 자동으로 생성해주는 코드는 그대로 사용할 때 에러가 발생하고, 필요 없는 부분은 다음과 같이 수정합니다.

const Sequelize = require("sequelize");
const env = process.env.NODE_ENV || "development";
const config = require("../config/config.json")[env];
const db = {};

const sequelize = new Sequelize(
  config.database,
  config.username,
  config.password,
  config
);

db.sequelize = sequelize;

module.exports = db;

 

sequlize는 시퀄라이즈 패키지이자 생성자입니다. config/config.json에서 데이터베이스 설정을 불러운 후 new Sequelize를 통해 MySQL 연결 객체를 생성합니다. 연결 객체를 나중에 재사용하기 위해 db.seqelize에 넣어두었습니다.

'프로그래밍 언어 > NODE JS' 카테고리의 다른 글

모델 정의하기  (1) 2025.08.27
MySQL 연결하기  (0) 2025.08.24
CRUD 작업하기  (1) 2025.08.18
데이터베이스 및 테이블 생성하기  (6) 2025.08.15
워크벤치 커넥션 생성하기  (0) 2025.08.12