일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- javascript #js #math #자바스크립트 #랜덤 #랜덤정수
- mern
- yarnpkg
- stringtoken
- binary #opencv
- 스마일게이트 서버개발캠프
- yarnpkg update
- mysql grant
- 몽구스스키마
- 스마일게이트
- apt-key list
- DFD #ERD #usecase #유스케이스 #다이어그램 #UML #모델링 #모델링언어
- Lambda Architecture
- devlopment mode
- qt signal slot
- production mode
- tweet deck
- opencv #python
- serverDevCamp
- Signal Slot
- 서캠
- 서버개발캠프
- QT Event
- mongoose schema
- quadcore
- 비기능적요구사항 #요구사항 #SRS #소프트웨어공학
- 정보처리기사 #정처기 #정처기가답안 #가답안 #2019년2회차 #2회차 #자격증 #기사 #정보처리산업기사 #큐넷
- NODE_ENV
- dev-ops
- QT SIgnal
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