← 질문 목록
#153깊이 0
내부 API에 바이너리 RPC가 유리한 때는?
호출 양이 많고 엄격한 계약과 낮은 지연, 스트리밍이 필요할 때 유리하다. 클라이언트와 서버를 함께 통제할 수 있을수록 도입 비용이 낮다.
| 기준 | gRPC | REST JSON |
|---|---|---|
| 계약 | Protobuf 스키마 | 문서 또는 별도 스키마 |
| 전송 | HTTP/2 바이너리 | 주로 텍스트 |
| 스트리밍 | 기본 지원 | 별도 방식 필요 |
Protobuf로 서버와 여러 언어의 클라이언트 코드를 생성한다. 정적 타입 언어에서는 타입 불일치를 컴파일 단계에서 줄일 수 있지만 스키마 호환 규칙을 지켜야 한다.
멀티플렉싱과 작은 메시지는 서비스 간 통신의 전송 부담을 줄인다. 그러나 공개 API에서는 브라우저 지원과 사람이 읽기 어려운 페이로드가 장벽이 된다.
프록시와 관측 도구가 HTTP/2와 gRPC를 제대로 지원하는지도 확인한다. 단순 CRUD나 외부 연동은 REST가 운영과 디버깅에 더 쉬울 수 있다.