General
gRPC( Google Remote Procedure Call )
구티맨
2022. 8. 10. 15:01
기존 RPC의 컨셉을 그대로 계승하며, RPC의 단점을 보완하여 Google 에서 만든 프레임워크 입니다.
proto 파일에 IDL을 정의해주면, gRPC와 Protocol Buffer(이하 PB) complier에서 자동으로 Protocol Buffer(PB)코드, 서비스와 Stub 코드를 작성해주어 개발자는 생성된 코드로 로컬 함수를 호출하듯이 클라이언트 또는 서버에 요청, 응답을 주고 받을 수 있습니다.
서버에서는 생성된 인터페이스를 구현하고, 클라이언트 에서는 Stub을 이용하여 Server와 통신을 하면 됩니다.
PB를 사용하여 직렬화 속도가 더 빨라지고, 데이터의 크기가 작아져 많이 사용하는 RESTful API( w/ JSON ) 보다 성능면에서 더 뛰어납니다.
특히 마이크로 서비스에서는 모놀로지에 비해 서버간 통신이 훨씬 많기 때문에 gRPC를 사용할 시에 성능에 큰 이점이 있습니다.
게다가 자동으로 생성되는 코드로 인해, 주고 받는 규격에 대한 문서의 양도 줄어드는 이점이 있지 않나 생각합니다.
gRPC는 넷플릭스, 시스코, 주니퍼 등 여러 회사에서 사용을 하고 있습니다.