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

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

9
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

JavaScript Proxy API와 gRPC 통신

이번 글에서는 JavaScript의 Proxy API를 사용하여 웹 기반 게임 Admin과 gRPC 게임 서버 간의 효율적인 통신 방법을 소개합니다. gRPC는 HTTP/2를 기반으로 하고, 프로토콜 버퍼를 사용하여 데이터 직렬화를 수행합니다. 게임 Admin 아키텍처는 Admin FE, Admin BE, 게임 서버로 구성되며, gRPC 호출을 위해 Admin BE를 프록시 서버로 설정합니다. 전달되는 코드는 Node.js 런타임을 고려하여 BE와 FE 간 통신을 구현합니다.

문제점 및 아이디어

gRPC 메서드 추가 시 REST API 엔드포인트를 수동으로 추가해야 하는 불편함이 존재하며, 이를 해결하기 위해 JavaScript Proxy를 사용하여 동적 API 클라이언트를 구현하는 방법을 모색합니다.

구현 및 최적화

Proxy API를 이용해 경로를 동적으로 처리하고 RPC 호출을 재정의합니다. 또한, 코드 생성을 최소화하여 성능을 최적화하는 방법을 소개하며, 최종적으로 쿠키런: 킹덤의 운영 툴에서 약 100만 줄의 코드를 삭제하는 성과를 얻었습니다.