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와 REST 비교 - 애플리케이션 설계의 차이 - AWS (amazon.com)
<참고자료>
<관련 포스팅>
728x90
'Programming' 카테고리의 다른 글
[Docker] Ubuntu에 Docker 설치 (0) | 2024.04.18 |
---|---|
[Architecture] Monolith vs. Microservice (0) | 2024.02.23 |
[Nocode] Amazon Honeycode - 코드 없이 웹 및 모바일 앱 만들기 (0) | 2022.05.11 |
대표적인 노코드·로우코드 4가지 솔루션 : 코딩 없이 앱 만들기? (0) | 2022.05.11 |
Markdown Code 블록 (0) | 2021.08.12 |
최근댓글