Open DrMaemi opened 3 days ago
$ TREE . . |-- pom.xml `-- src |-- main | |-- java | | `-- org | | `-- example | | |-- Main.java | | |-- proto | | | |-- AddressBook.java | | | |-- AddressBookOrBuilder.java | | | |-- AddressBookProtos.java | | | |-- Person.java | | | `-- PersonOrBuilder.java | | `-- protobuf | | `-- addressbook.proto | `-- resources `-- test `-- java
// Declaration syntax = "proto3"; package tutorial;
import "google/protobuf/timestamp.proto";
// Java declaration option java_multiple_files = true; option java_package = "org.example.proto"; option java_outer_classname = "AddressBookProtos";
// csharp, go, ... declarations
// Messages message Person { string name = 1; int32 id = 2; string email = 3;
enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; }
message PhoneNumber { string number = 1; PhoneType type = 2; }
repeated PhoneNumber phones = 4; google.protobuf.Timestamp last_updated = 5; }
message AddressBook { repeated Person people = 1; }
## 1.2. OS 에 맞는 protoc 설치 (다운로드, 압축해제, 환경변수 등록) - ["Downloads," *protobuf.dev*](https://protobuf.dev/downloads/) ## 1.3. protoc 명령어로 컴파일 ```bash SRC_DIR=./src/main/java PACKAGE_DIR=$SRC_DIR/org/example protoc -I=$SRC_DIR --java_out=$SRC_DIR $PACKAGE_DIR/protobuf/*.proto
1. protoc(Protocol Buffer Compiler) 를 이용한 사용법
1.1. addressbook.proto 작성
import "google/protobuf/timestamp.proto";
// Java declaration option java_multiple_files = true; option java_package = "org.example.proto"; option java_outer_classname = "AddressBookProtos";
// csharp, go, ... declarations
// Messages message Person { string name = 1; int32 id = 2; string email = 3;
enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; }
message PhoneNumber { string number = 1; PhoneType type = 2; }
repeated PhoneNumber phones = 4; google.protobuf.Timestamp last_updated = 5; }
message AddressBook { repeated Person people = 1; }
A. 참조