데브허브 | DEVHUB | Nest.js - 17강: DTO & Validation 실전! Postman으로 검증 테스트하기Nest.js - 17강: DTO & Validation 실전! Postman으로 검증 테스트하기
- Nest.js에서 DTO와 Validation Pipe는 클라이언트 요청 데이터의 유효성을 검사하고 안정적인 백엔드 처리를 보장하는 핵심 개념입니다. 🛡️
- DTO 유효성 검사를 위해
class-validator와 class-transformer 모듈을 설치해야 합니다. 📦
CreatePostDto와 같은 DTO 클래스를 정의하여 클라이언트로부터 받을 데이터의 구조와 타입을 명확히 합니다. 📝
@IsString, @IsNotEmpty와 같은 데코레이터를 사용하여 각 필드의 데이터 타입 및 필수 여부 등 구체적인 유효성 규칙을 설정합니다. ✅
- 컨트롤러 핸들러에
@UsePipes(new ValidationPipe()) 데코레이터를 적용하여 DTO에 정의된 유효성 검사 규칙을 자동으로 실행합니다. ⚙️
- 서비스 계층에서도 DTO를 활용하여 데이터 타입 안정성을 확보하고 개발 시 발생할 수 있는 오류를 사전에 방지합니다. 🚀
- Postman 테스트를 통해 필수 필드 누락이나 잘못된 데이터 타입 전송 시 400 Bad Request 에러와 함께 상세한 유효성 검사 메시지를 확인할 수 있습니다. 🚫
- 모든 유효성 검사 규칙을 통과한 유효한 요청은 201 Created 응답과 함께 성공적으로 처리됩니다. ✨
ParseIntPipe를 @Param 데코레이터와 함께 사용하여 URL 파라미터로 전달되는 문자열 ID를 자동으로 정수형으로 변환하여 코드 가독성과 안정성을 높입니다. 🔢
- 업데이트 시 모든 필드가 필수는 아닐 수 있으므로,
UpdatePostDto를 별도로 구현하여 부분 업데이트 시나리오를 처리하는 방법을 고려해야 합니다. 💡