728x90

gRPC vs. REST

  gRPC API REST API
무엇인가요? 원격 프로시저 호출(RPC) 클라이언트-서버 통신 모델을 기반으로 API를 만들고 사용하는 시스템입니다.  클라이언트와 서버 간의 정형 데이터 교환을 정의하는 일련의 규칙입니다.
설계 접근 방식 서비스 지향 설계. 클라이언트는 서버에 서버 리소스에 영향을 줄 수도 있고 아닐 수도 있는 서비스 또는 기능을 수행해 줄 것을 요청합니다. 엔터티 지향 설계. 클라이언트에서 서버에 리소스의 생성, 공유 또는 수정을 요청합니다.
통신 모델 단방향, 단일 서버-다중 클라이언트, 단일 클라이언트-다중 서버, 다중 클라이언트-다중 서버 등 다양한 옵션이 있습니다. 단방향. 단일 클라이언트가 단일 서버와 통신합니다.
구현 작동하려면 클라이언트 측과 서버 측 모두에 gRPC 소프트웨어가 필요합니다. 공통 소프트웨어 없이 클라이언트 측과 서버 측에서 다양한 형식으로 구현할 수 있습니다.
데이터 액세스 서비스(기능) 직접 호출 리소스를 정의하는 URL 형태의 여러 엔드포인트
반환된 데이터 Protocol Buffer 파일에 정의된 서비스의 고정된 반환 유형으로 반환됩니다. 서버에서 정의하는 고정 구조(일반적으로 JSON)로 반환됩니다.
클라이언트-서버 커플링 긴밀하게 결합됩니다. 클라이언트와 서버 모두에 데이터 형식을 정의하는 동일한 Protocol Buffer 파일이 필요합니다. 느슨하게 결합됩니다. 클라이언트와 서버는 내부 세부 정보를 인식하지 못합니다.
자동 코드 생성 기본 제공 기능 서드 파티 도구가 필요합니다.
양방향 스트리밍 있음 없음
가장 적합한 용도 고성능 또는 데이터 사용량이 많은 마이크로서비스 아키텍처 리소스가 잘 정의되어 있는 단순한 데이터 소스

REST는 웹 서비스 및 마이크로서비스 아키텍처에 가장 많이 이용됩니다. REST는 간단한 구현과 데이터 구조 매핑, 가독성 및 유연성이 장점입니다. 또한 개념이나 REST API 구현은 어렵지 않습니다.

REST API의 일반적인 사례

  • 웹 기반 아키텍처
  • 외부 사용자가 쉽게 이해할 수 있는 Open API
  • 간단한 데이터 통신

 gRPC는 분산된 데이터 센터에서 마이크로서비스 아키텍처를 위한 고성능 API를 구현하도록 설계되었습니다. 실시간 스트리밍과 대규모 데이터 로드가 필요한 내부 시스템에 더 적합한 gRPC는 API의 인터페이스가 변경될 가능성이 낮고, 여러 프로그래밍 언어로 구성된 마이크로서비스 아키텍처에도 적합합니다.

gRPC API는 일반적인 사례

  • 고성능 시스템
  • 많은 양의 데이터 로드
  • 실시간 또는 스트리밍 애플리케이

gRPC (source : https://grpc.io/docs/what-is-grpc/introduction/ )

 

원문 : gRPC와 REST 비교 - 애플리케이션 설계의 차이 - AWS (amazon.com)

 

<참고자료>

 

<관련 포스팅>

 

728x90
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
반응형