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