스크린샷 2023-11-30 오후 12.38.51.png

app.controller.ts

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();
  }
}

NestJS에서는 HTTP 요청을 처리하기 위해 컨트롤러를 사용 컨트롤러는 특정 URI 엔드포인트와 HTTP 요청 메서드를 처리하는 메서드를 정의

app.service.ts

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

@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}

NestJS에서는 서비스를 사용하여 컨트롤러에서 사용할 비즈니스 로직을 구현 서비스는 컨트롤러와 같은 클래스이며, Injectable 데코레이터를 사용하여 주입

app.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';

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

NestJS에서는 모듈을 사용하여 애플리케이션을 구성 모듈은 특정 기능 또는 비즈니스 로직을 담당하는 컴포넌트 집합

애플리케이션에 필요한 모든 컨트롤러, 서비스, 프로바이더 및 미들웨어 등을 모듈에 등록

프로바이더(Providers)

스크린샷 2023-11-30 오후 12.43.05.png

NestJS에서는 프로바이더를 사용하여 의존성 주입을 관리

프로바이더는 컨트롤러나 서비스에서 사용하는 객체, 함수 등을 제공