๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿšถ๐Ÿป์–ด๋””๋กœ ๊ฑท๊ณ ์žˆ๋‹ˆ?

๐Ÿšถ๐Ÿป#19 [Nest.js] - ์„ค์น˜๋ถ€ํ„ฐ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ

Nest.js

  • Node.js ๋กœ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ• ๋•Œ, ์กฐ๊ธˆ ๋” ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ
  • ๊ธฐ๋ณธ์ ์œผ๋กœ TypeScript ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋•Œ๋ฌธ์—, TypeScript ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค

Nest.js ์„ค์น˜ํ•˜๊ธฐ

/* ์„ค์น˜ */
npm install -g @nestjs/cli

/* nest project ์ƒ์„ฑ */
nest new project-name

Nest.js ๊ตฌ์กฐ

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์งํ›„
src ๋‚ด๋ถ€

  • Nest.js ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ main.ts ํŒŒ์ผ์„ ์ฝ๋Š”๋‹ค
  • src ํด๋”๋กœ ์ฐพ์•„์˜ค๋Š” ์ด์œ ๋Š” nest-cil.json ํŒŒ์ผ์„ ์—ด์–ด๋ณด๋ฉด ์•Œ์ˆ˜์žˆ๋‹ค
  • main.ts > app.module.ts > app.modules.ts ํŒŒ์ผ์— ์„ ์–ธ๋œ controller ์™€ service ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ

Nest.js Controller

import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}
  • @ ์€ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ๋ผ๊ณ  ํ•˜๋ฉฐ, @Post @Delete @Injectable ๋“ฑ๋“ฑ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค ( import ํ•ด์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ )
  • @Get ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์•ˆ์— url ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๊ณ , ๊ทธ ๊ฒฝ๋กœ์— ๋“ค์–ด์™”์„๋•Œ ์‹คํ–‰ ์‹œํ‚ฌ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ๋‹ค ( ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ์™€ ํ•ด๋‹น ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๊ฐ€ ์‹คํ–‰์‹œํ‚ฌ ํ•จ์ˆ˜๋Š” ์ ˆ๋Œ€ ๋–จ์–ด์ ธ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค. ๋ฐ”๋กœ ์•„๋ž˜ ๋ผ์ธ์— ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค )
  • ์œ„ Controller ๋ฅผ ํ•ด์„ํ•ด๋ณด๋ฉด ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋กœ ์š”์ฒญ์ด ๋“ค์–ด์™”์„๋•Œ, getHello ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œ์ผœ ์ฃผ๊ณ  getHello ํ•จ์ˆ˜๋Š” Service ์— ์„ ์–ธ๋˜์–ด์žˆ๋‹ค
  • ์ฆ‰ Controller ์—๋Š” ๊ฒฝ๋กœ์™€ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์„ ์–ธ๋งŒ ํ•ด๋†“๊ณ , ํ•จ์ˆ˜์˜ ๋กœ์ง์€ Service ์—์„œ ์ž‘์„ฑํ•œ๋‹ค

Nest.js Service

import { Injectable } from '@nestjs/common';

@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}
  • export ๋˜์–ด์žˆ๋Š” AppService Class ๋ฅผ Controller ์—์„œ import ํ•˜๊ณ ์žˆ์œผ๋ฏ€๋กœ getHello ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค
  • getHello ํ•จ์ˆ˜๋Š” string Type ์„ return ํ•˜๊ฒŒ ๋˜์–ด์žˆ๊ณ , 'Hello World!' ๋ฅผ return ํ•˜๊ณ  ์žˆ๊ธฐ๋•Œ๋ฌธ์— Nest.js ์„œ๋ฒ„๋ฅผ ์ฒ˜์Œ ๋งŒ๋“ค๊ณ  ์‹คํ–‰์‹œํ‚ค๋ฉด Hello World! ๋ฅผ ํ™•์ธํ• ์ˆ˜ ์žˆ๋‹ค