[typescript] Nest.js에서 타입스크립트 파이프 사용하기

Nest.js는 TypeScript로 개발할 수 있는 서버사이드 애플리케이션을 빌드하기 위한 프레임워크입니다. Nest.js는 기본적으로 나만의 파이프(pipes)를 만들어 사용할 수 있도록 지원합니다. 파이프는 요청 전후에 데이터 변환, 유효성 검사, 인증, 로깅 등을 할 수 있어 매우 강력한 기능입니다.

이번 포스트에서는 Nest.js에서 파이프를 어떻게 생성하고 사용하는지 알아보겠습니다.

Nest.js 파이프 만들기

우선, Nest.js 애플리케이션 내에서 파이프를 만들어보겠습니다.

  1. 먼저, 파이프를 생성하기 위해 pipes 디렉토리를 만듭니다.

  2. 그리고 아래와 같이 파이프 클래스를 생성합니다.

// pipes/validation.pipe.ts

import { PipeTransform, Injectable, ArgumentMetadata, BadRequestException } from '@nestjs/common';

@Injectable()
export class ValidationPipe implements PipeTransform {
  transform(value: any, metadata: ArgumentMetadata) {
    // 변환 로직 작성
    return value;
  }
}

Nest.js 파이프 사용하기

파이프를 만들었으면, 이를 컨트롤러나 프로바이더에 적용할 수 있습니다.

  1. 먼저 @UsePipes 데코레이터를 사용하여 파이프를 적용할 위치를 지정합니다.
import { Controller, Get, Post, Body, UsePipes } from '@nestjs/common';
import { ValidationPipe } from './pipes/validation.pipe';

@Controller('cats')
export class CatsController {
  @Post()
  @UsePipes(new ValidationPipe())
  create(@Body() createCatDto: any) {
    // 요청 데이터 변환 및 유효성 검사
  }
}

위 예제에서는 CatsControllercreate 메서드에 ValidationPipe를 사용하여 요청 데이터의 변환과 유효성 검사를 수행합니다.

Nest.js에서 파이프의 사용법에 대해 알아보았습니다. 파이프를 사용하면 요청 데이터의 유효성을 검사하거나, 데이터를 변환하는 등의 작업을 효과적으로 처리할 수 있습니다. 앞으로 Nest.js로 서버사이드 애플리케이션을 개발할 때, 파이프를 효과적으로 활용해보세요.

더 많은 정보는 Nest.js 공식 문서를 참고하시기 바랍니다.