ValidationPipe nestJS

agnusdei·2023년 11월 19일
0

이 코드는 NestJS 프레임워크에서 사용되는 파이프 중 하나인 ValidationPipe를 전역으로 사용하도록 설정하는 부분입니다. NestJS는 TypeScript 기반의 서버 사이드 프레임워크로, 코드의 모듈화와 의존성 주입을 강조하며, 클래스 기반의 구조를 채택하고 있습니다.

여기서 ValidationPipe는 요청이나 응답을 처리하기 전에 데이터 유효성을 검사하는 역할을 합니다. 이 파이프를 전역으로 설정하면 애플리케이션의 모든 요청에 대해 데이터 유효성 검사가 자동으로 수행됩니다.

설정 옵션은 다음과 같습니다:

  • transform: true: 유효성 검사 후에 변환을 허용합니다. 즉, 파이프는 유효성 검사 이후에 데이터를 변환할 수 있습니다.

  • whitelist: true: 유효성 검사된 객체에서 지정되지 않은 속성들을 필터링하여 제거합니다. 이렇게 하면 유효성 검사된 속성만 남게 됩니다.

  • transformOptions: { enableImplicitConversion: true }: 암시적 변환을 허용합니다. 이 옵션이 활성화되면 자동으로 형 변환이 이루어집니다.

예를 들어, 다음과 같은 DTO(Data Transfer Object) 클래스가 있다고 가정해 봅시다:

class CreateUserDto {
    @IsString()
    @IsNotEmpty()
    username: string;

    @IsEmail()
    email: string;

    @IsInt()
    @IsNotEmpty()
    age: number;
}

위에서 정의한 CreateUserDto 클래스를 사용하는 컨트롤러의 메서드에 요청이 들어오면, ValidationPipe는 이 DTO 클래스에 정의된 유효성 검사 데코레이터를 기반으로 요청 데이터를 자동으로 검사합니다. 설정된 옵션에 따라 변환과 필터링이 이루어집니다. 이를 통해 애플리케이션에서 유효하지 않은 데이터로 인한 에러를 사전에 방지할 수 있습니다.

0개의 댓글