(주)포랩에서는 데이터혁신 브랜드인 마이데이터랩(MyDataLab)을 통해 Big Data 생성부터 유통 및 분석까지 전 과정에 대한 솔루션과 프로페셔널하게 SI/SM 프로젝트 사업을 수행합니다.
[마이데이터랩] 서울특별시 송파구 법원로 127, 문정대명벨리온 403호
gRPC(gRPC Remote Procedure Calls[1])는 구글이 최초로 개발한 오픈 소스 원격 프로시저 호출 (RPC) 시스템이다. 전송을 위해 HTTP/2를, 인터페이스 정의 언어로 프로토콜 버퍼를 사용하며 인증, 양방향 스트리밍 및 흐름 제어, 차단 및 비차단 바인딩, 취소 및 타임아웃 등의 기능을 제공한다. 수많은 언어를 대상으로 크로스 플랫폼 클라이언트 및 서버 바인딩을 생성한다. 가장 흔한 사용 시나리오에는 마이크로서비스 스타일 아키텍처의 서비스 연결, 모바일 장치, 브라우저 클라이언트를 백엔드 서비스에 연결하는 일 등이 포함된다.
gRPC의 개념과 사용법을 바로 설명하는 것보다, gRPC 대신에 어떤걸 사용하고 있는지 살펴보면 더 gRPC를 이해하는데 도움이 될 것 같다 (다른말로 하면, gRPC의 대체제가 무엇인지).
gRPC 대신에 흔히 가장 많이 사용되는 것이 JSON을 사용한 HTTP API이다. HTTP API는
간 서로 데이터를 주고 받을 때 사용되는 통신 방법이라고 생각할 수 있다.
밑에 예제를 보면 Client가 HTTP로 RESTful하게 서버에게 GET으로 post들을 요청 한다. 그리고 서버는 요청에 대해 JSON으로 post들을 리스트로 전달하게 된다. (HTTP와 REST라는 개념은 거의 항상 붙어다녀서 사용된다, 이 블로그를 참고하면 이해에 도움된다)
gRPC가 뭔지 이해했다면, 도대체 어떤 장점들이 있길래 gRPC 사용이 요즘에 🔥 핫해지고 🔥 있는지 알아보려고 한다.
feat. gRPC를 사용하고 있는 🚀 스타트업들
gRPC의 장점은 다음과 같다.
빠르다
protocol buffer라는 방식은 XML과 같이 구조화된 데이터를 직렬화(serialize)하는 방식인데 압축을 해서 훨씬 빠르고, 사용법도 간단하고, 데이터의 크기도 작다. JSON 직렬화보다 최대 8배 더 빠를 수 있다고 한다 ref.
엄격한 사양 덕분에 생기는 가이드의 존재 유무 (IDL)
gRPC로 통신하기 위해서는 protocol buffer로 어떻게 데이터를 주고 받을 것인지 정의해놔야 한다. 그렇기 때문에, 데이터를 주고 받을 때는 어떤 형식으로 전달해야하는지에 대한 가이드가 코드로 생성되기 때문에 따로 API 문서같은 것을 만들 필요가 없게 되는 것이다. 여러 회사에서도 이런 엄격한 사양 덕분에 개발 생산성이 높아지는 이유도 있어서 gRPC를 사용하는 경우가 다수 있다. ref. 뱅크샐러드 기술 블로그
HTTP/2
gRPC는 HTTP/2를 지원한다. gRPC는 HTTP/1.1과 호환되지만 HTTP/2만의 고급 기능들도 사용할 수 있다. 동일한 연결로 병렬적인 요청을 처리할 수 있고, 연결을 유지해서 connection을 매번 하는데 사용되는 cost도 줄일 수 있다.
마이데이터 플랫폼의 진화에 따라 발빠르게 대응할 수 있는 인력과 기술력을 확보하고 있습니다.
다양한 머신러닝과 딥러닝을 제공할 수 있는 다양한 툴과 정확한 데이터를 도출할 수 있는 노하우를 가지고 있습니다.
정확한 고객의 요구파악을 통한 효과적인 솔루션을 제안을 통해 성공적 프로젝트를 수행하고 있습니다.
(주)포랩에서는 데이터혁신 브랜드인 마이데이터랩(MyDataLab)을 통해 Big Data 생성부터 유통 및 분석까지 전 과정에 대한 솔루션과 프로페셔널하게 SI/SM 프로젝트 사업을 수행합니다.
[마이데이터랩] 서울특별시 송파구 법원로 127, 문정대명벨리온 403호