Node.js / NestJS

๊ตฌ์„ฑ ๋ฐ ํ™˜๊ฒฝ ๊ด€๋ฆฌ

ConfigModule, ํ™˜๊ฒฝ ๋ณ€์ˆ˜, .env, ์‹œํฌ๋ฆฟ, ๋ฉ€ํ‹ฐ ํ™˜๊ฒฝ(dev/staging/prod), feature flags

20 ๋ฉด์ ‘ ์งˆ๋ฌธยท
Mid-Level
1

NestJS์˜ ConfigModule์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ต๋ณ€

ConfigModule์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ ๊ด€๋ฆฌ๋ฅผ ์ค‘์•™ํ™”ํ•˜๋Š” NestJS์˜ ๊ณต์‹ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. .env ํŒŒ์ผ์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋กœ๋“œํ•˜๊ณ , ์Šคํ‚ค๋งˆ๋กœ ๊ฒ€์ฆํ•˜๋ฉฐ, ConfigService๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์— ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. process.env์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ๊ฐ•๋ ฅํ•œ ํƒ€์ดํ•‘์„ ์ œ๊ณตํ•˜๊ณ  ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

2

NestJS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ConfigModule์„ ์–ด๋–ป๊ฒŒ ์ž„ํฌํŠธํ•ฉ๋‹ˆ๊นŒ?

๋‹ต๋ณ€

ConfigModule์€ ๋ฃจํŠธ ๋ชจ๋“ˆ(AppModule)์—์„œ ConfigModule.forRoot()๋กœ ์ž„ํฌํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์—์„œ .env ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ๋กœ๋“œํ•˜๊ณ  ConfigService๋ฅผ ์ „์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. envFilePath๋กœ ์‚ฌ์šฉ์ž ์ง€์ • ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ isGlobal๋กœ ๋ชจ๋“ˆ ์žฌ์ž„ํฌํŠธ๋ฅผ ํ”ผํ•˜๋Š” ๋“ฑ์˜ ์˜ต์…˜๋„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3

Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ .env ํŒŒ์ผ์˜ ์—ญํ• ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ต๋ณ€

.env ํŒŒ์ผ์€ ๊ฐ ํ™˜๊ฒฝ(๊ฐœ๋ฐœ, ์Šคํ…Œ์ด์ง•, ํ”„๋กœ๋•์…˜)์— ํŠนํ™”๋œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค URL, API ํ‚ค, ์‹œํฌ๋ฆฟ ๊ฐ™์€ ๊ฐ’์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋ฏผ๊ฐํ•œ ์ •๋ณด ๋…ธ์ถœ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ด ํŒŒ์ผ์€ ์ ˆ๋Œ€ Git์— ์ปค๋ฐ‹ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค(.gitignore์— ์ถ”๊ฐ€). dotenv ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์‹œ์ž‘ ์‹œ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

4

ConfigService๋กœ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ฉ๋‹ˆ๊นŒ?

5

NestJS๋Š” .env ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋Š” ๋ฐ ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

+17 ๋ฉด์ ‘ ์งˆ๋ฌธ

๊ธฐํƒ€ Node.js / NestJS ๋ฉด์ ‘ ์ฃผ์ œ

Node.js ๊ธฐ์ดˆ

Junior
20๊ฐœ ์งˆ๋ฌธ

Node.js ์ฝ”์–ด API

Junior
25๊ฐœ ์งˆ๋ฌธ

๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Junior
25๊ฐœ ์งˆ๋ฌธ

Express.js ๊ธฐ์ดˆ

Junior
20๊ฐœ ์งˆ๋ฌธ

NestJS ๊ธฐ์ดˆ

Junior
23๊ฐœ ์งˆ๋ฌธ

REST API ์„ค๊ณ„

Junior
20๊ฐœ ์งˆ๋ฌธ

๊ฒ€์ฆ๊ณผ DTO

Junior
20๊ฐœ ์งˆ๋ฌธ

API ๋ฌธ์„œํ™” ๋ฐ ๊ณ„์•ฝ

Junior
20๊ฐœ ์งˆ๋ฌธ

์—๋Ÿฌ ์ฒ˜๋ฆฌ

Junior
20๊ฐœ ์งˆ๋ฌธ

๋‹จ์œ„ ํ…Œ์ŠคํŠธ

Junior
20๊ฐœ ์งˆ๋ฌธ

์ž‘์—… ์Šค์ผ€์ค„๋ง

Junior
15๊ฐœ ์งˆ๋ฌธ

NestJS ๋ชจ๋“ˆ๊ณผ DI

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

JWT ์ธ์ฆ

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

์ธ๊ฐ€ ๋ฐ RBAC

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

TypeORM์„ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

Mid-Level
30๊ฐœ ์งˆ๋ฌธ

Prisma ORM

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

๋ฏธ๋“ค์›จ์–ด์™€ ์ธํ„ฐ์…‰ํ„ฐ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

ํŒŒ์ผ ์—…๋กœ๋“œ

Mid-Level
15๊ฐœ ์งˆ๋ฌธ

WebSockets

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

NestJS๋ฅผ ์‚ฌ์šฉํ•œ GraphQL

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

์—”๋“œํˆฌ์—”๋“œ ํ…Œ์ŠคํŠธ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

Redis๋ฅผ ์‚ฌ์šฉํ•œ ์บ์‹ฑ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

Bull์„ ์‚ฌ์šฉํ•œ ํ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

DevOps, Logging, CI/CD

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

Docker ๋ฐ ์ปจํ…Œ์ด๋„ˆํ™”

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค

Senior
30๊ฐœ ์งˆ๋ฌธ

๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€

Senior
25๊ฐœ ์งˆ๋ฌธ

์„ฑ๋Šฅ ๋ฐ ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ

Senior
30๊ฐœ ์งˆ๋ฌธ

๋‹ค์Œ ๋ฉด์ ‘์„ ์œ„ํ•ด Node.js / NestJS์„ ๋งˆ์Šคํ„ฐํ•˜์„ธ์š”

๋ชจ๋“  ์งˆ๋ฌธ, flashcards, ๊ธฐ์ˆ  ํ…Œ์ŠคํŠธ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์—ฐ์Šต, ๋ฉด์ ‘ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ์ ‘๊ทผํ•˜์„ธ์š”.

๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