피드로 돌아가기
From JSON to TypeScript: Five Ways to Stop Hand-Writing Interfaces
Dev.toDev.to
Frontend

JSON 인터페이스 수동 작성 배제로 Runtime Type Error 원천 차단

From JSON to TypeScript: Five Ways to Stop Hand-Writing Interfaces

Ashish Kumar2026년 4월 25일10intermediate

Context

API 응답 JSON을 기반으로 TypeScript 인터페이스를 수동 작성함에 따른 런타임 오류 발생 가능성 분석. 특히 Optional 필드 누락, Null과 Undefined의 혼동, 단일 샘플 데이터에 의존한 타입 정의로 인한 Type-theater 현상이 주요 병목 지점으로 식별됨.

Technical Solution

  • Client-side 브라우저 툴을 활용한 일회성 JSON-to-TypeScript 변환으로 빠른 프로토타이핑 수행
  • quicktype CLI를 통한 다중 샘플 분석 기반의 타입 추론으로 단일 샘플의 편향성 제거
  • OpenAPI 및 JSON Schema 등 공식 Contract 기반의 자동 생성으로 Source of Truth 일치 및 타입 정합성 확보
  • Zod 라이브러리를 통한 Runtime Validation과 Type Inference의 통합으로 스키마 드리프트 방지
  • z.infer를 활용하여 런타임 검증 로직과 컴파일 타임 타입 정의를 단일 객체로 관리하는 구조 설계

- 단순 탐색 단계: Client-side 변환 툴 사용 - 반복적 타입 갱신: quicktype CLI 및 다중 샘플 입력 적용 - 표준 스키마 존재 시: OpenAPI/JSON Schema 기반 자동 생성 파이프라인 구축 - 경계 데이터 검증 필요 시: Zod를 통한 Runtime Validation 및 타입 추론 적용 - 생성 후 검토 사항: `never[]`, 의도치 않은 Nullability, Discriminated Union 누락 여부 확인

원문 읽기