피드로 돌아가기
Three Ways to Convert JSON to TypeScript. Only One Is Deterministic.
Dev.toDev.to
Frontend

Deterministic Conversion을 통한 Runtime Crash 제로화 및 타입 무결성 확보

Three Ways to Convert JSON to TypeScript. Only One Is Deterministic.

Aral Roca2026년 4월 27일9intermediate

Context

복잡한 JSON 응답을 TypeScript Interface로 변환하는 과정에서 수동 작성의 휴먼 에러와 LLM의 확률적 생성으로 인한 타입 불일치 발생. 잘못된 타입 정의가 컴파일 단계에서 필터링되지 않고 Runtime Crash로 이어지는 구조적 취약점 존재.

Technical Solution

  • Recursive Descent 알고리즘 기반의 JSON 트리 순회 및 JavaScript Type 분석 수행
  • inferType() 함수를 통한 값-타입 간 1:1 기계적 매핑으로 결정론적(Deterministic) 결과 도출
  • Object 탐색 시 Map 구조를 활용한 중복 인터페이스 제거 및 PascalCase 명명 규칙 적용
  • 배열 요소 검사를 통한 Uniform Type 또는 Union Type의 자동 분기 처리
  • Client-side 처리를 통한 PII 등 민감 데이터의 외부 유출 경로 원천 차단
  • 유효하지 않은 JS Identifier에 대한 자동 Quoting 처리로 문법적 정확성 확보

- 대규모 API 응답(15개 이상의 필드) 정의 시 수동 작성 배제 - LLM 기반 타입 생성 시 확률적 오답(Probabilistic Error) 가능성 검토 - 결정론적 컨버터로 기본 뼈대 생성 후, Optional 필드 및 String Union 등 도메인 지식이 필요한 부분만 수동 보정 - Production 환경의 API 응답 데이터 전송 시 PII 포함 여부 및 보안 정책 준수 확인

원문 읽기