Node.js / NestJS

Node.js / NestJS

BACKEND

Node.js ๋Ÿฐํƒ€์ž„๊ณผ NestJS TypeScript-first ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž…๋‹ˆ๋‹ค. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ, ์˜์กด์„ฑ ์ฃผ์ž…, ์™„์ „ํ•œ TypeScript ์ง€์›์„ ๊ฐ–์ถ˜ ๋ชจ๋“ˆ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜๋กœ ๋†’์€ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ฐ€์ง„ REST API, GraphQL, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐ์šธ ๋‚ด์šฉ

๋ชจ๋“ˆ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜์™€ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ (@Controller, @Injectable)๋ฅผ ๊ฐ–์ถ˜ NestJS ํ”„๋ ˆ์ž„์›Œํฌ

๊ณ ๊ธ‰ ํƒ€์ž…๊ณผ ์ž๋™ ์ถ”๋ก ์„ ๊ฐ–์ถ˜ ์—„๊ฒฉํ•œ TypeScript

IoC ์ปจํ…Œ์ด๋„ˆ์™€ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ–์ถ˜ ๋„ค์ดํ‹ฐ๋ธŒ ์˜์กด์„ฑ ์ฃผ์ž…

๋ช…ํ™•ํ•œ ์ฝ”๋“œ ๊ตฌ์„ฑ์„ ์œ„ํ•œ Controllers, Providers, Modules

์ธ์ฆ์„ ์œ„ํ•œ Guards, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ Pipes, ๋ณ€ํ™˜์„ ์œ„ํ•œ Interceptors

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๊ณผ ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ–์ถ˜ TypeORM ๋˜๋Š” Prisma ORM

์ธ์ฆ ์ „๋žต (JWT, OAuth2, local)์„ ์œ„ํ•œ ํ†ตํ•ฉ Passport.js

code-first ๋˜๋Š” schema-first ์ ‘๊ทผ ๋ฐฉ์‹์˜ GraphQL

์ „์†ก ๊ณ„์ธต (TCP, Redis, gRPC, MQTT)์„ ํ™œ์šฉํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค

ํฌ๊ด„์ ์ธ ํ…Œ์ŠคํŠธ (Jest, E2E, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, mocking, coverage)

๋งˆ์Šคํ„ฐํ•ด์•ผ ํ•  ํ•ต์‹ฌ ์ฃผ์ œ

์ด ๊ธฐ์ˆ ์„ ์ดํ•ดํ•˜๊ณ  ๋ฉด์ ‘์—์„œ ์„ฑ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฐœ๋…

1

Node.js: Event Loop, non-blocking I/O, async/await, streams, buffers

2

NestJS ์•„ํ‚คํ…์ฒ˜: modules, controllers, providers, decorators

3

์˜์กด์„ฑ ์ฃผ์ž…: providers, scopes (DEFAULT, REQUEST, TRANSIENT), custom providers

4

Controllers์™€ ๋ผ์šฐํŒ…: @Get, @Post, @Param, @Body, @Query, route params

5

Providers์™€ services: ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, repository pattern, service layer

6

Middleware, Guards, Interceptors, Pipes, ExceptionFilters (์š”์ฒญ ์ˆ˜๋ช… ์ฃผ๊ธฐ)

7

class-validator์™€ class-transformer๋ฅผ ํ™œ์šฉํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ (DTO ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ)

8

TypeORM: entities, relations (@OneToMany, @ManyToOne), repositories, QueryBuilder

9

Prisma: schema, migrations, client, relations, transactions

10

์ธ์ฆ: Passport.js, JWT strategy, guards, ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด

11

์„ค์ •: ConfigModule, ํ™˜๊ฒฝ ๋ณ€์ˆ˜, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

12

์˜ˆ์™ธ ์ฒ˜๋ฆฌ: HttpException, ์‚ฌ์šฉ์ž ์ •์˜ ์˜ˆ์™ธ, filters

13

ํ…Œ์ŠคํŠธ: Jest๋ฅผ ํ™œ์šฉํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, E2E ํ…Œ์ŠคํŠธ, mocking, test doubles

14

GraphQL: resolvers, schemas, mutations, subscriptions, DataLoader

