나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-09-15 07:45:06

gRPC

[[컴퓨터공학|'''컴퓨터 과학 및 공학
{{{#!wiki style="font-family: Times New Roman, serif; display: inline;"
]]
{{{#!wiki style="margin: 0 -10px -5px; min-height:calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<bgcolor=#1282d7,#1282d7> 기반 학문 수학(해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학(환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학(음운론 · 형태론 · 통사론 · 의미론 · 화용론) · 인지과학
하드웨어 SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술 기계어 · 어셈블리어 · 바이오스 · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 함수형 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · LinuxBoot · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속
연구 및 기타 논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영체제(멀티태스킹 · 프로세스 스케줄링 · 데드락 · 식사하는 철학자 문제 · 뮤텍스 · 세마포어 · 인터럽트) · 데이터베이스 · 컴퓨터 언어 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론 · 어휘 분석 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 마크업 언어 · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크(네트워크 포트) · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리(기계 번역 · 음성인식) · 버전 (버전 관리 시스템) · 난수생성 · 놀람 최소화 원칙 · 프레임워크 · 라이브러리 · 모듈 · API · ABI · 이진 탐색
}}}}}}}}} ||
이 문서는 토막글입니다.

토막글 규정을 유의하시기 바랍니다.


1. 개요2. 특징
2.1. 일관적인 인터페이스 생성2.2. REST 대비 경량 고성능
3. 플랫폼 현황

1. 개요

gRPC 공식 홈페이지
gRPC 깃허브

HTTP/2를 기반으로 하는 RPC 프레임워크이다.

함수 매서드 등의 인터페이스 정의와 데이터 직렬화는 프로토콜 버퍼를 기반으로 처리한다.

2. 특징

2.1. 일관적인 인터페이스 생성

클라이언트 코드와 서버 인터페이스를 생성해 주기 때문에 매우 편리하다. 또한 gRPC-gateway를 통해서 REST API로 변경 가능하고 Swagger를 사용하는 것도 가능하다.

프로토콜 버퍼를 기반으로 하여 스키마를 자동으로 컴파일 할 수 있다. 덕분에 정해진 스키마에 맞춰서 다양한 언어 및 플랫폼에 대한 코드가 자동 생성되므로, 다양한 플랫폼이 혼합된 프로젝트에서 유용하다.

스키마를 정의하는 것의 이점은 또한 문서화가 간편해지며, 명세의 노후화가 차단된다. 명세를 따로 정의하고 매번 통신 로직을 최신화할 필요 없이 코드가 자동 생성되니 말이다.

2.2. REST 대비 경량 고성능

REST 통신의 경우 송수신하는 주요 데이터는 텍스트 형태이다. XML 혹은 JSON 형태로 통신하는 경우에도 궁극적으론 텍스트를 주고받는 것이다. 반면 gRPC는 사전 정의된 인터페이스에 맞춰서 바이너리 데이터를 직렬화·역직렬화하는 형태로 동작한다. 이덕분에 송수신에 필요한 데이터의 총량 자체가 구조상 작고, 데이터 처리 또한 빠르다.

3. 플랫폼 현황

공식적으로 지원하는 언어는 다음과 같다. #
구글의 거의 모든 서비스는 gRPC로 이루어져 있다. 이외에도 넷플릭스, 우버 등 많은 기업들이 사용하고 있다.

gRPC의 특징들은 마이크로서비스를 구축하는 경우에 큰 강점으로 작용한다. 아주 작게 쪼개진 수백개의 서비스들은 데이터 통신에서 병목현상 발생이 매우 증가하기 때문.