[gRPC] 2. gRPC 실습
학습 목표
protobuf 작성 방법
- 기본적인 타입에 대한 학습
- 주석 작성
VS Code 플러그인(protobuf)
Go로 컴파일할 수 있는 protoc 설치
시작
VS Code Extension을 설치합니다.
Clang-Format
vscode-proto3
proto 파일 작성법
syntax = "proto3";
가장 위에 proto 버전을 작성합니다.
pb 만들기
protoc 다운
여기에서 protoc
를 다운 받는다.
그리고 bin폴더를 시스템 환경변수에 등록한다.
go get
go get -u google.golang.org/protobuf/cmd/protoc-gen-go
go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc
proto 작성
syntax = "proto3";
package helloworld;
option go_package = "study-grpc/proto/helloworld";
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
이렇게 package를 지정할 수 있습니다.
pb 만들기
protoc --go_out=../pb --go_opt=paths=source_relative --go-grpc_out=../pb --go-grpc_opt=paths=source_relative helloworld.proto
이렇게 할 수 있는데 helloworld.proto 파일이 study/proto 밑에 있다면
protoc를 하려면 study/proto로 가야합니다.
강의의 경우
processor_message.proto
syntax = "proto3";
option go_package = "study-grpc/proto";
message CPU{
// Brand of the CPU
string brand = 1;
// Name of the Name
string name = 2;
uint32 number_cores = 3;
uint32 number_threads = 4;
double min_ghz = 5;
double max_ghz = 6;
}
protoc --go_out=../pb --go_opt=paths=source_relative --go-grpc_out=../pb --go-grpc_opt=paths=source_relative processor_message.proto
요로케하면 된다.
여담으로
protoc --go_out=../pb --go_opt=paths=source_relative --go-grpc_out=../pb --go-grpc_opt=paths=source_relative *
*을 주면 모든 파일 다 하게 된다.
여기서 궁금한거
--go_out
옵션은 pb파일 출력하는 곳인건 알겠다.
--go_opt=paths=source_relative
는 뭐냐? 상대경로 기반으로 저장하겠다는 선언이다.