ABOUT ME

Today
Yesterday
Total
  • [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

Designed by Tistory.