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