일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- devlopment mode
- stringtoken
- apt-key list
- 서버개발캠프
- javascript #js #math #자바스크립트 #랜덤 #랜덤정수
- production mode
- 비기능적요구사항 #요구사항 #SRS #소프트웨어공학
- mysql grant
- tweet deck
- Signal Slot
- NODE_ENV
- 스마일게이트
- binary #opencv
- Lambda Architecture
- 서캠
- dev-ops
- serverDevCamp
- QT Event
- 스마일게이트 서버개발캠프
- quadcore
- 몽구스스키마
- 정보처리기사 #정처기 #정처기가답안 #가답안 #2019년2회차 #2회차 #자격증 #기사 #정보처리산업기사 #큐넷
- yarnpkg update
- yarnpkg
- mongoose schema
- qt signal slot
- DFD #ERD #usecase #유스케이스 #다이어그램 #UML #모델링 #모델링언어
- mern
- QT SIgnal
- opencv #python
Archives
- Today
- Total
Ziks
Node.js에서의 Development Mode, Production Mode 분기 본문
개발을 완료하고 서비스를 배포하거나 오픈소스로서 깃 허브에 배포되지 말아야하는 정보들이 있습니다. DB의 Password나 외부 API의 Key값, 클라이언트에게 보이지 말아야 할 에러 메시지등 이러한 정보들은 배포시에 함께 배포되면 안되기에 NODE_ENV 환경변수를 설정하고 Development 모드와 Production 모드로 나누고 이를 활용해야 합니다.
1
2
3
4
|
config/
├── development.js
├── key.js
└── production.js
|
cs |
먼저, Project 내에 config폴더를 만들고 다음과 같이 구성해주세요. 모듈명에서 이미 들어나듯 deveopment와 production모드를 나누고 key.js에서 환경을 파악한 후에 맞는 모듈을 찾아 Export 하는 방식입니다.
구성하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
// config/development.js
module.exports = {
PORT: 5000,
}
// config/production.js
module.exports = {
PORT: process.env.PORT,
};
// config/key.js
if(process.env.NODE_ENV === 'production'){
module.exports = require('./production');
} else {
module.exports = require('./devopment');
}
|
cs |
- development.js 모듈에는 Express 서버 환경의 개발 포트가 설정 되어있고 이를 module.exports를 이용해 export 해줍니다.
- production.js 모듈은 배포환경에 맞도록 작성해주시면 됩니다.
- key.js에서 process.env.NODE_ENV를 활용하여 각 환경에 맞는 라우팅이 이루어 질 것입니다.
이렇게 개발, 배포환경에 맞게 각 변수들을 모듈별로 나눈 후에 .gitignore에 development.js 를 설정 해주시면 배포시 개발환경에 대한 정보들은 배포되지 않을것입니다. 분기를 통해 얻는 장점은 프로젝트 내의 공통된 변수를 정의함으로서 쉽게 관리가 가능한 편리함과 프로젝트의 민감한 정보를 보호할 수 있을 것입니다.
'Development > Nodejs' 카테고리의 다른 글
JS Math (0) | 2019.07.10 |
---|
Comments