외부 JSON은 검증 경계를 통과해야 한다

TypeScript 타입은 런타임 입력을 검사하지 않는다. unknown에서 시작해 검증된 DTO만 업무 코드로 넘긴다.

01

HTTP 요청

request.json()의 결과는 신뢰하지 않고 unknown으로 받는다.

02

런타임 검증

스키마가 필수 필드, 형식, 길이를 실제 값에서 확인한다.

03

입력 DTO

성공한 값만 SignUpInput처럼 좁혀진 타입을 얻는다.

04

업무 로직

서비스는 검증된 입력만 받아 회원가입 규칙에 집중한다.

05

응답 변환

내부 모델에서 공개해도 되는 필드만 응답 DTO로 만든다.

핵심: 정적 타입은 내부 코드를 연결하고, 런타임 스키마는 외부 입력 경계를 지킨다.