@ValidateNested와 @Type 데코레이터를 함께 씁니다.@ValidateNested({ each: true })는 배열 안의 각 요소를 개별적으로 검증하라는 의미입니다.@Type(() => Image)는 중첩된 객체의 타입을 명시해 변환과 검증이 올바르게 동작하도록 합니다.NestJS에서 DTO를 사용해 중첩 객체의 검증을 처리하는 방법을 정리합니다.
예를 들어 아래와 같은 Image 인터페이스를 가진 객체 배열을 검증하려면 어떻게 해야 할까요.
typescript
NestJS Pipe로 입력 데이터를 변환하고 검증하는 방법을 내장 파이프, DTO 기반 ValidationPipe, 커스텀 파이프로 정리합니다.
2026. 3. 29.BackendNestJS에서 ValidationPipe로 요청을 역직렬화하고 ClassSerializerInterceptor로 응답을 직렬화하는 방법을 정리합니다.
2026. 3. 28.BackendNestJS에서 DTO 패턴과 class-validator, class-transformer로 클라이언트 요청을 안전하게 검증하고 변환하는 방법을 정리합니다.
2026. 3. 28.interface Image {
id:number
url:string
created_at:Date;
updated_at:Date;
home_id:number;
}@ValidateNested와 @Type을 사용하면 됩니다.
typescript@IsArray() @ValidateNested({ each: true }) @Type(() => Image) images: Image[];
위 코드는 배열 형태만 받으며, 중첩된 상태를 각각 검증한다는 뜻입니다. 그리고 그 중첩된 객체의 타입은 Image 타입이라는 의미입니다.