[Node.js][Nest.js] Configuration (μ„€μ •)

2022. 4. 9. 17:26ㆍBack-End μž‘μ—…μ‹€/Node.js

728x90
λ°˜μ‘ν˜•

 

 

 

 

Node.js κ΅κ³Όμ„œ:기본기에 μΆ©μ‹€ν•œ λ…Έλ“œμ œμ΄μ—μŠ€ 14 μž…λ¬Έμ„œ

COUPANG

www.coupang.com

"이 ν¬μŠ€νŒ…μ€ 쿠팑 νŒŒνŠΈλ„ˆμŠ€ ν™œλ™μ˜ μΌν™˜μœΌλ‘œ, 이에 λ”°λ₯Έ μΌμ •μ•‘μ˜ 수수료λ₯Ό μ œκ³΅λ°›μŠ΅λ‹ˆλ‹€."

 

 

 

πŸš€ Configuration (μ„€μ •)

    πŸ”½  κ°œμš”

Source Code μ•ˆμ—μ„œ μ–΄λ–€ λ‚΄μš©λ“€μ€ 개발 ν™˜κ²½μ΄λ‚˜, 운영 ν™˜κ²½μ— 따라 λ‹€λ₯΄κ²Œ λ„£μ–΄μ£Όμ–΄μ•Ό ν•˜λŠ” 값듀이 μžˆμ„ 수 μžˆλŠ” κ²ƒμ΄μ—μš”. 예λ₯Ό λ“€μ–΄ λ‚¨λ“€μ—κ²Œ λ…ΈμΆœλ˜μ§€ μ•Šμ•„μ•Ό ν•˜λŠ” Data Base Connection μ •λ³΄λ‚˜ JWT 정보듀인 κ²ƒμ΄μ—μš”.

`Spring Boot`μ—μ„œλŠ” 기본적으둜 `application.yml`μ΄λ‚˜, `application.properties`λ₯Ό μ΄μš©ν•΄μ„œ ν•΄λ‹Ή μž‘μ—…μ„ ν•΄ 쀄 수 μžˆλŠ”λ°, `Nest.js`μ—μ„œλ„ 이와 μœ μ‚¬ν•˜κ²Œ μž‘μ—…μ„ ν•΄ 쀄 수 μžˆλŠ” κΈ°λŠ₯이 μžˆλŠ” κ²ƒμ΄μ—μš”.

이 κΈ°λŠ₯은 `Run Time` 도쀑 λ°”λ€ŒλŠ” 것이 μ•„λ‹Œ Application이 μ‹œμž‘ν•  λ•Œ Load λ˜μ–΄ κ·Έ 값듀을 μ •μ˜ν•΄ μ£ΌλŠ” κ²ƒμ΄μ—μš”. 그리고, μ„€μ • File은 μ—¬λŸ¬κ°€μ§€ File ν˜•μ‹μ„ μ΄μš©ν•  수 μžˆλŠ”λ°, λŒ€ν‘œμ μœΌλ‘œ `XML`, `JSON`, `YAML(YML)`, `Enviroment Variables`와 같은 κ²ƒλ“€μ΄μ—μš”.

 

 

        πŸ“¦ Codebase와 Enviroment Variables(ν™˜κ²½ λ³€μˆ˜) 차이

μœ„μ—μ„œ μ–ΈκΈ‰ν•œ `XML`, `JSON`, `YAML(YML)`은 Codebase에 ν•΄λ‹Ήν•˜λŠ” κ²ƒμ΄μ—μš”.

