NestJS_๊ฐœ๋…

Maryยท2025๋…„ 1์›” 26์ผ

Node.js

๋ชฉ๋ก ๋ณด๊ธฐ
2/5
post-thumbnail

โœ… NestJS๋ž€?

๐Ÿ’ก NestJS๋Š” Node.js ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” ๋ฐฑ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ
๐Ÿ’ก
Express.js ๋˜๋Š” Fastify ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์กฐ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€.
๐Ÿ’ก
TypeScript๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋ฉฐ, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP), ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ(FP), ๊ทธ๋ฆฌ๊ณ  MVC ํŒจํ„ด์„ ๊ฒฐํ•ฉํ•œ ๊ฐ•๋ ฅํ•œ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณต.


๐Ÿ“ข1๏ธโƒฃ NestJS์˜ ํ•ต์‹ฌ ๊ฐœ๋…

ํŠน์ง•์„ค๋ช…
Node.js ๊ธฐ๋ฐ˜NestJS๋Š” Node.js์—์„œ ๋™์ž‘ํ•˜๋Š” ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ
Express.js ๋˜๋Š” Fastify ์‚ฌ์šฉ ๊ฐ€๋Šฅ๊ธฐ๋ณธ์ ์œผ๋กœ Express.js๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, Fastify๋„ ์ง€์›
TypeScript ๊ธฐ๋ณธ ์ง€์›์•ˆ์ •์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฐ€๋Šฅ (JavaScript๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
๋ชจ๋“ˆ(Module) ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ์ฝ”๋“œ๊ฐ€ ๊ธฐ๋Šฅ๋ณ„๋กœ ์ž˜ ๋ถ„๋ฆฌ๋˜์–ด ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฌ์›€
๋ฐ์ฝ”๋ ˆ์ดํ„ฐ(Decorator) ํŒจํ„ด ์‚ฌ์šฉ@Controller(), @Injectable() ๋“ฑ์˜ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์‚ฌ์šฉ
DI(์˜์กด์„ฑ ์ฃผ์ž…, Dependency Injection)๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
REST API & GraphQL ์ง€์›REST API, GraphQL, WebSocket ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ํ†ต์‹  ๋ฐฉ์‹ ์ง€์›

๐Ÿ“Œ ์ฆ‰, NestJS๋Š” "๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ Node.js ํ”„๋ ˆ์ž„์›Œํฌ"์•ผ! ๐Ÿš€


๐Ÿ“ข 2๏ธโƒฃ NestJS๊ฐ€ ์™œ ํ•„์š”ํ•œ๊ฐ€?

โœ… Express.js๋ณด๋‹ค ๋” ๊ตฌ์กฐ์ ์ธ ๊ฐœ๋ฐœ ๋ฐฉ์‹ ์ œ๊ณต
โœ… ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›€
โœ… TypeScript ๊ธฐ๋ณธ ์ง€์›์œผ๋กœ ์•ˆ์ •์ ์ธ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
โœ… ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ๋ณ„๋กœ ์ฝ”๋“œ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ
โœ… ๋ฐฑ์—”๋“œ API ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ๋‚ด์žฅ (์˜ˆ: ์ธ์ฆ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ ๋“ฑ)

๐Ÿ“Œ ์ฆ‰, Express.js์ฒ˜๋Ÿผ ์ž์œ ๋กญ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋” ์ฒด๊ณ„์ ์ธ ๊ตฌ์กฐ์™€ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต!


๐Ÿ”ฅ 3๏ธโƒฃ NestJS ๊ธฐ๋ณธ ์˜ˆ์ œ (Hello World API)

โœ… (1) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

npx @nestjs/cli new my-nest-app
cd my-nest-app
npm run start

๐Ÿ“Œ ์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ๋ณธ NestJS ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋จ.
๐Ÿ“Œ http://localhost:3000 ์—์„œ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋จ.


โœ… (2) NestJS ๊ธฐ๋ณธ ์ฝ”๋“œ

๐Ÿ“Œ NestJS์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” app.controller.ts (์ปจํŠธ๋กค๋Ÿฌ ํŒŒ์ผ)

import { Controller, Get } from "@nestjs/common";

@Controller()
export class AppController {
  @Get()
  getHello(): string {
    return "Hello, NestJS!";
  }
}

๐Ÿ“Œ ์„ค๋ช…:
โœ… @Controller() โ†’ ์ด ํด๋ž˜์Šค๊ฐ€ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ์ž„์„ ์˜๋ฏธ
โœ… @Get() โ†’ HTTP GET ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ
โœ… getHello() โ†’ http://localhost:3000/์— ์ ‘์†ํ•˜๋ฉด "Hello, NestJS!"๊ฐ€ ๋ฐ˜ํ™˜๋จ


โœ… (3) ๋ชจ๋“ˆ ์‹œ์Šคํ…œ (app.module.ts)

import { Module } from "@nestjs/common";
import { AppController } from "./app.controller";

@Module({
  controllers: [AppController],
})
export class AppModule {}

๐Ÿ“Œ ์„ค๋ช…:
โœ… @Module() โ†’ NestJS๋Š” ๋ชจ๋“ˆ ๋‹จ์œ„๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ์—ฌ๊ธฐ์—์„œ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•จ.
โœ… controllers: [AppController] โ†’ AppController๋ฅผ ์ด ๋ชจ๋“ˆ์— ํฌํ•จ


๐Ÿ”ฅ 4๏ธโƒฃ NestJS์˜ ์ฃผ์š” ๊ฐœ๋…

๊ฐœ๋…์„ค๋ช…
์ปจํŠธ๋กค๋Ÿฌ(Controller)ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” API ์—”๋“œํฌ์ธํŠธ
์„œ๋น„์Šค(Service)๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•˜๋Š” ๊ณ„์ธต
๋ชจ๋“ˆ(Module)๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ๋ฌถ์–ด ์ฝ”๋“œ ๋ถ„๋ฆฌ ๋ฐ ๊ด€๋ฆฌ
์˜์กด์„ฑ ์ฃผ์ž…(DI, Dependency Injection)๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด์„ฑ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ
๋ฐ์ฝ”๋ ˆ์ดํ„ฐ(Decorator)@Controller(), @Get(), @Injectable() ๋“ฑ์„ ์‚ฌ์šฉํ•ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
๋ฏธ๋“ค์›จ์–ด(Middleware)์š”์ฒญ์„ ๊ฐ€๋กœ์ฑ„์„œ ๋กœ์ง์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ
๊ฐ€๋“œ(Guard)์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๊ธฐ๋Šฅ

๐Ÿ“Œ ์ฆ‰, NestJS๋Š” ์ผ๋ฐ˜์ ์ธ Express.js๋ณด๋‹ค ๋” ์ฒด๊ณ„์ ์œผ๋กœ API ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ!


๐Ÿ”ฅ 5๏ธโƒฃ NestJS vs Express.js ๋น„๊ต

๋น„๊ต ํ•ญ๋ชฉNestJSExpress.js
ํ”„๋ ˆ์ž„์›Œํฌ ํƒ€์ž…๊ตฌ์กฐํ™”๋œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฏธ๋‹ˆ๋ฉ€ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ
์–ธ์–ด ์ง€์›TypeScript (๊ธฐ๋ณธ) + JavaScriptJavaScript (TypeScript๋„ ๊ฐ€๋Šฅ)
์•„ํ‚คํ…์ฒ˜๋ชจ๋“ˆ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์ž์œ ๋กœ์šด ์ฝ”๋“œ ๊ตฌ์กฐ
์˜์กด์„ฑ ์ฃผ์ž…(DI)๋‚ด์žฅ๋˜์–ด ์žˆ์Œ์ง์ ‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ
๋ฐ์ฝ”๋ ˆ์ดํ„ฐ(Decorator)@Controller(), @Get() ๋“ฑ ์‚ฌ์šฉ์—†์Œ
์œ ์ง€๋ณด์ˆ˜์„ฑ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉ
์„ฑ๋ŠฅExpress.js ๊ธฐ๋ฐ˜ (๋น„์Šทํ•œ ์„ฑ๋Šฅ)๊ฐ€๋ฒผ์šด ๊ตฌ์กฐ๋กœ ๋น ๋ฆ„

๐Ÿ“Œ NestJS๋Š” Express.js๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉด์„œ, ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋” ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์กฐํ™”๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ.


๐Ÿ”ฅ 6๏ธโƒฃ ๊ฒฐ๋ก : NestJS๋ฅผ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?

โœ… ๋Œ€๊ทœ๋ชจ ๋ฐฑ์—”๋“œ API๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ
โœ… TypeScript ๊ธฐ๋ฐ˜์˜ ์•ˆ์ •์ ์ธ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ด ํ•„์š”ํ•  ๋•Œ
โœ… Express.js๋ณด๋‹ค ๋” ์ฒด๊ณ„์ ์ธ ๊ตฌ์กฐ๋ฅผ ์›ํ•  ๋•Œ
โœ… ์˜์กด์„ฑ ์ฃผ์ž…(DI) ๋ฐ ๋ชจ๋“ˆ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์ด ํ•„์š”ํ•  ๋•Œ

๐Ÿ“Œ ์ฆ‰, NestJS๋Š” Node.js์—์„œ ๋” ์•ˆ์ •์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ!


โœ… Node.js์™€ NestJS๋Š” ๋ณ„๊ฐœ์ธ๊ฐ€?

๐Ÿ’ก NestJS๋Š” Node.js ๊ธฐ๋ฐ˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ์ด์ง€๋งŒ, Node.js์™€๋Š” ๋ณ„๊ฐœ
๐Ÿ’ก ์ฆ‰, NestJS๋Š” Node.js ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ


๐Ÿ”ฅ 1๏ธโƒฃ Node.js vs NestJS ์ฐจ์ด์ 

ํ•ญ๋ชฉNode.jsNestJS
์ •์˜JavaScript ๋Ÿฐํƒ€์ž„ (์„œ๋ฒ„์—์„œ JavaScript ์‹คํ–‰)Node.js ๊ธฐ๋ฐ˜ ๋ฐฑ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ
์—ญํ• JavaScript๋กœ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์คŒNode.js์—์„œ ๊ตฌ์กฐํ™”๋œ API ์„œ๋ฒ„ ๊ฐœ๋ฐœ ์ง€์›
์–ธ์–ดJavaScript (ES6+), TypeScript ๊ฐ€๋ŠฅTypeScript ๊ธฐ๋ฐ˜ (JavaScript๋„ ์ง€์›)
ํ”„๋ ˆ์ž„์›Œํฌ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌExpress.js, Koa, Fastify ๋“ฑ ์‚ฌ์šฉ ๊ฐ€๋ŠฅExpress.js ๋˜๋Š” Fastify๋ฅผ ๋‚ด์žฅ
๋น„๊ต ๋Œ€์ƒ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ (์„œ๋ฒ„ ์—ญํ•  ๊ฐ€๋Šฅ)๋ฐฑ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ (๊ตฌ์ฒด์ ์ธ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ์ง€์›)
์‚ฌ์šฉ ๋ชฉ์ ์„œ๋ฒ„ ํ™˜๊ฒฝ ๊ตฌ์ถ•, CLI ๋„๊ตฌ ์‹คํ–‰, ํŒŒ์ผ ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋“ฑ๊ตฌ์กฐํ™”๋œ API ๊ฐœ๋ฐœ, ๋Œ€๊ทœ๋ชจ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ

โœ… ์ฆ‰, Node.js๋Š” JavaScript๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋Ÿฐํƒ€์ž„์ด๊ณ , NestJS๋Š” Node.js์—์„œ ์„œ๋ฒ„๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ.


๐Ÿ”ฅ 2๏ธโƒฃ Node.js์™€ NestJS ๊ด€๊ณ„

๐Ÿ’ก NestJS๋Š” Node.js ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ
๐Ÿ’ก ์ฆ‰, Node.js๊ฐ€ ์—†์œผ๋ฉด NestJS๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Œ!
๐Ÿ’ก NestJS๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ Express.js ๋˜๋Š” Fastify ๊ฐ™์€ ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋™์ž‘

๐Ÿ“Œ NestJS์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ

Node.js โ†’ NestJS โ†’ Express.js (or Fastify) โ†’ API ๋ผ์šฐํŠธ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง

๐Ÿ”ฅ 3๏ธโƒฃ NestJS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

โœ… ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•œ ๊ตฌ์กฐ ์ œ๊ณต (์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ์ ์šฉ)
โœ… TypeScript ๊ธฐ๋ณธ ์ง€์› (์•ˆ์ •์ ์ธ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฐ€๋Šฅ)
โœ… ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์œผ๋กœ ์ฝ”๋“œ ๋ถ„๋ฆฌ ๋ฐ ๊ด€๋ฆฌ ์šฉ์ด
โœ… Express.js ๋˜๋Š” Fastify ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
โœ… REST API & GraphQL ๊ฐœ๋ฐœ ์ง€์›
โœ… Middleware, Guards, Interceptors ๋“ฑ ํ™•์žฅ ๊ธฐ๋Šฅ ์ œ๊ณต

๐Ÿ“Œ ์ฆ‰, NestJS๋Š” "Node.js์—์„œ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ" ๐Ÿš€


๐Ÿ”ฅ 4๏ธโƒฃ Node.js์™€ NestJS ์˜ˆ์ œ ๋น„๊ต

โœ… (1) Node.js + Express.js๋กœ API ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

const express = require("express");
const app = express();

app.get("/", (req, res) => {
  res.send("Hello, Node.js!");
});

app.listen(3000, () => {
  console.log("์„œ๋ฒ„๊ฐ€ http://localhost:3000 ์—์„œ ์‹คํ–‰ ์ค‘!");
});

๐Ÿ“Œ ํŠน์ง•:
โœ… Node.js์˜ ๊ธฐ๋ณธ์ ์ธ ์›น ์„œ๋ฒ„
โœ… Express.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ๋ผ์šฐํŒ… ์ œ๊ณต
โœ… ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๊ฐ€ ๋น„๊ต์  ๋‹จ์ˆœ


โœ… (2) NestJS๋กœ API ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

import { Controller, Get } from "@nestjs/common";
import { NestFactory } from "@nestjs/core";
import { Module } from "@nestjs/common";

@Controller()
class AppController {
  @Get()
  getHello() {
    return "Hello, NestJS!";
  }
}

@Module({
  controllers: [AppController],
})
class AppModule {}

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

๐Ÿ“Œ ํŠน์ง•:
โœ… NestJS์˜ Controller, Module, Decorator ํŒจํ„ด ์‚ฌ์šฉ
โœ… TypeScript ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ๊ตฌ์กฐ
โœ… Express.js๋ณด๋‹ค ๋” ๊ตฌ์กฐํ™”๋œ ํ”„๋กœ์ ํŠธ ๋ฐฉ์‹


๐Ÿ”ฅ 5๏ธโƒฃ ๊ฒฐ๋ก : Node.js์™€ NestJS๋Š” ๋ณ„๊ฐœ์ง€๋งŒ, NestJS๋Š” Node.js ๊ธฐ๋ฐ˜

โœ” Node.js๋Š” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ โ†’ JavaScript๋กœ ์„œ๋ฒ„ ์‹คํ–‰ ๊ฐ€๋Šฅ
โœ” NestJS๋Š” ํ”„๋ ˆ์ž„์›Œํฌ โ†’ Node.js์—์„œ ๋” ๊ตฌ์กฐ์ ์ธ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์ง€์›
โœ” NestJS๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ Node.js์™€ Express.js๋ฅผ ์‚ฌ์šฉํ•จ
โœ” Node.js ์—†์ด NestJS๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Œ

โœ… ์ฆ‰, Node.js๋Š” ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ์ด๊ณ , NestJS๋Š” ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ๋” ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ

0๊ฐœ์˜ ๋Œ“๊ธ€