Configuration
Configuration
μμ© νλ‘κ·Έλ¨μ λ€λ₯Έ νκ²½μμ μ€νλλ λ° μ¬μ©λκ³€ ν©λλ€. νκ²½μ λ°λΌ λ€μν κ΅¬μ± λ³μ μΈνΈλ₯Ό μ¬μ©ν΄μΌ ν©λλ€. μλ₯Ό λ€μ΄, λ‘컬 νκ²½μ νΉμ λ°μ΄ν°λ² μ΄μ€ μ격 μ¦λͺ
μ μμ‘΄ν κ°λ₯μ±μ΄ λ§€μ° λμΌλ©° λ‘컬 DB μΈμ€ν΄μ€μλ§ μ ν¨ν©λλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ ν€-κ° μμ 보μ νλ.env
νμΌμ νμ©νμ΅λλ€. μ΄ λ°©λ²μ λ§€μ° νΈλ¦¬νλ―λ‘ κ° ν€λ νΉμ κ°μ λνλ
λλ€.
κ·Έλ¬λ νλ‘μΈμ€
μ μ κ°μ²΄λ₯Ό μ¬μ©νλ κ²½μ° ν
μ€νΈλ ν΄λμ€κ° μ§μ μ¬μ©ν μ μμΌλ―λ‘ ν
μ€νΈλ₯Ό κΉ¨λνκ² μ μ§νκΈ°κ° μ΄λ ΅μ΅λλ€. λ λ€λ₯Έ λ°©λ²μ λ‘λλ κ΅¬μ± λ³μλ‘ ConfigService
λ₯Ό λ
ΈμΆνλ μΆμν κ³μΈ΅ μΈ ConfigModule
μ μμ±νλ κ²μ
λλ€.
Installation
νΉμ νλ«νΌμ νκ²½ λ³μλ₯Όprocess.env
μ μμ μλμΌλ‘ μ°κ²°ν©λλ€. κ·Έλ¬λ λ‘컬 νκ²½μμλ μλμΌλ‘ κ΄λ¦¬ν΄μΌ ν©λλ€. νκ²½ νμΌμ ꡬ문 λΆμνκΈ° μν΄ dotenv ν¨ν€μ§λ₯Ό μ¬μ©ν©λλ€.
Service
λ¨Όμ ConfigService
ν΄λμ€λ₯Ό λ§λ€μ΄ λ΄
μλ€.
μ΄ ν΄λμ€λ.env
νμΌμ κ²½λ‘ μΈ filePath
λΌλ λ¨μΌ μΈμλ₯Ό μ·¨ν©λλ€. get()
λ©μλλ νκ²½ νμΌ λ΄μ μ μλ κ° μμ±μ 보μ νλ κ°μΈ envConfig
μ€λΈμ νΈμ μ‘μΈμ€ν μ μλλ‘ μ 곡λ©λλ€.
λ§μ§λ§ λ¨κ³λ ConfigModule
μ λ§λλ κ²μ
λλ€.
ConfigModule
μ ConfigService
λ₯Ό λ±λ‘νκ³ μ΄λ₯Ό λ΄ λ³΄λ
λλ€. λν .env
νμΌμ κ²½λ‘λ₯Ό μ λ¬νμ΅λλ€. μ΄ κ²½λ‘λ μ€μ μ€ν νκ²½μ λ°λΌ λ€λ¦
λλ€. μ΄μ μ΄λμλ ConfigService
λ₯Ό μ£Όμ
νκ³ μ λ¬λ ν€λ₯Ό κΈ°λ°μΌλ‘ νΉμ κ°μ κ°μ Έμ¬ μ μμ΅λλ€. μν .env
νμΌμ λ€μκ³Ό κ°μ΅λλ€.
Using the ConfigService
ConfigService
μμ νκ²½ λ³μμ μ‘μΈμ€νλ €λ©΄ λ³μλ₯Ό μ£Όμ
ν΄μΌν©λλ€. λ°λΌμ λ¨Όμ λͺ¨λμ κ°μ ΈμμΌν©λλ€.
κ·Έλ° λ€μ μ£Όμ
ν ν°μ μ¬μ©νμ¬ μ£Όμ
ν μ μμ΅λλ€. κΈ°λ³Έμ μΌλ‘ ν ν°μ ν΄λμ€ μ΄λ¦κ³Ό κ°μ΅λλ€ (μ: ConfigService
).
info ννΈ λͺ¨λ λͺ¨λμμ
ConfigModule
μ κ°μ Έ μ€λ λμConfigModule
μ μ μ λͺ¨λλ‘ μ μΈν μλ μμ΅λλ€.
Advanced configuration
λ°©κΈ κΈ°λ³Έ ConfigService
λ₯Ό ꡬννμ΅λλ€. κ·Έλ¬λ μ΄ μ κ·Ό λ°©μμλ λͺ κ°μ§ λ¨μ μ΄ μμ΅λλ€.
νκ²½ λ³μμ λν μ΄λ¦ λ° μ ν λλ½ (IntelliSense μμ)
μ 곡λ
.env
νμΌμ νμΈ λΆμ‘±env νμΌμ λΆμΈμ λ¬Έμμ΄ (
'true'
)λ‘ μ 곡νλ―λ‘ λ§€λ² λΆμΈλ‘ μΊμ€νΈν΄μΌν©λλ€.
Validation
μ 곡λ νκ²½ λ³μμ μ ν¨μ± κ²μ¦λΆν° μμνκ² μ΅λλ€. νμν νκ²½ λ³μκ° μ 곡λμ§ μμκ±°λ μ¬μ μ μλ μꡬ μ¬νμ μΆ©μ‘±νμ§ μμΌλ©΄ μ€λ₯κ° λ°μν μ μμ΅λλ€. μ΄λ₯Ό μν΄ npm ν¨ν€μ§ Joiλ₯Ό μ¬μ©ν©λλ€. Joiλ₯Ό μ¬μ©νλ©΄ κ°μ²΄ μ€ν€λ§λ₯Ό μ μνκ³ μ΄μ λν΄ JavaScript κ°μ²΄μ μ ν¨μ±μ κ²μ¬ν©λλ€.
Joi μ€μΉ λ° μ ν (TypeScript μ¬μ©μμ κ²½μ°) :
ν¨ν€μ§κ° μ€μΉλλ©΄ ConfigService
λ‘ μ΄λν μ μμ΅λλ€.
NODE_ENV
μ PORT
μ κΈ°λ³Έκ°μ μ€μ νμΌλ―λ‘ νκ²½ νμΌμ μ΄λ¬ν λ³μλ₯Ό μ 곡νμ§ μμΌλ©΄ μ ν¨μ± κ²μ¬κ° μ€ν¨νμ§ μμ΅λλ€. κ·ΈλΌμλ λΆκ΅¬νκ³ λͺ
μμ μΌλ‘ API_AUTH_ENABLED
λ₯Ό μ 곡ν΄μΌ ν©λλ€. μ€ν€λ§μ μΌλΆκ° μλ .env νμΌμ λ³μκ° μλ κ²½μ° μ ν¨μ± κ²μ¬μμλ μ€λ₯κ° λ°μν©λλ€. λν Joiλ env λ¬Έμμ΄μ μ¬λ°λ₯Έ μ νμΌλ‘ λ³ννλ €κ³ μλν©λλ€.
Class properties
κ° κ΅¬μ± μμ±λ§λ€ getter ν¨μλ₯Ό μΆκ°ν΄μΌν©λλ€.
Usage example
μ΄μ ν΄λμ€ μμ±μ μ§μ μ‘μΈμ€ ν μ μμ΅λλ€.
Last updated
Was this helpful?