그리고, λ‹€λ₯Έ 방법은 ν™˜κ²½ λ³€μˆ˜λ‘œ μ²˜λ¦¬ν•  수 μžˆλŠ” κ²ƒμ΄μ—μš”. 이 λ‘˜μ„ λ‚˜λˆ„μ–΄μ„œ μž‘μ—…ν•˜λŠ” μ΄μœ λŠ” λΉ„λ°€λ²ˆν˜Έ, API Key와 같이 λ‚¨λ“€μ—κ²Œ λ…ΈμΆœλ˜λ©΄ μ•ˆλ˜λŠ” 정보듀 λ•Œλ¬ΈμΈλ°, μ΄λŸ¬ν•œ μ •λ³΄λŠ” 주둜 ν™˜κ²½ λ³€μˆ˜λ‘œ μ²˜λ¦¬ν•˜λŠ” κ²ƒμ΄μ—μš”.

 

 

 

 

    πŸ”½  Module

ν•΄λ‹Ή κΈ°λŠ₯을 μ΄μš©ν•˜κΈ° μœ„ν•΄μ„œ λ¨Όμ € Window OSμ—μ„œλŠ” `win-node-env`λ₯Ό μ„€μΉ˜ν•΄μ•Ό ν•˜λŠ” κ²ƒμ΄μ—μš”.

κ·Έ μ΄μœ λŠ” Windowμ—μ„œλŠ” 기본적으둜 ν™˜κ²½ λ³€μˆ˜λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬ΈμΈ κ²ƒμ΄μ—μš”.

 

λͺ…λ Ήμ–΄

npm install -g win-node-env --save
λ°˜μ‘ν˜•

그리고, Linux(RHEL, Cent OS, Debian λ“±), Unix(Mac OS, Solaris λ“±), Window λͺ¨λ‘ `config`λΌλŠ” Module을 μ„€μΉ˜ν•΄μ€˜μ•Ό ν•˜λŠ” κ²ƒμ΄μ—μš”.

 

 

λͺ…λ Ήμ–΄

npm install config --save

 

 

 

 

 

    πŸ”½  μ„€μ • File 생성

졜초 Root Directory(Project Directory) 밑에 `config` Directoryλ₯Ό λ§Œλ“  λ’€ κ·Έ μ•ˆμ— `JSON`, `YAML` λ“± ν˜•μ‹μ— File을 생성해 μ£Όλ©΄ λ˜λŠ” κ²ƒμ΄μ—μš”.

그런 λ’€ `config` Directory μ•ˆμ— `default.yml`, `development.yml`, `production.yml`을 λ§Œλ“€μ–΄ Local, 개발, 운영 ν™˜κ²½μ— λ§žλŠ” μ„€μ • File듀을 각각 생성해 쀄 수 μžˆλŠ” κ²ƒμ΄μ—μš”. 

 

 

 

 

 

    πŸ”½  μ„€μ • File 이용 방법

μ–΄λŠ Class(File)μ—μ„œλ“  `config` Module을 `import`ν•˜λ©΄ μ΄μš©ν•  수 μžˆλŠ” κ²ƒμ΄μ—μš”.

 

μ˜ˆμ‹œ μ½”λ“œ

import * as config from 'config';

 

 

main.js - config 이용 μ˜ˆμ‹œ

 

 

typeorm.config.ts 이용 μ˜ˆμ‹œ

 

 

 

μ°Έκ³  자료 및 좜처 : μΈν”„λŸ° - λ”°λΌν•˜λ©° λ°°μš°λŠ” NestJS κ°•μ˜

 

 

 

 

 

 

Node.js κ΅κ³Όμ„œ:기본기에 μΆ©μ‹€ν•œ λ…Έλ“œμ œμ΄μ—μŠ€ 14 μž…λ¬Έμ„œ

COUPANG

www.coupang.com

"이 ν¬μŠ€νŒ…μ€ 쿠팑 νŒŒνŠΈλ„ˆμŠ€ ν™œλ™μ˜ μΌν™˜μœΌλ‘œ, 이에 λ”°λ₯Έ μΌμ •μ•‘μ˜ 수수료λ₯Ό μ œκ³΅λ°›μŠ΅λ‹ˆλ‹€."

 

 

728x90
λ°˜μ‘ν˜•