HooneyLog

Nest.js의 작동 원리와 핵심 구성 요소

프로필 이미지

Seunghoon Shin

2024년 12월 20일 12:17

Nest.js의 작동 원리와 핵심 구성 요소 (Service, Module, Controller)

Nest.js는 Node.js 기반의 서버 애플리케이션 프레임워크로, TypeScript와 의존성 주입을 활용하여 구조화된 코드 작성을 돕습니다. Angular를 차용했으며, 모듈화와 데코레이터 기반의 코드 작성을 강조합니다.


Nest.js의 작동 원리

Nest.js는 모듈화된 구조와 의존성 주입을 기반으로 동작합니다.

  • 모듈(Module):
  • 의존성 주입(DI):
  • 데코레이터 기반 설계:

  • Service, Module, Controller

    Nest.js는 Controller, Service, Module의 3가지 주요 구성 요소를 중심으로 동작합니다.

    1. Controller

  • 역할:
  • 코드 예제:

  • 2. Service

  • 역할:
  • 코드 예제:

  • 3. Module

  • 역할:
  • 코드 예제:

  • Nest.js 애플리케이션의 흐름

  • HTTP 요청 수신:
  • Controller에서 처리:
  • Service에서 비즈니스 로직 처리:
  • 응답 반환:

  • 전체 예제: 기본 애플리케이션 구조

    // app.controller.ts
    import { Controller, Get } from '@nestjs/common';
    import { AppService } from './app.service';
    
    @Controller('app')
    export class AppController {
      constructor(private readonly appService: AppService) {}
    
      @Get()
      getHello(): string {
        return this.appService.getHello();
      }
    }
    
    // app.service.ts
    import { Injectable } from '@nestjs/common';
    
    @Injectable()
    export class AppService {
      getHello(): string {
        return 'Hello, Nest.js!';
      }
    }
    
    // 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 {}
    

    요약

  • Controller: 클라이언트의 요청을 처리합니다.
  • Service: 비즈니스 로직을 수행합니다.
  • Module: Controller와 Service를 그룹화하고 의존성을 관리합니다.
  • 이 구조를 통해 Nest.js는 확장성과 유지보수가 뛰어난 애플리케이션 개발을 지원합니다.