
백엔드
타입스크립트스럽게 성능과 생산성 두 마리 토끼 모두 잡기
두줄요약
웹 기반 게임 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 산출물을 줄여 부팅 성능과 운영 부담을 낮추는 접근
