create account

Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기 by inspiredjw

View this thread on: hive.blogpeakd.comecency.com
· @inspiredjw ·
$11.97
Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기
보통 Node.js 를 실행할 때

![nodejs](https://steemitimages.com/DQmSwW2jSoCXmgCR1FQFDia4Q1SHvADVJVvTEBeZKKrYW8X/image.png)


`NODE_ENV` 값을 이용해서
 


> production ( 배포 ) 모드
> development ( 개발 ) 모드

이렇게 두 가지로 나누어서 실행하게 되는데요.


Node.js 프레임워크인 [Express](http://expressjs.com) 의 경우 

<br>

**production 모드** 일때는

**파일 캐싱, 에러 메시지 감추기** 등 배포의 적합한 환경 설정을 하구요.

<br>

**development 모드** 일 때는

**파일 캐싱 방지, 디버그를 위한 상세한 에러 메시지 보이기** 등 

개발에 도움을 줄 수 있는 환경으로 설정을 해줍니다.

<br>

하지만 직접 이 값을 알아 내고 싶을 때가 있는데요.

이럴 때는 Express 에서 전체 앱을 총괄하는 역할을 맡고 있는 **root 디렉토리의 app.js** 에서 **첫 줄**에

<br>

```
process.env.NODE_ENV = ( process.env.NODE_ENV && ( process.env.NODE_ENV ).trim().toLowerCase() == 'production' ) ? 'production' : 'development';
```

<br>

이렇게  해주면 NODE_ENV 가 따로 지정이 안되어 있더라도 development 모드로 지정되게 해줄 수 있습니다.

<br>

이후 **이 앱 소스 어디에서나 ( require 된 파일 포함 )**
```
if (process.env.NODE_ENV == 'production') {
  console.log("Production Mode");
} else if (process.env.NODE_ENV == 'development') {
  console.log("Development Mode");
}
```

위 처럼 NODE_ENV 값에 따라 하고 싶은 일을 함으로써 개발과 배포용 소스를 따로 분리해서 코딩 할 수 있습니다.

<br>

혹시 NODE_ENV 값을 설정하는 방법을 모르신다면

**Linux, Mac OS X** 기준으로

Terminal, Shell 창에서 

```
export NODE_ENV=production
```

이렇게 해주시면  NODE_ENV 값을 설정 할 수 있게 됩니다.

<br>

**한가지 더!**

Terminal, Shell 창이 아닌 **Windows** 운영체제에서 Node.js 를 구동하실 때에는
 
```
set NODE_ENV=production
```

이렇게 조금 다른 명령어로 `NODE_ENV` 값을 설정할 수 있습니다.
👍  , , , , , , ,
properties (23)
authorinspiredjw
permlinknode-js-nodeenv
categorykr
json_metadata{"tags":["kr","kr-dev","kr-newbie","nodejs"],"image":["https://steemitimages.com/DQmSwW2jSoCXmgCR1FQFDia4Q1SHvADVJVvTEBeZKKrYW8X/image.png"],"links":["http://expressjs.com"],"app":"steemit/0.1","format":"markdown"}
created2017-07-02 20:29:48
last_update2017-07-02 20:29:48
depth0
children2
last_payout2017-07-09 20:29:48
cashout_time1969-12-31 23:59:59
total_payout_value9.127 HBD
curator_payout_value2.841 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,394
author_reputation836,711,962,277
root_title"Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd0
post_id7,060,283
net_rshares1,645,972,384,516
author_curate_reward""
vote details (8)
@deathnote9 ·
안그래도 조만간 Node.js 사용해야 됬는데 감사합니다!
properties (22)
authordeathnote9
permlinkre-inspiredjw-node-js-nodeenv-20170703t004829361z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2017-07-03 00:48:33
last_update2017-07-03 00:48:33
depth1
children0
last_payout2017-07-10 00:48:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length32
author_reputation94,070,047,675
root_title"Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id7,081,554
net_rshares0
@jongeun ·
This post received a 93.31% upvote from @jongeun thanks to @jongeun! For more information, [click here](https://steemit.com/kr/@jongeun/randowhale-node-js)!
properties (22)
authorjongeun
permlinkre-inspiredjw-node-js-nodeenv-20170703t021029493z
categorykr
json_metadata""
created2017-07-03 02:10:36
last_update2017-07-03 02:10:36
depth1
children0
last_payout2017-07-10 02:10:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length156
author_reputation2,058,342,492,020
root_title"Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id7,087,172
net_rshares0