본문 바로가기

Network

REST vs gRPC

반응형

🍳머리말

gRPC와 REST 통신에 대해 알아보고 차이점 비교분석하는 글입니다.(갱신예정)


📕REST

📔 정의

RESTRepresentational State Transfer의 약자입니다.

정해놓은 data 규격으로 client와 server간 자원(data)를 주고받는 통신을 의미합니다.

서로의 상태(정보)를 알고 요청과 응답을 하기 위해 사용됩니다. 

주로 직렬화된 data구조인 JSON, XML을 통해 data를 주고 받습니다.

data를 주고 받는 행위message 송신, 수신이라고도 표현합니다.

📔 장점

HTTP/1.x를 사용하기 때문에 web application을 만드는데 적합합니다.

📔 단점

HTTP/1사용. 매 client의 요청시 connection을 새로생성합니다. 때문에 latency가 상대적으로 긴 편에 속합니다.
json객체를 parsing한 후 byte로 변환 후 직렬화하여 통신하기 때문에 마찬가지로 느립니다.


📕gRPC

📔 정의

gRPC란 Google Remote Procedure Calls의 약자입니다. 마찬가지로

정해놓은 data 규격으로 client와 server간 자원(data)를 주고받는 통신을 의미합니다.

직렬화된 data구조인 protobuf를 사용해서 message를 송,수신합니다.

📔 장점

서로 다른 언어로 구성된 API간 통신을 위해 같은 data 구조를 가지도록 .proto file구성 방안 추가 연구 필요
data 규격은 직렬화 구조인 protobuf사용
직렬화 하려는 data구조가 정의된 .proto 기반으로 사용
.proto에서 표현하는 문자열 길이가 JSON에 비해 짧음. 별도의 객체 parsing이 불필요. 빠른 통신 가능
HTTP/2사용. client 요청 시 connection재사용 가능 latency가 HTTP/1.1에 비해 50%감소된다고 합니다.

 


*더 나은 내용을 위한 지적, 조언은 언제나 환영입니다.

 

 

'Network' 카테고리의 다른 글

공인 ip주소 확인 방법  (0) 2019.06.16