input
DTO 검증
요청 모양을 먼저 고정
body, params, query를 DTO, pipe, schema로 검증한다.
컨트롤러마다 검증 코드가 흩어지면 응답 형식이 흔들린다.
서버 구현은 엔드포인트 성공 응답에서 끝나지 않고 DTO 검증, Guard, 예외 필터, 로깅·메트릭까지 갖춰야 한다.
body, params, query를 DTO, pipe, schema로 검증한다.
컨트롤러마다 검증 코드가 흩어지면 응답 형식이 흔들린다.
controller 밖 service에 규칙을 모아 테스트 가능하게 둔다.
라우트별 구현이 달라지면 같은 요청도 다른 결과를 낸다.
인증과 role/permission을 guard와 decorator로 분리한다.
인증 실패와 권한 부족이 같은 오류처럼 보이면 디버깅이 늦어진다.
exception filter와 structured log로 실패를 관찰 가능하게 만든다.
500 계열이 많아져도 원인 계층을 바로 찾기 어렵다.
API 품질은 성공 응답보다 400/401/403/500을 얼마나 예측 가능하게 반환하고 관찰하는지에서 드러난다.