Validation boundary

DTO와 Pipe 검증 구조

DTO는 입력의 모양을 선언하고 ValidationPipe는 실제 요청을 그 기준으로 통과 또는 거부한다.

입력 계약
1

Request body

클라이언트가 JSON 데이터를 보낸다.

2

DTO class

필드와 decorator로 타입과 제약을 선언한다.

3

ValidationPipe

whitelist, transform 같은 옵션을 적용한다.

4

Controller

검증된 데이터만 서비스로 전달한다.

DTO 검증은 컨트롤러 안의 if문을 줄이는 장치가 아니라 API 입력 계약을 한곳에 고정하는 장치다.