AWS와 GCP로 배포하기 - 서비스 운영을 위한 패키지(2)
시퀄라이즈
데이터베이스도 배포 환경으로 설정합니다. 시퀄라이즈의 경우 수정이 필요합니다.
시퀄라이즈에서 가장 큰 문제는 비밀번호가 하드 코딩되어 있다는 것이며, JSON 파일이므로 변수를 사용할 수 없습니다. 다행히 시퀄라이즈는 JSON 대신 JS 파일울 설정 파일로 쓸 수 있게 지원합니다.
config 폴더에서 config.json을 지우고 config.js를 생성합니다.
require("dotenv").config();
module.exports = {
development: {
username: "root",
password: process.env.SEQUELIZE_PASSWORD,
database: "nodebird",
host: "127.0.0.1",
dialect: "mysql",
},
test: {
username: "root",
password: process.env.SEQUELIZE_PASSWORD,
database: "nodebird_test",
host: "127.0.0.1",
dialect: "mysql",
},
production: {
username: "root",
password: process.env.SEQUELIZE_PASSWORD,
database: "database_production",
host: "127.0.0.1",
dialect: "mysql",
},
};
JS 파일이므로 dotenv 모듈을 사용할 수 있습니다. password만 process.env로 바꾸었지만, 보안 규칙에 따라 나머지 정보도 process.env로 바꿔도 됩니다. 특히 username 속성이나 host 속성은 각각의 아이디어와 DB 서버 주소 역힐을 하므로 숨기는 게 좋습니다.
process.env가 development일 때는 development 속성의 설정 내용이 적용되고, production일 떄는 production 속성의 설정 내용이 적용됩니다. 실무에서는 개발용 데이터베이스와 배포용 데이터베이스를 구별하기 하므로 이렇게 구분하는 덕이 유용합니다.
지금은 쿼리를 수행할 때마다 콘솔에 SQL문이 노출됩니다. 배포 환경에서는 어떤 쿼리가 수행되는지 숨기는 것이 좋습니다. 따라서 production일 경우에는 logging에 false를 줘서 쿼리 명령어를 숨겼습니다.
데이터베이스 비밀번호는 .env 파일에 입력합니다.
COOKIE_SECRET=nodebirdsecret
KAKAO_ID=5d4daf57becfd72fd9c919882552c4a6
SEQUELIZE_PASSWORD=데이터베이스 비밀번호'프로그래밍 언어 > NODE JS' 카테고리의 다른 글
| sanitize-html, csurf (0) | 2026.04.14 |
|---|---|
| 시퀄라이즈: cross-env (1) | 2026.04.12 |
| AWS와 GCP로 배포하기 - 서비스 운영을 위한 패키지 (0) | 2026.04.06 |
| commander, inquirer 사용하기(3) (0) | 2026.04.03 |
| commander, inquirer 사용하기(2) (0) | 2026.03.31 |