GRPC (RPC 프레임워크)

IT 위키

gRPC는 고성능 오픈소스 원격 프로시저 호출(Remote Procedure Call, RPC) 프레임워크이다.

개요[편집 | 원본 편집]

gRPC는 Google에서 개발한 내부 RPC 시스템에서 유래하였으며, 현재는 다양한 언어와 플랫폼에서 사용할 수 있는 일반 목적의 RPC 프레임워크로 발전하였다. HTTP/2를 기반으로 하며, 바이너리 직렬화 형식인 프로토콜 버퍼(Protocol Buffers)를 사용하여 높은 성능과 효율적인 통신을 지원한다.

특징[편집 | 원본 편집]

  • HTTP/2 기반 통신 프로토콜 사용
  • Protocol Buffers를 통한 고속 직렬화 및 역직렬화
  • 클라이언트-서버 간 명확한 인터페이스 정의 (.proto 파일 사용)
  • 다양한 언어 지원 (Python, C++, Java, Go, Rust 등)
  • 동기 및 비동기 방식의 호출 모두 지원
  • 스트리밍 지원 (클라이언트 스트리밍, 서버 스트리밍, 양방향 스트리밍)

작동 방식[편집 | 원본 편집]

1. 개발자는 .proto 파일을 사용해 서비스와 메시지를 정의한다. 2. gRPC 툴체인은 이 파일을 바탕으로 서버와 클라이언트 코드를 생성한다. 3. 클라이언트는 로컬 함수 호출처럼 원격 서버의 함수를 호출하며, 내부적으로 gRPC는 이 호출을 HTTP/2 요청으로 변환하여 서버에 전달한다. 4. 서버는 정의된 로직을 수행하고, 결과를 다시 클라이언트로 전송한다.

사용 사례[편집 | 원본 편집]

  • 마이크로서비스 간 고성능 통신
  • 분산 머신 러닝 및 데이터 처리 시스템 (예: Ray)
  • 모바일 및 IoT 기기와 서버 간 통신
  • 실시간 스트리밍 기반 애플리케이션

gRPC와 기존 RPC의 차이점[편집 | 원본 편집]

  • 기존의 REST API는 텍스트 기반(JSON) 통신을 주로 사용하며, HTTP/1.1 기반이다.
  • 반면, gRPC는 바이너리 기반의 Protocol Buffers를 사용하고 HTTP/2 위에서 동작하기 때문에 다중 요청 처리 및 스트리밍에서 우수한 성능을 보인다.

같이 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

  • Vaidyanathan, Varun et al. gRPC: A High Performance, Open Source Universal RPC Framework. Google Inc., 2016.
  • The gRPC Authors. gRPC Official Documentation. https://grpc.io

각주[편집 | 원본 편집]