피드로 돌아가기
Dev.toBackend
원문 읽기
Binary Serialization 기반 gRPC 도입을 통한 Internal S2S 통신 최적화
When to choose gRPC over REST and Other Alternatives?
AI 요약
Context
HTTP/1.1 기반 REST API의 JSON 직렬화 오버헤드로 인한 Latency 증가 및 Over-fetching 문제 발생. Public API의 범용성과 Internal Service-to-Service(S2S) 통신의 고성능 요구사항 간의 상충 관계 존재.
Technical Solution
- Protocol Buffers 기반 Binary Serialization 채택을 통한 페이로드 크기 감소 및 Parsing CPU 부하 최소화
- HTTP/2 Multiplexing 적용으로 단일 TCP 연결 내 다중 스트림 처리 및 Head-of-Line Blocking 제거
- Proto-first Design 설계를 통한 언어 중립적 Strongly Typed Contract 정의 및 Compile-time Type Safety 확보
- Unary, Server/Client/Bidirectional Streaming 모델 도입으로 실시간 데이터 파이프라인 구현 효율성 제고
- Edge 영역의 REST와 Internal 영역의 gRPC를 분리한 하이브리드 통신 아키텍처 설계
- GraphQL을 활용한 Client-driven Query 구현으로 프론트엔드 데이터 쉐이핑 최적화
실천 포인트
- Public API/B2B 접점은 호환성이 높은 REST 유지 - Microservices 간 내부 호출은 gRPC 및 Protocol Buffers 도입 검토 - 양방향 실시간 통신 필요 시 SignalR 또는 gRPC Bidirectional Streaming 선택 - 프론트엔드의 복잡한 데이터 요구사항 대응 시 GraphQL 도입 고려