15

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค: ํŒจํ„ด (request-response, event-based), transporters

16

์„ฑ๋Šฅ: ์บ์‹ฑ (Redis), ์••์ถ•, rate limiting, profiling

17

๋กœ๊น… (Winston, Pino), ๋ชจ๋‹ˆํ„ฐ๋ง, Docker, ๋ฐฐํฌ

์˜ค๋Š˜์˜ Node.js / NestJS ์ฑŒ๋ฆฐ์ง€

ํ•˜๋ฃจ ํ•œ ๊ฐœ์˜ ์ฝ”๋“œ. ๋ฒ„๊ทธ๋ฅผ ์ฐพ๊ฑฐ๋‚˜, ๋ฒ„๊ทธ๊ฐ€ ์—†์Œ์„ ์ฆ๋ช…ํ•˜์„ธ์š”.

์˜ค๋Š˜ ํ•˜๊ธฐ

์ตœ์‹  Node.js / NestJS ๊ธฐ์‚ฌ

Node.js / NestJS์— ๊ด€ํ•œ ์ตœ์‹  ๊ธฐ์‚ฌ์™€ ๊ฐ€์ด๋“œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”

NestJS and MongoDB integration diagram

2026๋…„ NestJS์™€ MongoDB ์™„๋ฒฝ ๊ฐ€์ด๋“œ: Mongoose, ์ง‘๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ, ๋ฉด์ ‘ ๋Œ€๋น„

NestJS 12์™€ Mongoose 9๋ฅผ ํ™œ์šฉํ•œ MongoDB ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์™„๋ฒฝ ๊ฐ€์ด๋“œ. ์Šคํ‚ค๋งˆ ์„ค๊ณ„, ์ง‘๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ, ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์ˆ  ๋ฉด์ ‘์—์„œ ์ž์ฃผ ๋‚˜์˜ค๋Š” ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์ƒ์„ธํžˆ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

NestJS WebSocket ์‹ค์‹œ๊ฐ„ ํ†ต์‹  ๊ฒŒ์ดํŠธ์›จ์ด

NestJS์™€ WebSocket 2026: ์‹ค์‹œ๊ฐ„ ํ†ต์‹ , Gateway ํŒจํ„ด, ๋ฉด์ ‘ ์งˆ๋ฌธ ๊ฐ€์ด๋“œ

NestJS์—์„œ WebSocket ๊ตฌํ˜„์„ ์™„๋ฒฝํ•˜๊ฒŒ ๋งˆ์Šคํ„ฐํ•ฉ๋‹ˆ๋‹ค. Gateway ํŒจํ„ด, Socket.IO ํ†ตํ•ฉ, ์ธ์ฆ, ์—๋Ÿฌ ํ•ธ๋“ค๋ง, 2026๋…„ ๊ธฐ์ˆ  ๋ฉด์ ‘ ๋นˆ์ถœ ์งˆ๋ฌธ๊นŒ์ง€ ์ƒ์„ธํžˆ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

2026๋…„ NestJS์™€ GraphQL ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ์Šคํ‚ค๋งˆ ์„ค๊ณ„, ๋ฆฌ์กธ๋ฒ„ ๊ตฌํ˜„, ๋ฉด์ ‘ ๋Œ€๋น„

2026๋…„ NestJS์™€ GraphQL ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ์Šคํ‚ค๋งˆ ์„ค๊ณ„, ๋ฆฌ์กธ๋ฒ„ ๊ตฌํ˜„, ๋ฉด์ ‘ ๋Œ€๋น„

NestJS 11์—์„œ GraphQL ํ†ตํ•ฉ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ฝ”๋“œ ํผ์ŠคํŠธ์™€ ์Šคํ‚ค๋งˆ ํผ์ŠคํŠธ ์„ค๊ณ„ ๋ฐฉ์‹, ๋ฆฌ์กธ๋ฒ„ ํŒจํ„ด, DataLoader๋ฅผ ํ™œ์šฉํ•œ N+1 ๋ฌธ์ œ ํ•ด๊ฒฐ, ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ ๊ตฌํ˜„์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  Node.js / NestJS ๊ธฐ์‚ฌ ๋ณด๊ธฐ