Protobuf 사용 예제

Seong Kim·2022년 12월 23일

protobuf로 도메인 자료형 정의하기

syntax = "proto3";

package log.v1;

option go_package = "github.com/SeongUgKim/api/log_v1";

message Record {
  bytes value = 1;
  uint64 offset = 2;
}
  • 최신 버전인 proto3를 사용한다고 명시
  • package명 명시
    - 이 이름은 생성된 Go 코드의 package명으로 쓰이며, 같은 이름을 가진 메시지 자료형 사이의 충돌을 막아준다.
  • protobuf의 메시지는 Go의 구조체와 대응한다.
  • protobuf에서는 repeated 키워드를 사용해서 자료형의 slice를 정의 한다.
    - repeated Record records는 record field가 Go 코드로는 []Record 자료형이라는 의미이다.

Protobuf 컴파일하기

protoc api/v1/*.proto \
--go_out=. \
--go_opt=paths=source_relative \
--proto_path=.

0개의 댓글