gRPC 필수 도구 설치 가이드

@John Roh· December 13, 2024 · 3 min read

gRPC 필수 도구 설치 가이드

1. Protocol Buffers 컴파일러 (protoc)

설치 파일 다운로드

운영체제별 설치 방법

Windows

  1. zip 파일 다운로드 및 압축 해제
  2. bin 디렉토리를 시스템 환경 변수 PATH에 추가
setx PATH "%PATH%;C:\path\to\protoc\bin"

macOS

# Homebrew 사용
brew install protobuf

# 또는 수동 설치
# 1. zip 파일 다운로드
# 2. 압축 해제
# 3. PATH 설정
echo 'export PATH=$PATH:/path/to/protoc/bin' >> ~/.zshrc
source ~/.zshrc

Linux

# apt 사용
sudo apt-get update
sudo apt-get install protobuf-compiler

# 또는 수동 설치
# 1. zip 파일 다운로드
# 2. 압축 해제
# 3. PATH 설정
echo 'export PATH=$PATH:/path/to/protoc/bin' >> ~/.bashrc
source ~/.bashrc

설치 확인

protoc --version
# libprotoc x.x.x (버전 정보 출력)

2. Go Protocol Buffers 플러그인 (protoc-gen-go)

설치 방법

# 최신 버전 설치
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

# 특정 버전 설치 (예: v1.28)
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28

설치 확인

which protoc-gen-go
# Go bin 경로 출력 (예: /home/user/go/bin/protoc-gen-go)

3. Go gRPC 플러그인 (protoc-gen-go-grpc)

설치 방법

# 최신 버전 설치
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

# 특정 버전 설치
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2

설치 확인

which protoc-gen-go-grpc
# Go bin 경로 출력

PATH 설정 확인

Go bin 디렉토리 PATH 추가

Windows

setx PATH "%PATH%;%GOPATH%\bin"

Linux/macOS

# ~/.bashrc 또는 ~/.zshrc에 추가
export PATH=$PATH:$(go env GOPATH)/bin

설정 확인

# 모든 필수 도구 설치 확인
protoc --version
which protoc-gen-go
which protoc-gen-go-grpc

프로토 파일 컴파일 테스트

테스트 프로토 파일 생성

// test.proto
syntax = "proto3";

package test;

option go_package = "example/test";

message Test {
  string name = 1;
}

컴파일 테스트

protoc --go_out=. --go_opt=paths=source_relative \
    --go-grpc_out=. --go-grpc_opt=paths=source_relative \
    test.proto

트러블슈팅

일반적인 문제 해결

  1. protoc-gen-go: program not found
# Go bin 디렉토리가 PATH에 있는지 확인
echo $PATH | grep "go/bin"

# 누락된 경우 PATH 추가
export PATH=$PATH:$(go env GOPATH)/bin
  1. permission denied
# 실행 권한 추가
chmod +x $(which protoc)
chmod +x $(which protoc-gen-go)
chmod +x $(which protoc-gen-go-grpc)
  1. missing go_package option
// proto 파일에 go_package 옵션 추가
option go_package = "example/package";

버전 호환성

권장 버전 조합

  • protoc: 3.21.0 이상
  • protoc-gen-go: v1.28.0 이상
  • protoc-gen-go-grpc: v1.2.0 이상

버전 확인 명령어

# 모든 컴포넌트 버전 확인
protoc --version
protoc-gen-go --version
go list -m google.golang.org/grpc

gRPC 참고 링크

protoc

https://github.com/protocolbuffers/protobuf/releases

protoc-gen-go

https://github.com/protocolbuffers/protobuf-go/releases

protoc-gen-go-grpc

https://pkg.go.dev/google.golang.org/grpc/cmd/protoc-gen-go-grpc

@John Roh
Exploring innovative solutions in software development, AI, and cutting-edge technologies.
© The SoftKR Log - Sharing insights on development and innovation.