gRPC 기반 웹 개발, 코드 자동 생성으로 생산성 UP!

by DD
2년 전
조회수 8

gRPC 기반 마이크로서비스 호출을 위한 HTTP 클라이언트 코드 자동 생성 시스템 구축

Buf@bufbuild/protoplugin을 활용하여 API 호출 코드타입 안전성 확보

응답 속도 90% 감소, 개발 생산성 향상, 인프라 부하 감소 등의 효과 달성

gRPC-Gateway와 Buf를 활용한 아키텍처

뱅크샐러드는 gRPC-Gateway를 통해 gRPC 서비스를 HTTP API로 노출한다. Buf를 사용하여 .proto 파일을 기반으로 HTTP 클라이언트 코드를 자동 생성한다. 따라서 프론트엔드 개발자는 API 호출 중복 문제를 해결하고, 타입 안전성을 확보할 수 있었다.

내부망/외부망 환경 분리, 트레이드오프 분석

내부망과 외부망 호출을 위한 클라이언트 코드 분리를 통해 보안을 강화했다. 외부망 호출IPS 부하를 줄이기 위해 SSR을 적용했지만, 네트워크 홉 증가라는 트레이드오프가 발생했다. 자동 생성된 코드는 이러한 문제를 해결하는 데 기여했다.

코드 자동 생성 시스템 구축, 실전 적용 가이드

@bufbuild/protoplugin을 사용하여 .proto 파일을 파싱하고, 자동 생성된 코드를 활용한다. React-query와 같은 라이브러리 연동을 통해 개발 생산성을 더욱 향상시켰다. 결과적으로 응답 속도 90% 감소인프라 부하 감소를 달성했다.

Web을 위한 gRPC Stub과 Runtime 생성하기 - Feat. Buf & kubernetes