jade-devlab 님의 블로그
[Node.js] Sequelize 기초 설정 및 모델 생성 본문
* 포프린트 프로젝트에서 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 :
* Sequelize 를 처음 초기화 했을 때 제공해주는 템플릿 파일이라고 한다.
* 포프린트 프로젝트는 ESM 형식이라 다른 파일을 통해 DB 를 연결했습니다!!
-> pgConnect.js ( postgresql 연결을 위해 사용한 파일)
3. 모델 생성
- 사용자 모델 예시
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