개발
gRPC
journalctl
2025. 1. 12. 15:52
개요
가끔 테크블로그를 보다보면 gRPC를 자주 보게되어서 만들어보고 싶어졌다!
어느 날 누워서 테크블로그를 보다가 우연치않게 gRPC 포스팅을 보게되었다.. 사실 개발쪽으로는 정말 문외한인 나(REST API 개발도 끙끙대면서 하고있음..)에게 많은 기업에서 gRPC로 통신하는 MSA 환경을 구축하고 있다는 정보를 입수하여 하루빨리 해봐야겠다고 생각했다 ㅠ
정말 정말 작은 프로젝트이지만 gRPC로 한번 해보자.. (안해보는것보다 해보는게 낫지)
gRPC란?
gRPC는 구글(Google)에서 시작한 오픈소스이며, '원격 프로시저 호출(RPC, Remote Procedure Calls)'을 위한 시스템입니다.
특징은 다음과 같다고 합니다.
- gRPC는 HTTP/2 기반의 RPC Framwork 입니다.
- gRPC는 Protobuf(프로토콜 버퍼) 직렬화/역직렬화를 활용하여 통신하기 때문에 빠릅니다.
- gRPC는 proto3를 적용해 선언형으로 통신 인터페이스를 작성할 수 있습니다.
(기존 REST API보다 처리 속도가 월등히 빠르다고 하는데 대용량 트래픽을 처리해본 경험이 없어서 아쉽다..)
gRPC 프로젝트
구조
gRPC-Gateway, gRPC-Backend(Auth-Server, Board-Server)로 구성하여 Client는 JSON 형식의 REST API를 전달하면 gRPC-Gateway가 protobuf로 변경 후 맞는 서비스에 라우팅하는 구조로 구상했다.
gRPC-Gateway를 두는 이유는 크게 Frontend(React, Vue)는 기존에 사용하던 REST API로 데이터를 설정하고 Backend는 서버 간 통신이 자주 일어날 것 같아서 gRPC 통신하면 개발 비용적으로 이득이지 않을까 싶어서…