목록 보기
타입스크립트스럽게 성능과 생산성 두 마리 토끼 모두 잡기
백엔드

타입스크립트스럽게 성능과 생산성 두 마리 토끼 모두 잡기

데브시스터즈
데브시스터즈
2024년 9월 4일

두줄요약

웹 기반 게임 Admin의 gRPC 통신에서 FE와 BE용 API 중복 구현 문제를 Proxy로 해결한 사례를 소개했습니다. 코드 생성 결과를 JSON 메타데이터로 바꿔 부팅 부담도 줄였습니다.

문제 상황

  • 웹 기반 게임 Admin에서 gRPC 게임 서버와 통신해야 하는데, 브라우저 제약으로 직접 gRPC 호출이 어려운 구조
  • protobuf code-gen은 주로 Node.js 런타임 대상이라 FE ↔ BE 구간에 재사용하기 어렵고, gRPC 메서드 추가마다 REST endpoint를 반복 작성해야 하는 불편
  • 생성 코드가 많아질수록 Admin BE 부팅 시간과 코드 유지 부담이 커지는 문제

해결 방법

  • JavaScript Proxy로 프로퍼티 접근 경로를 누적해 FE에서 beClient처럼 보이는 동적 API 클라이언트 구현
  • apply() handler로 실제 호출 시점에 /grpc 단일 엔드포인트로 path와 payload 전송
  • 코드 생성 결과를 JavaScript 대신 JSON 메타데이터 중심으로 바꿔 직렬화/역직렬화 로직을 단순화

적용해볼 점

  • 타입 정보와 런타임 메타데이터를 결합해 FE/BE 간 API 중복 구현을 줄이는 방식
  • 대규모 스키마 환경에서 code-gen 산출물을 줄여 부팅 성능과 운영 부담을 낮추는 접근

댓글 0

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

댓글을 불러오는 중...