[gRPC] gRPC 프로토콜 버퍼란?
- gRPC
- 2022. 3. 17. 18:23
- gRPC 시작에서 운영까지 - OREILLY
- 오늘은 gRPC에서 필수 요소인 프로토콜 버퍼에 대해서 알아보도록 하겠습니다.
- 구조화된 데이터를 직렬화할 수 있는 오픈소스 소프트웨어 입니다.
- 2008년 구글에 의해 공개 되었습니다.
- 보통 데이터 저장이나 통신용 프로그램에 주로 사용되며, 프로토버프(protobuf)라고도 불립니다.
- gRPC는 프로토콜 버퍼를 IDL로 사용해 서비스 인터페이스를 정의합니다.
- 이 프로토콜 버퍼는 언어에 구애받지 않고 플랫폼 중립적이며 확장 가능한 메커니즘으로 구조화된 데이터를 직렬화하고자 사용됩니다.
// ProductInfo.proto
syntax = "proto3"; ------1
package ecommerce; ------2
service ProductInfo{ --------3
rpc addProduct(Product) returns (ProductID); -------4
rpc getProduct(ProductID) returns (Product); -------5
}
message Product { --------6
string id = 1; --------7
string name = 2;
string description = 3;
}
message ProductID{ --------8
string value = 1;
}
- 위의 프로토콜 버퍼의 각 번호별 정의는 다음과 같습니다.
- 서비스 정의는 사용하는 프로토콜 버퍼의 버전(proto3) 지정으로 시작합니다. (default = proto2)
- 패키지 이름은 프로토콜 메시지 타입 사이의 이름 충돌을 방지하고자 사용하며, 코드 생성에도 사용합니다.
- gRPC 서비스의 서비스 인터페이스를 정의합니다.
- 제품 정보를 추가하고 제품 ID를 응답으로 반환하는 원격 메서드입니다.
- 제품 ID를 기반으로 제품 정보를 가져오는 원격 메서드입니다.
- Product 정보의 메시지 형식/타입을 정의합니다.
- 메시지 바이너리 형식에서 필드를 식별하는 데 사용하는 고유 필드 번호로, 제품 ID에 대한 필드 입니다.
- 제품 식별 번호용 사용자 정의 타입 입니다.
728x90
'gRPC' 카테고리의 다른 글
[C#] .NET FileUpload gPRC Service Poc (0) | 2023.02.02 |
---|---|
[C#] .NET의 gRPC 인터셉터 - 클라이언트 측 인터셉터 (0) | 2022.04.27 |
[C#] .NET의 gRPC 서버 측 인터셉터 (0) | 2022.04.22 |
[gRPC] gRPC 장점 (0) | 2022.03.17 |
[gRPC] gPRC (Google Remote Procedure Calls) 란? (1) | 2022.03.15 |
이 글을 공유하기