Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 티스토리챌린지
- taint
- Spring Batch
- 달인막창
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- kotlin
- 자원부족
- 개성국밥
- 코루틴 빌더
- JanusWebRTCServer
- 깡돼후
- python
- JanusGateway
- PytestPluginManager
- Value too long for column
- mp4fpsmod
- 코루틴 컨텍스트
- preemption #
- tolerated
- k8s #kubernetes #쿠버네티스
- JanusWebRTCGateway
- VARCHAR (1)
- PersistenceContext
- pytest
- vfr video
- 겨울 부산
- terminal
- 오블완
- table not found
- JanusWebRTC
Archives
너와 나의 스토리
Protocol Buffers - 기본 본문
반응형
Protocol buffers: 구조화된 데이터를 직렬화하기 위한 메커니즘
-> 데이터 구조 한번 정의해 두면, 다양한 언어로 구조화된 데이터를 쉽게 읽고 쓸 수 있음
메시지 타입 정의
검색 요청 메시지 형식, 각 검색 요청에 쿼리 문자열, 관심 있는 특정 결과 페이지 및 페이지당 결과 수를 정의하기
( .proto 파일)
message SearchRequest{
required string query =1;
optional int32 page_number =2;
optional int32 result_per_page =3;
}
각 메시지 정의는 유니크한 숫자를 가진다. 한 번 사용된 메시지 타입은 바꿀 수 없다.
message field
- required: 반드시 하나여야 함
- optional: 0개나 1개 가질 수 있음
- repeated: 여러 번 반복될 수 있음. 반복된 값들의 순서는 보존됨
Reserved Fields
어떤 필드를 제거하거나 주석 처리하고 나중에 사용자가 필드 번호를 재사용할 수 있다. 이런 경우 데이터 손상, 개인 정보 보호 버그 등의 문제가 생길 수 있다. (동일한 .proto의 이전 버전을 로드하면)
이런 일이 발생하지 않도록 하는 하나의 방법은 삭제할 필드의 필드 번호를 reserved하는 것이다. 만약 미래에 사용자가 필드 지정자를 컴파일하려고 하면 protocol buffer 컴파일러가 항의할 것이다.
message Foo{
reserved 2, 15, 9 to 11;
reserved "foo", "bar";
}
enum 키워드
열거, 목록을 뜻하는 enumeration을 의미
#include <stdio.h>
enum Number {
one = 1,
two = 2,
three = 3,
four = 4
};
int main()
{
enum Number num; // 열거형 변수 선언
num = two; // 열거형 값 할당
printf("%d\n",num);
return 0;
}
출처: protobuf - https://developers.google.com/protocol-buffers/docs/proto#required_warning
출처: enum - https://dojang.io/mod/page/view.php?id=480
반응형
'Protocol Buffer' 카테고리의 다른 글
Windows에 Protoc / Protobuf 설치 (0) | 2019.08.22 |
---|---|
python으로 gRPC / tools 설치 및 작동시키기 (0) | 2019.08.09 |
Comments