안전한 REST API는 수신부터 응답까지 경계를 닫는다

회원가입 요청은 검증 성공과 실패를 먼저 나눈 뒤 업무 처리와 공개 응답 변환으로 이어진다.

1

요청 수신

JSON을 unknown으로 받고 signUpSchema.safeParse를 실행한다.

실패

400 오류 응답

INVALID_INPUT과 필드별 문제만 반환한다.

성공

회원 생성

검증된 DTO로 중복 확인, 해시, 저장을 수행한다.

01

응답 DTO 변환

passwordHash와 내부 권한을 제거한다.

02

계약 검사

satisfies로 공개 응답 필드를 확인한다.

03

201 응답

안전한 회원 정보와 Location을 반환한다.

핵심: 외부 입력에는 런타임 검증을, 내부에서 만드는 응답에는 정적 타입 검사를 적용한다.