gRPC

민정·2025년 7월 4일

gRPC

목록 보기
4/7

gRPC

  • 원격 프로시저 호출(RPC) 기반 API 아키텍처 및 시스템
  • RPC 구현 및 최적화
  • 데이터 전송에 Protocol buffer, HTTP/2 사용

gRPC vs RPC

  • gRPC는 RPC와 유사한 구조 사용
    • 외부 함수를 자신의 함수처럼 호출 가능
    • 클라이언트, 서버가 stub을 공유(→ protocol buffer 코드)
  • gRPC는 RPC와 달리 HTTP/2 기반, protocol buffer를 기본 데이터 포맷으로 사용
  • gRPC는 RPC를 확장, 추상화한 프로토콜

gRPC vs REST API

gRPC와 REST의 차이점은 무엇인가요?

공통점

  • 데이터 교환 매커니즘
    • 클라이언트-서버 구조
    • 데이터 형식, 통신 방식, 요청 및 응답 메시지 구조 등을 미리 결정한 후 해당 규칙에 따라 통신
  • HTTP 기반 통신
  • 다양한 프로그래밍 언어를 사용해 구현 가능
  • 비동기 통신 및 Stateless 설계 지원

차이점

  • 통신 모델
    • REST는 단방향 연결(단일 요청 - 응답)
    • gRPC는 단방향(일대일), 서버 스트리밍(일대다), 클라이언트 스트리밍(다대일), 양방향 스트리밍(다대다) 모두 가능
  • API 호출
    • REST는 엔티티 지향, 클라이언트가 리소스 자체를 직접 호출(서버 리소스 URL + HTTP 메소드)
    • gRPC는 서비스 지향, 클라이언트가 서버의 함수를 호출
  • 데이터 교환 형식
    • REST는 일반적으로 JSON 사용, 다른 포맷도 사용 가능
    • gRPC는 일반적으로 Protocol Buffer 사용, JSON 등 다른 포맷도 사용 가능
  • 클라이언트-서버 커플링
    • REST는 느슨한 결합으로, 클라이언트와 서버가 상대의 구현에 대해 알지 않아도 됨
    • gRPC는 긴밀한 결합, 클라이언트와 서버에서 동일한 proto 파일에 액세스할 수 있어야 함

profile
시스템 + 리눅스 + 클라우드

0개의 댓글