AI Briefing

Code generator 개발기 (Part 1)

·2023.06.19 23:44

인프랩 프런트엔드 개발자가 API 타입 관리의 비효율성을 해결하기 위해 Code generator를 개발하게 된 배경을 다룬다.

인프랩이 레거시 시스템을 개선하며 API와 클라이언트 간의 타입 동기화 문제가 대두되었다. 기존에는 개발자가 Swagger 문서를 보고 TypeScript 타입을 수동으로 선언했으나, 이는 프로젝트가 진행될수록 타입의 정확도가 떨어지고 Runtime 에러로 이어지는 한계가 있었다.

특히 백엔드와 프런트엔드 개발자 간의 문서 불일치 문제와, null 또는 undefined 처리 미흡으로 인한 TypeError 발생 등은 개발 생산성을 저하시키는 주요 원인이 되었다. 이를 해결하기 위해 사람의 개입을 최소화하고 자동화를 구현하는 것이 목표다.

해결책으로 GraphQL 도입을 검토했으나, 다음과 같은 이유로 채택되지 않았다.

  • DB 모델링 노출 및 ORM 의존성 문제
  • 모니터링 도구 지원 여부 불확실성
  • BFF(Backend For Frontend) 도입에 따른 관리 부담
  • 팀 내 기술 숙련도 차이 및 학습 곡선
  • 급격한 비즈니스 변화에 따른 전환 비용 우려

이 외에도 Client side GraphQLgRPC 등 다양한 대안을 모색하며 최적의 자동화 도구를 찾기 위한 과정을 거쳤다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.