...

ํ๊ฒฝ ๋ณ์๋?
์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์ฝ๋ ๋ฒ ์ด์ค๋ ํ๋๋ง ๊ด๋ฆฌํ๊ณ , ๊ฐ๋ฐ, ํ ์คํธ, ์ด์ ๋ฑ ์ฌ๋ฌ ํ๊ฒฝ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋๋ฐ์. ์ด๋ ํ๊ฒฝ์ ๋ฐฐํฌํ๋๋์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ฒ ์ค์ ํด์ผํ๋ ํญ๋ชฉ์ ๋ณดํต ์ด์ ์ฒด์ ๋ ๋ฒจ์์ ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ๊ด๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
๋ํ์ ์ธ ์๋ก, ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ๋ก์ปฌ DB๋ฅผ ์ฌ์ฉํด์ผํ๋๋ฐ, ์ด์ ํ๊ฒฝ์์๋ ์๊ฒฉ DB๋ฅผ ์ฌ์ฉํด์ผํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ์ ์์ต๋๋ค.
๋ฟ๋ง ์๋๋ผ DB password๋ API key์ ๊ฐ์ ์ธ์ฆ ์ ๋ณด๋ ๊ณต๊ฐ๋ ์ฝ๋ ์ ์ฅ์์ ์ฌ๋ฆฌ๋ฉด ์ ๋๊ธฐ ๋๋ฌธ์ ํ๊ฒฝ ๋ณ์๋ก ์ ์ฅํด๋๊ณ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค.
ํ๊ฒฝ ๋ณ์ ์ ๊ทผ
Node.js์์ ํ๊ฒฝ ๋ณ์์ ์ ๊ทผํ ๋๋ process.env๋ผ๋ ๋ด์ฅ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
process๋ ์ ์ญ ๊ฐ์ฒด์ฌ์ ๋ณ๋๋ก ์ํฌํธํด์ผํ๋ ๋ชจ๋์ด ์์ผ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋์์๋ ์ง ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ๋ผ์, Node.js ์ธํฐํ๋ฆฌํฐ๋ฅผ ์คํํ์ ์ ์ฌ์ฉํ์๋ ์ด์ ์ฒด์ ์ ์ด๋ค ํ๊ฒฝ ๋ณ์๋ค์ด ์ค์ ๋์ด ์๋์ง ๋ฐ๋ก ํ์ธํด๋ณผ ์ ์์ต๋๋ค.
> process.env.USER
'dale'
> process.env.HOME
'/Users/dale'
> process.env.LANG
'en_US.UTF-8'
> process.env.API_KEY
undefined
ํ๊ฒฝ ๋ณ์ ์ค์
์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ๋ 1ํ์ฑ์ผ๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๊ณ ์ถ๋ค๋ฉด node ๋ช ๋ น์ด ์์ ํ๊ฒฝ ๋ณ์๋ฅผ ํค=๊ฐ ํํ๋ก ๋ช ์๋ฅผ ํด์ค๋๋ค.
$ API_KEY=abc DB_PASSWORD=1234 node
Welcome to Node.js v14.15.0.
Type ".help" for more information.
> process.env.API_KEY
'abc'
> process.env.DB_PASSWORD
'1234'
์ด๋ ๊ฒ Node.js ํ๋ก์ธ์ค ๋ ๋ฒจ์์ ์ค์ ํด์ค ํ๊ฒฝ ๋ณ์๋ ํด๋น ํ๋ก์ธ์ค๊ฐ ์ด์์๋ ๋์์๋ง ์ ํจํ๋ฉฐ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ฉด ์ฌ๋ผ์ง๋๋ค.
์ด์ ์ฒด์ ์์ ์ง์ํ๋ ์ปค๋งจ๋๋ฅผ ์ด์ฉํ๋ฉด ์ค์ ํ ํ๊ฒฝ ๋ณ์๋ฅผ ํฐ๋ฏธ๋ ์ฐฝ์ ๋ซ์ ๋๊น์ง ์ ์งํ ์ ์์ต๋๋ค.
Node.js๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ ์,
- ๋ฆฌ๋ ์ค๋ Mac OS์์๋ export ํค=๊ฐ,
- Windows์์๋ SET ํค=๊ฐ
๋ฅผ ์ด์ฉํด์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
$ set API_KEY=abc
$ set DB_PASSWORD=1234
$ node
Welcome to Node.js v14.15.0.
Type ".help" for more information.
> process.env.API_KEY
'abc'
> process.env.DB_PASSWORD
'1234'
์ด๋ ๊ฒ ํฐ๋ฏธ๋ ์ธ์ ๋ ๋ฒจ์์ ์ค์ ํ ํ๊ฒฝ ๋ณ์๋ Node.js ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๊ณ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์คํํ๋๋ผ๋ ๋์ผํ ํ๊ฒฝ ๋ณ์ ๊ฐ์ ์ป์ ์ ์์ต๋๋ค.
process.env๋ ๊ฐ๋ณ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋จ ๋ด์์ ์ผ๋ง๋ ์ง ์๋ก์ด ํญ๋ชฉ์ ์ค์ ํ๊ฑฐ๋ ๊ธฐ์กด์ ์ค์ ๋ ๊ฐ์ ์์ ๋กญ๊ฒ ๊ฐฑ์ ๋๋ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
$ node
Welcome to Node.js v14.15.0.
Type ".help" for more information.
> process.env.API_KEY = "abc"
'abc'
> process.env.API_KEY
'abc'
> process.env.API_KEY = "def"
'def'
> process.env.API_KEY
'def'
> delete process.env.API_KEY
true
> process.env.API_KEY
undefined
์ฌ์ค ์ด๋ ๊ฒ ๋งค๋ด์ผํ ๋ฐฉ๋ฒ์ผ๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋ฐฐํฌํด์ผํ ์๋ฒ๋ ํ๊ฒฝ์ ๊ฐ์๊ฐ ๋์ด๋๋ฉด ๊ด๋ฆฌ๊ฐ ์๋นํ ์ด๋ ค์์ง๋๋ค.
๊ทธ๋์ ์ค์ Node.js ํ๋ก์ ํธ์์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ข ๋ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด์ dotenv๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์ด ์ฌ์ฉ๋๋๋ฐ์.
๋ค์ ๊ฐ์ข๋ฅผ ์ฐธ๊ณ ํ์ค ์ ์์ต๋๋ค.
[EXPRESS] ๐ dotenv ๋ฏธ๋ค์จ์ด
์ ํํ์ต https://inpa.tistory.com/370 dotenv dotenv๋ ํ๊ฒฝ๋ณ์๋ฅผ .envํ์ผ์ ์ ์ฅํ๊ณ process.env๋ก ๋ก๋ํ๋ ์์กด์ฑ ๋ชจ๋์ด๋ค. dotenv๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐ์ ํ๋ ๊ณผ์ ์์ ์๋ฒ์ฃผ์, ๊ณ ์ AP..
inpa.tistory.com
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.