Logo wiki

RPC(Remote Procedure Call)

April 27, 2025
2 min read
Table of Contents
index

alt text

RPC 개요

  • 주로 분산 컴퓨팅 환경에서의 효율적인 상호작용 요구로 인해 등장
  • 현재 실행 중인 프로세스의 주소 공간 내부가 아닌, 외부 또는 원격지의 프로세스와 상호작용하기 위한 기능
  • 개발자가 네트워크 세부 정보 대신 함수 호출을 중심으로 생각할 수 있도록 하여 네트워크의 복잡성을 추상화하고, 여러 시스템에 분산된 소프트웨어를 만드는 과정을 용이하게 함

JSON-RPC vs gRPC

  • JSON-RPC는 JSON 형식을 사용해서 메세지를 직렬화하기 때문에, 대역폭과 성능에 제한이 있어 gRPC가 등장함

    • gRPC는 이진 포맷의 프로토콜 버퍼를 사용해서 데이터 처리
  • JSON-RPC는 단일 요청-단일 응답 패턴을 기반으로 설계되었기 때문에 각 요청에 대한 명확한 응답이 있음을 전제로 함

    • 따라서 단일 요청에 대해 여러 응답을 계속해서 받을 수 있거나, 요청 없이도 데이터를 주고 받을 수 있는 스트리밍 방식은 지원 하지 않음
  • JSON-RPC는 각 요청에 식별자(ID)를 붙일 수 있으며, 응답에도 동일한 식별자가 포함되어 비동기로 통신할 때 요청과 응답 매칭에 용이함

활용 사례

  • MCP, A2A는 JSON-RPC 2.0을 기반으로 한 표준 메세지 형식을 사용한다

더 학습해보면 좋을 주제

  • Client Stub이 서버 주소를 찾기 위해 접속하는 네임 서버의 구현 방식과 저장 데이터
  • Protocol Buffer에서 사용되는 LEN(Length-delimited) 인코딩이 어떻게 가변 길이 데이터를 효율적으로 처리할 수 있게 하는지

참고 링크