// note
인증 입력 검증 — 스키마로 단일 정의해 화면별 중복 제거
- 워크스페이스 기반 SaaS의 인증 화면들(로그인·가입·재설정·2단계 인증)
증상
- 같은 이메일·비밀번호 입력인데 화면마다 검증 조건과 에러 문구가 미묘하게 어긋남
- 한 화면을 고쳐도 나머지엔 반영되지 않아, 수정할 때마다 전 화면을 훑어야 했음
원인
- 같은 입력이 여러 화면에 반복 등장하는데 폼마다 검증을 각자 구현해둠
- 검증을 통과해도 타입은 여전히 넓어서, 이후 코드에서 옵셔널 체크가 반복됨
조치
- zod 스키마로 입력 규격을 한 곳에 선언하고 여러 폼이 같은 스키마를 참조
- 에러 메시지도 스키마에 함께 둬 화면 간 문구 불일치 제거
- 타입을 스키마에서 파생시켜 검증 통과 시점에 타입이 좁혀지게 — 이후 옵셔널 체크가 사라짐
- 클라이언트 검증은 왕복을 줄이는 용도이고 최종 판정은 서버가 수행
결과
- 규격 변경이 한 파일 수정으로 끝나 인증 화면 전체에 일괄 반영
- 검증과 타입 안전이 한 번에 확보됨
같은 계열 — 스펙을 단일 소스로 두고 파생시키는 접근 → OpenAPI 스펙에서 훅 자동생성