gRPC Protocol Buffer 문제 해결하기

 

안녕하세요, 요즘 gRPC에 관해서 열심히 공부하고 있습니다. 옛 버전과 달리 요즘 gRPC 플러그인이 달라진 것 같아서 효과적인(?) 방법을 찾아볼려고 합니다.
옛 버전과 현재 문서에 작성 되어 있는 방법과 비교하여서 작성해 보도록 하겠습니다. 공식 문서인 Google Protocol Buffers - Protocol Buffer Basics: GogRPC - Go Quick Start Regenerate gRPC code를 참고 하였습니다.
다양한 자료들을 참고 하였지만 gRPC와 관련되어서 편하게 변환할 수 있는 방법을 찾아보려고 하였지만 옛 버전을 사용하는 것이 더 좋을 것 같아서 옛버전을 사용하는 것을 추천 드립니다.

기존의(대부분의 예제에서 추천하는 방법) Go protobuf의 경우에는 아래와 같은 명령어를 통해서 Protobuf를 실행 시켜서 Go코드로 변환할 수 있었습니다.

protoc -I . order_managment.proto --go_out=plugins=grpc:.
--go_out: protoc-gen-go: plugins are not supported; use 'protoc --go-grpc_out=...' to generate gRPC

See https://grpc.io/docs/languages/go/quickstart/#regenerate-grpc-code for more information.

현재 상황에서 위와 같은 명령어를 사용하여서 Protobuf를 사용할 경우에는 동작이 안 되는 것을 확인할 수 있습니다.
protoc-gen-go와 관련되어서 plugin이 지원하지 않기 때문에 generate gRPC를 할 수 없다고 합니다.
그럼 어떻게 해야할까요?

해결 방법

$ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1

버전은 하위 버전이지만 지원되는 것을 찾기 위해서 많은 분들에게 물어본 결과 해답을 찾을 수 있게 되었습니다. protoc-gent-go 1.26 버전과 protoc-get-go-grpc 1.1 버전을 사용하는 것으로 해결 할 수 있게 되었습니다.

Discord Server Chating

참고한 글