목록 보기
Code generator 개발기 (Part 1)
프론트엔드

Code generator 개발기 (Part 1)

인프런
인프런
2023년 6월 19일

두줄요약

REST API와 TypeScript 타입을 수동 관리하며 생긴 불일치 문제를 분석했습니다. 기존 도구의 한계를 검토하고 OpenAPI 기반 생성기 목표를 정리했습니다.

문제 상황

  • REST API 증가와 TypeScript 반환 타입 수동 관리로 인한 타입 선언의 레거시화
  • Swagger 문서와 실제 API 응답 간 불일치로 약화되는 런타임 안전장치
  • 타입 관리 방식 합의를 위한 프런트엔드 팀의 반복적·소모적 논의

선택 이유

  • GraphQL·Client-side GraphQL·gRPC의 도입 비용, 경험 부족, 기존 레거시 개선 제약
  • OpenAPI 기반 openapi-generator의 번잡한 산출물과 API 호출 hooks 부재
  • 셀별 에러 처리·파일 구조·타입 명명 등 조직 특화 요구사항 대응 필요

구조와 흐름

  • OpenAPI Specification JSON을 파일 또는 네트워크 요청으로 파싱
  • 선택 API별 클라이언트 코드·타입·JSON validator 기반 type guard 생성 목표
  • Swagger 스키마와 실제 응답 정합성 검증을 위한 integration test 연계 목표

적용해볼 점

  • API 스키마를 단일 입력으로 삼아 타입 관리와 검증 코드를 자동화하는 접근
  • 생성물 형태와 팀별 확장 요구사항을 기준으로 기존 생성 도구 채택 여부 검토

다음 읽기

#TypeScript 주제를 이어서 읽기

Code generator 개발기 (Part 2)

OpenAPI 명세에서 React Query hook, 타입, type guard, schema validator를 생성하는 구조를 소개했습니다. 옵션 기반 확장성과 실제 응답 검증을 위해 IoC, JSON Schema, Ajv를 활용했습니다.

인프런
인프런
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...