JSON 검증 실패는 service 호출 전에 끝난다

본문 해석과 DTO 생성, 제약 조건 검증을 모두 통과한 입력만 application command가 된다.

01 · BODY

JSON bytes

Content-Type과 본문 크기를 먼저 확인한다.

02 · JACKSON

DTO 생성

필드 타입과 constructor binding을 적용한다.

DTO 생성과 Bean Validation을 모두 통과했는가?
FAIL

400 응답

필드 오류를 공개 가능한 형식으로 반환하고 종료한다.

PASS

Command 변환

Controller가 검증된 값만 service에 전달한다.

핵심: 검증 실패 경로에는 service 호출도, 저장 부수 효과도 존재하면 안 된다.