-
[Express] Sequelize 설치 및 설정하기Others 2021. 9. 28. 22:16
ORM?
Object Relational Mapping 이다.
이게 뭐냐고?객체 지향 프로그래밍에서는 객체를 사용한다.
프로그램을 구현하다 보면 관계형 데이터베이스의 데이터를 사용할 수 있는데 이 때
객체 모델과 관계형 모델 간에 불일치가 존재할 수 있다.
ORM은 관계형 데이터베이스를 접근하여 데이터를 가져올때 객체와 연결시켜주는 것을 뜻한다.
Sequelize!
위에서 ORM을 말한 이유는 Sequelize가 ORM으로 분류되기 때문이다.
Sequelize는 NodeJS의 라이브러리이고 자바스크립트 객체와 데이터베이스를 매핑해준다
???: 자바스크립트에서 관계형 데이터베이스 라이브러리를 사용해서 데이터를 가져오면 객체로 나오잖아요?
Sequelize를 사용하면 자바스크립트 구문만을 사용함에도 SQL 언어로 조작할 수 있기 때문에 사용한다.
ORM의 존재 의의처럼, DB 작업을 쉽게 할 수 있는 라이브러리라는 것이다.
Express Sequelize ~!
필자는 Express에서 Sequelize를 사용할 예정이고 로컬 컴퓨터의 MySQL을 통해 관계형 데이터베이스를 제공하고자 한다.
먼저 이 라이브러리를 사용하려면 뭐다? 설치를 해야한다.
npm install mysql2 sequelize
- sequelize-cli 라는 라이브러리(sequelize 명령어를 실행하는)도 있긴 한데 필자는 해당 기능 없이 진행했다.
설치가 끝났다면, 먼저 Sequelize를 사용할 수 있게하는 모듈을 생성해야 한다.
필자는 db라는 폴더 안에 sequelize.js 라는 파일을 생성하여 작성해주었다.
const Sequelize = require('sequelize'); const env = process.env.NODE_ENV || 'development'; const config = require('./config.json')[env]; const sequelize = new Sequelize(config.database, config.username, config.password, config); const db = {}; db.sequelize = sequelize; module.exports = db;
위의 코드를 보면 config.json이라는 폴더를 필요로하고 있다.
config.json에서는 MySQL에 연결하기 위한 설정 값들이 들어있다. (접속하기 위해선 필요한 값들...
알죠? ㅎ;;)가벼운 토이프로젝트이기에 아래와 같이 db 폴더안에 해당 파일도 생성해보자.
{ "development": { "username": "root", "password": null, "database": "mydatabase", "host": "127.0.0.1", "dialect": "mysql" }, "test": { "username": "root", "password": null, "database": "mydatabase", "host": "127.0.0.1", "dialect": "mysql" }, "production": { "username": "root", "password": null, "database": "mydatabase", "host": "127.0.0.1", "dialect": "mysql" } }
- username과 password 값에 MySQL에 접속할 수 있는 계정 값을 넣어주도록 하자.
- database에는 생성된 데이터베이스여야 한다.
이제 Sequelize를 Express에 적용할 수 있도록 설정하면 된다.
Express 설정을 위해 app.js에서 해당 구문을 추가해주면 된다.
// ... Other Settings const app = express(); // Database Sequelize Sets const { sequelize } = require('./db/sequelize'); sequelize.sync({ force: false }) .then(() => { console.log('Database Connected!'); }) .catch((err) => { console.error(err); }); // ... Other Settings
이 상태에서 Express를 실행해본다면 잘 작동하는 것을 확인할 수 있다.
자 이제 Sequelize를 공부해서 사용해보도록 하자~!~!
참고 사이트
시퀄라이즈(Sequelize)(1) 기본 사용법
시퀄라이즈(Sequelize)란? 시퀄라이즈는 DB 작업을 쉽게 할 수 있도록 도와주는 라이브러리입니다. ORM(Object-relational Mapping)으로 분류되며, ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매
velog.io
'Others' 카테고리의 다른 글
Slack에 Github 알림 / Github Actions 연동하기 (2) 2021.11.07 [Express] Sequelize를 이용해 모델(테이블) 생성 및 접근하기 (0) 2021.09.28