RPC - gRPC에 관하여

몽루문·2024년 4월 16일
0

TIL - 개발지식

목록 보기
6/10

🚩 RPC - gRPC에 관하여

저번 정리글에서 RPC에 대한 개념을 정리하였다.
이번에는 RPC 의 개념을 활용한 Google 에서 제작한 오픈 소스 프레임워크인 gRPC 에 관해서 정리해보려고 한다.

📝 gRPC ( Google Remote Procedure Call ) 란 ?

■ gRPC ( Google Remote Procedure Call ) 의 정의

  • HTTP/2 와 ProtocodBuf 를 활용하여 Google 에서 개발한 오픈소스 RPC Framework

○ gRPC ( Google Remote Procedure Call ) 동작 원리

■ gRPC ( Google Remote Procedure Call ) 의 특징

  1. HTTP/2 를 활용한 뛰어난 효율성
  2. ProtoBuf(proto3) 를 이용한 JSON 상위의 성능
  3. RPC 의 단점을 보완한 인증, 암호화, 압축 등 풍부한 내장 기능
  4. Java, C++, C#, Python, Ruby, Node.js 등 10개의 언어 지원

○ HTTP/2 란?

  • HTTP 1.1 의 개선된 버전으로 SPDY ( 스피디 ) 기반 HTTP 프로토콜의 두번재 버전
  • SPDY ( 스피디 )
    전송 지연 ( latency ) 문제의 해결을 집중하여 HTTP 통신을 고속화하기 위해 구글이 개발한 비표준 개방형 네트워크 프로토콜

○ HTTP/2 특징

  • HTTP/1.1 의 순차적 처리와는 다른 하나의 TCP/IP 연결에서 여러개의 스트림을 동시에 열어 병렬처리
  • 기존 Client 와 Server 에서 사용된 Header 들의 목록들을 관리하여 중복 헤더 프레임을 압축해서 전송
  • HTTP/1.1 Text 기반 protocol 에서 Binary protocol 지원

○ ProtoBuf ( Protocol Buffer ) 란?

  • gRPC 에서 사용되는 XML, JSON 과 유사한 직렬화 데이터 구조

○ ProtoBuf ( Protocol Buffer ) 특징

  1. byte 를 전송하기 때문에 JSON 과 같은 Parsing ( 파싱 ) 의 불필요
  2. 같은 데이터라도 데이터의 크기가 작아 빠른 통신 속도
  3. binary 구조로 인한 인간이 읽기 어려운 구조
  4. proto 문법에 대한 Learning Curve

■ gRPC ( Google Remote Procedure Call ) 의 장점

  1. ProtoBuf 기반 Binary Protocol 사용
  2. HTTP/2 사용

※ 우수한 네트워크 및 메모리 효율성

■ gRPC ( Google Remote Procedure Call ) 의 단점

  1. Browser 환경에서 사용 불가
  2. Binary Protocol 로 인한 Debug 에 어려움 ( Not Human Readable )
  3. 기존의 RPC 보다는 간편하나 여전한 Learning Curve
  4. Load Balancer ( 로드밸런서 ) 가 HTTP/2 를 지원해야한다.

※ Rest 에 비해 Learning Curve 가 높다.

🚩 마치며..

gRPC 에 대한 개념을 정리해보았다.
Rest 와 비교하여 확실히 Learning Curve 가 무지막지하게 높다.
전문가가 된다면 지금의 상용서비스를 활용하지 않고도 이 기술만으로도 요구사항을 충족할 수 있을 것 같다.

profile
알고 있는 것을 정리하고, 새로운 것을 알기위해 끄적이는곳..

0개의 댓글