///////
Search
👩🏻

(HTTP API(RESTful)와 비교했을 때)gRPC API는 어떤 이점을 제공하나요?

이전 장에서, gRPC의 특징인

protocol buffer, HTTP/2

이 REST와 비교되는 이점이다.

HTTP/2 관련 이점

HTTP/2는 HTTP1.1의 프로토콜을 계승하면서도 성능 향상에 초점을 두어 업그레이드 함.
1.
Multiplexed Streams
한 connection으로 동시에 여러개 메시지를 주고 받을 수 있으며, Response는 순서에 상관없이 stream으로 주고 받음
2.
Stream Prioritization
리소스간 우선순위를 설정해 클라이언트가 먼저 필요한 리소스부터 보낸다.
3.
Server Push
서버는 클라이언트의 요청에대해 요청하지 않은 리소스를 마음대로 낼 수 있다. == 요청 최소화
4.
Header Compression
Header table과 Huffman Encoding 기법(HPACK 압축방식)을 이용해 압축함
용량이 작아져서 속도가 빨라진다.
HTTP1.1을 기반으로 하는 REST API은
마이크로 서비스가 여러 클라이언트로부터 많은 쿼리를 받는 경우,
모델이 모든 쿼리를 개별적으로 처리해야 하므로 전체 시스템이 다운될 가능성이 높은데 반해
HTTP 2를 기반으로 통신하는 g RPC API에는 이 문제가 발생하지 않는다.

protocol buffer 관련 이점

g RPC API - protocol buffer
프로토콜 버퍼를 사용하여 페이로드(메시지) 데이터를 직렬화
직렬화 : 객체의 데이터를 연속적인 바이트 코드로 변경하는 작업
이 방법은 메시지를 더 작게 만들고 압축된 구조여서 가벼움 (바이너리 형식)
Rest API
Rest는 대부분 JSON 또는 XML 형식을 사용하여 데이터를 주고 받는다.
가독성은 좋으나….
서버와 클라이언트 측 모두에서 사용되는 프로그래밍 언어로 직렬화되고 번역되어야 해서 데이터 전송을 느려지게 한다.
바이너리 코드로 압축해서 페이로드 데이터를 전송하는 gRPC API에 비해,
JSON과 XML과 같은 객체 구조의 페이로드 데이터를 전송하는 REST API가 데이터 전송이 더 느리다.
참고