ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST API 서버 만들기 (4) - Dotenv, Sequelize 설치 및 세팅하기
    Server 2020. 4. 1. 21:07

    <참고>

    REST API 서버 제작 수업을 듣고 포스팅을 하는 게시글 입니다.

    서버 개발자가 아니고, 노드를 전문적으로 사용하는 개발자가 아니기에 오류가 있을 수 있습니다.

     

    윈도우로 진행하시는 분들은 콘솔 명령어 수행 시 GitBash 사용을 권장드립니다.


    이번 강의에서 작업 할 내용

    • 환경변수 생성하고 설정하기
    • Sequelize & Mysql 설치하기
    • Sequelize 세팅하기

    환경변수 생성하고 설정하기

    우선 뒤에서 사용할 Sequelize를 위한 환경변수 작업을 해주어야 합니다.

    그 외에도 추가적으로 작업 할때 코드에 하드코딩이 아닌 환경변수에 값을 관리함으로서 코드의 유연함을 가질 수 있습니다.

    먼저 모듈을 하나 설치해 주도록 합니다. `npm install dotenv`

    이렇게 하면 해당 프로젝트에 있는 .env 파일이 환경변수 파일이 됩니다.

    프로젝트안에 env 파일을 하나 추가해주고 아래 내용을 작성해주도록 합니다.

    간단하게 상황별 DB 정보를 모두 환경 변수에 넣었습니다.

    이러면 모듈을 시작할 때 환경 변수에 다 등록이 되고 require이 되어 있는 파일에서는 'process.env.DEV_DB_USER' 로 접근을 할 수 있습니다.


    Sequelizer & Mysql 설치하기

    Sequelize는 Postgres, MySQL, MariaDB, SQLite, Microsoft SQL Server를 지원하는 Promise 패턴 기반의 Node.js ORM입니다. Solid 트랜잭션, 관계 설정, 즉시 로딩, 지연 로딩, 읽기 전용 복제본 등을 포함해 많은 기능을 제공합니다.

     

    `npm install sequelize mysql2 @babel/core @babel/register`

     

    mysql2는 MySql을 사용할 수 있게 도와주는 모듈 입니다.

    sequelize-cli 는 sequelize을 손쉽게 생성하기 위한 cli 모듈입니다.

    @babel/register : Babel을 사용하기 위한 모듈 입니다.

    - ( Babel은 Js 컴파일러로써 ECMAScript 코드를 JavaScript 버전으로 변환시켜주는 역할을 수행 )

    sequelize 명령어를 입력하여 cli가 정상적으로 작동하는지 확인을 해주도록 합시다.

    그 외에도 mysql도 정상적으로 접속이 되는지 확인을 해주도록 합시다.

    만약 Mysql-Workbench 또는 다른 GUI 툴이 있다면 그것으로 확인을 해주셔도 됩니다.


    Sequelize 세팅하기

    명령어를 통한 세팅을 하기 앞서 하나의 파일을 생성하여 줍니다. 바로 .sequelizerc 인데요

    sequelize db:migrate, sequelize db:seed 같은 명령어를 사용시 가장 불편한 점은 루트 디렉토리까지 가서 명령을 실행해야 한다는 점입니다. 또한 파일을 생성시 앞서 v1, v2... 식으로 작업을 할 것이기 때문에 생성하고 폴더로 이동해야 하는 번거로움이 발생합니다.

    하지만 아래 파일을 생성 후 다음과 같이 작성을 해주면 어디서든 설정해 놓은 주소로 알아서 잡히게 됩니다,

    이제 sequelize를 프로젝트에 추가해보도록 합시다.

    먼저 sequelize config 파일을 생성해보도록 하겠습니다. `sequelize init`

    위에서 설정한 좌표로 총 파일 2개와 폴더 4개가 생성되었습니다.

    configs/sequelize.js 파일의 내용을 수정해주도록 하겠습니다.

    NODE_ENV 이 production, development, test 상태에 따른 DB 분기와 추가적인 설정을 더 해주는 소스 입니다.

     

    다음은 models/v1 폴더의 index.js 파일을 아래와 같이 수정해줍니다.

    file.slice(3) === '.js' 부분을 file.slice(9) === 'model.js' 로 수정을 해주면 됩니다.

    앞서 router 나 controller 제작 시 user.router.js, user.controller.js 이런식으로 작성하였기에 model 또한 동일한 양식으로 생성을 하기 위함입니다.

     

    models/v1/index.js 파일은 해당 폴더의 파일을 다 읽어와서 자동으로 등록시켜주는 파일입니다.

    user.model.js 라는 파일이 있으면 user 를 키워드로 가진 sequelize 객체가 등록되어 있는 것이죠

    다른 파일에서 require('/models/v1').User 이렇게 접근을 할 수 있게 됩니다.

    이로써 sequelize의 기본적인 세팅은 마무리 되었습니다.


    다음 강의에서는 model을 생성하고 migration을 해보도록 하겠습니다.

     

    댓글

Designed by Tistory.