DTO 경계

DTO 검증 경계

class-validator, class-transformer, ValidationPipe 옵션을 함께 보아 잘못된 입력 제거, 타입 변환, 에러 메시지 노출 수준을 결정합니다.

Decorate

검증 규칙

@IsString, @IsEmail, @MinLength, @IsOptional로 요청 필드의 허용 범위를 코드에 둡니다.

Pipe

전역 적용

app.useGlobalPipes(new ValidationPipe())로 모든 controller 입력에 같은 정책을 적용합니다.

Clean

화이트리스트

whitelist와 forbidNonWhitelisted로 DTO에 없는 속성을 제거하거나 400으로 거부합니다.

Transform

타입 변환

transform 옵션은 query string 숫자와 nested DTO를 실제 타입으로 다룰 때 필요합니다.