gRPC (gRPC)
쉽게 풀면
gRPC는 서로 다른 프로그램이나 서버끼리 함수를 호출하듯이 통신할 수 있게 해주는 기술이다. 흔히 쓰이는 REST API가 사람이 읽을 수 있는 텍스트 형식(JSON)으로 데이터를 주고받는다면, gRPC는 이를 훨씬 압축된 이진 형식으로 변환해 전송하기 때문에 속도가 더 빠르고 네트워크 부담도 적다. 여러 마이크로서비스가 서로 자주, 대량으로 통신해야 하는 대규모 시스템에서 선호되며, 분산 학습 프레임워크의 내부 통신에도 활용된다.
왜 중요한가
gRPC는 대규모 분산시스템, 마이크로서비스 아키텍처, 분산 딥러닝 학습·추론 시스템처럼 노드 간 통신량이 많고 지연시간에 민감한 환경에서 성능을 좌우하는 요소이기 때문에, 시스템 설계와 성능 평가를 다루는 논문에서 통신 계층 구현 방식으로 자주 언급됩니다. 특히 여러 서버나 여러 GPU 노드가 빈번하게 데이터를 주고받아야 하는 연구에서 통신 오버헤드를 줄이는 실용적 선택지로 소개되는 경우가 많습니다.
논문에서는 이렇게 쓰입니다
여러 대의 서버가 서로 빠르게 데이터를 주고받아야 하는 추론 시스템에서, 효율적인 통신 방식인 gRPC를 채택했다는 뜻이다.
클라우드·분산시스템 연구에서 서비스 간 통신 방식을 gRPC로 전환해 성능을 개선한 사례를 설명하는 문장이다.
조금 더 깊게 보면
gRPC는 인터페이스와 메시지 구조를 프로토콜 버퍼(Protocol Buffers) 정의 파일로 명세하고, 이를 바탕으로 여러 언어에서 사용할 수 있는 클라이언트·서버 코드를 자동 생성하는 방식으로 동작한다. 또한 HTTP/2를 전송 계층으로 사용해 하나의 연결에서 여러 요청을 동시에 처리하는 멀티플렉싱과, 클라이언트·서버가 데이터를 스트림 형태로 주고받는 스트리밍 호출을 지원한다는 점이 REST 기반 통신과 구별되는 특징으로 논문에서 언급되곤 한다.
주의할 점
gRPC는 REST API (자원 중심 API 설계)보다 속도가 빠르지만, 데이터가 이진 형식이라 사람이 직접 눈으로 확인하며 디버깅하기는 더 어렵다.