NestJS Class Validator & Transformers 사용법
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Nest JS Class Validator & Class Transformers

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • NestJS를 사용하는 백엔드 개발자
  • 데이터 유효성 검증 및 변환 기능이 필요한 API 개발자
  • 중간 수준 이상의 TypeScript/JavaScript 경험자

핵심 요약

  • Class Validator@IsString()/@IsNotEmpty() 등의 데코레이터로 요청 데이터 검증
  • Class Transformers@Type(() => UserDTO) 데코레이터로 중첩 객체 자동 변환
  • reflect-metadata 패키지가 메타데이터 기반 데코레이터 기능을 지원

섹션별 세부 요약

1. Class Validator 기초 사용법

  • sendMessageDTO 클래스에 @IsString()/@IsMongoId()10+ 유효성 검증 데코레이터 적용
  • plainToInstance() 함수로 req.body를 DTO 인스턴스로 변환
  • ValidationPipe({transform: true})자동 변환 + 검증 처리

2. 중첩 객체(Nested Object) 처리

  • @ValidateNested() 데코레이터로 중첩 DTO 검증 활성화
  • @Type(() => UserDTO) 데코레이터로 중첩 객체 타입 변환
  • 예시: user 객체가 UserDTO 인스턴스로 자동 변환

3. 데이터 변환 기능

  • @Transform(({value}) => value.toLowerCase())필드 값 변환
  • reflect-metadata 패키지가 데코레이터 기반 메타데이터 저장/읽기를 가능하게 함

4. ValidationPipe 설정

  • app.useGlobalPipe(new ValidationPipe({transform: true}))글로벌 파이프 설정
  • @Body('sendMessage') 어노테이션으로 자동 변환/검증된 DTO 사용

결론

  • 필수 데코레이터 조합: @ValidateNested() + @Type()
  • ValidationPipe 설정 시 자동 변환 및 검증 적용
  • reflect-metadata 설치 필수 (NestJS 기본 제공)