jade-devlab 님의 블로그

[Node.js] Sequelize 기초 설정 및 모델 생성 본문

back-end/node.js

[Node.js] Sequelize 기초 설정 및 모델 생성

bibi-jade 2025. 8. 8. 13:08

* 포프린트 프로젝트에서 Node.js 를 처음으로 접하고 , Sequelize 라는 ORM 기술을 사용하면서 정리한 내용입니다...!!

(Postgresql 데이터베이스에서 사용했습니다!!) 

 


1. Sequelize 란 ?

 

: Sequelize는 Node.js 환경에서 사용하는 Promise 기반 ORM(Object-Relational Mapping) 라이브러리로, SQL 쿼리를 직접 작성하지 않고도 JavaScript 코드로 데이터베이스를 다룰 수 있게 해줍니다.

 

- Node.js 기반에서 사용가능한 다른 ORM 으로는 TypeORM, Prisma 등이 있습니다!!

  • TypeORM : TypeScript 친화적 ORM. 데코레이터 기반. NestJS와 잘 맞음.
  • Prisma : 최신 ORM. 타입 안전성 뛰어남. 자동완성 굿. 다소 러닝커브 있음.
  • Sequelize : 전통적인 ORM. SQL 없이도 모델 중심으로 개발 가능. 다양한 DB 지원(지원 DB: PostgreSQL, MySQL, MariaDB, SQLite, MSSQL 등) 

-> 포프린트 프로젝트에서는 typescript 를 사용하지 않고, 빠른 개발이 중요한 프로젝트라 전통적인 ORM이라고 하는 Sequelize ORM 을 사용하게 되었습니다!!!!

 


 

 

2. 설치 방법

npm install sequelize pg pg-hstore

 

  • pg : Postgresql 드라이버
  • pg - hstore : JSON 데이터를 PostgreSQL에 저장할 수 있도록 도와주는 라이브러리 (필수)
sequelize init

 

이 명령어를 실행 시 다음과 같은 파일 구조가 생성됨.

프로젝트 루트 경로 /
├── config/ │
└── config.json       # DB 설정 파일
├── models/
 │ └── index.js          # DB 초기화 및 모델 연결
├── migrations/
├── seeders/

 

파일을 하나하나 살펴보면 

 

  • config.json : 
{ "development": {
    "username": "postgres",     # 데이터베이스 사용자 이름 
    "password": "yourpassword",  # 데이터베이스 비밀번호 
    "database": "yourdbname",   # 데이터베이스 이름 
    "host": "127.0.0.1",   # 데이터베이스 url
    "dialect": "postgres" } }  # 종류 

 

- development, production, test 3가지 환경에 대한 DB 연결을 설정할 수 있습니다!

- dotenv 라이브러리를 사용해 .env 파일 안으로 데이터베이스 정보를 넣어서 사용할 수 있다. 

 

  • models : Sequlize Model 이 저장되는 파일 
  • migration : 코드로 작성된 데이터베이스 변경 기록이다, 데이터베이스 스키마 버전 관리 도구라고 합니다 .. * 스프링 부트로 처음 백엔드 공부를 시작해 JPA ddl-auto = update 등을 사용하곤했었는데 이 방식은 익숙하지 않았던것같습니다..!!
  • Models/index.js : 

index.js

 

* Sequelize 를 처음 초기화 했을 때 제공해주는 템플릿 파일이라고 한다.

* 포프린트 프로젝트는 ESM 형식이라 다른 파일을 통해 DB 를 연결했습니다!!

-> pgConnect.js ( postgresql 연결을 위해 사용한 파일) 

 

pgConnect.js

 

 

3. 모델 생성 

 

- 사용자 모델 예시 

 

user.model.js

 

 

4. 참고 자료 

 

https://any-ting.tistory.com/49

 

[Node.js] Sequelize 개념 및 설치

- 개요 안녕하세요. 이번 시간에는 시퀄 라이즈(Sequelize)에 대해 알아보겠습니다. 시퀄 라이즈(Sequelize)란 무엇일까요? 시퀄 라이즈는 DB 작업을 쉽게 할 수 있도록 도와주는 ORM 라이브러리입니다.

any-ting.tistory.com

https://resilient-923.tistory.com/276

 

[Node.js] Sequelize란? Sequelize사용법

나는 처음 노드로 개발을 시작했을 때 부터 지금 까지는 MySQL쿼리를 직접 작성해서 RDBMS를 구현하였다. 하지만 요즘에는 효율적인 ORM들이 있고, 그중에 대표적인 ORM인 Sequelize가 있다. 이번시간에

resilient-923.tistory.com