[Server] 기본 개발환경 설정

Jiyoung·2021년 4월 16일
0

1) Express-generator라는 패키지를 설치하면 익스프레스 프레임워크에 필요한 package.json을 만들어주고 기본 폴더 구조까지 잡아준다. 나는 이 패키지 설치 후 프로젝트 기획안에 맞게 다시 폴더를 편집했다(controllers폴더 생성 등).

$ npx express-generator

2) DB 설정을 위해 Sequelize ORM을 설치하고 bootstraping을 해주면 config/config.json, models, migrations, seeders와 같은 파일 및 폴더들이 생성된다.

3) .env 파일 생성 후 데이터 베이스 연결에 필요한 정보를 입력한다.

DATABASE_PASSWORD='MY_PASSWORD'
DATABASE_USERNAME=root
DATABASE_NAME='PROJECT_DB_NAME'
ACCESS_SECRET= 'accessToken'
REFRESH_SECRET= 'refreshToken'

4) localhost로 대표되는 로컬 환경에 대한 인증서를 만들어 cert.pem, key.pem 파일을 생성한다. key.pem은 개인 키이므로 git에 커밋하지 않고, 암호처럼 다루어야 한다.

$ mkcert -install //로컬을 인증된 발급기관으로 추가
$ mkcert -key-file key.pem -cert-file cert.pem localhost 127.0.0.1 ::1 //인증서 생성

5) index.js 파일을 생성하여 아래 예시와 같이 HTTPS 서버를 작성한다. 나는 이 파일에 CORS 및 라우터 설정도 해주었다.

const https = require('https');
const fs = require('fs');
const express = require('express');

const app = express();

https
  .createServer(
    {
      key: fs.readFileSync(__dirname + '/key.pem', 'utf-8'),
      cert: fs.readFileSync(__dirname + '/cert.pem', 'utf-8'),
    },
    app.use('/', (req, res) => {
      res.send('Congrats! You made https server now :)');
    })
  )
  .listen(3001);

5) .gitignore 파일을 생성하여 불필요한 파일이 github repository에 올라가지 않도록 설정해준다.

node_modules
.env
localhost*

*package-lock.json
*.pem

위 과정을 통하여 대략적인 서버 기본 개발환경을 만들어주었다. 그동안은 스프린트에 기본적으로 개발 환경이 설정되어 있어서 이렇게 처음부터 개발환경을 다 만들어야 되는지도 몰랐다. 처음에는 개발환경 설정만으로도 멘붕이었지만, 언제나 그렇듯 한번 해보면 그리 어려운 것만은 아니다.

profile
경계를 넘는 삶

0개의 댓글