Go에서 gRPC 환경 구축하기

 

안녕하세요, 오늘은 gRPC를 Go에서 다루기 위해서 필요한 각종 모듈들을 설치하기 위한 일종의 가이드입니다.
저도 한 번씩 새로운 개발 환경을 구축하다 보면 애를 먹는 경우도 있고, 공부를 중간에 포기하는 경우 생각이 나지 않아서 기록으로 남겨두기 위해서 작성해 봅니다.
gRPC - Go Quick startGoogle Developer - Protocol Buffers를 참고하여 작성하였습니다.

Prerequisites

  • Go가 설치되어 있어야 합니다.
  • Protocol Buffer Compiler가 설치되어 있어야 합니다. Protoc 사용하며 버전은 최신 버전인 버전 3을 사용합니다.
  • 프로토콜 컴파일러용 Go 패키지가 설치 되어 있어야 합니다.

Installtion

Install Go

golang.org - Download and Install에서 Golang를 설치하는 방법에 대한 가이드가 있습니다.
macOS의 경우에는 두가지 방법이 있습니다. Homebrew를 통한 설치, 공식 홈페이지에서 제공하는 .pkg를 통한 설치가 있습니다.

Install Protocol Buffer Compiler

macOS의 경우는 Homebrew를 통해서 손쉽게 설치할 수 있습니다.

# Homebrew가 설치 되어 있지 않은 경우 / 설치 되어 있는 경우에는 무시 하셔도 됩니다.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ brew install protobuf

위와 같은 명령어로 간단하게 protobuf를 설치할 수 있습니다.

Install Go gRPC Package

$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@lastest
# 추후 프로젝트 생성 시 필요한 패키지입니다.
$ go get -u google.golang.org/grpc

저는 최신 버전의 패키지를 다운 받았습니다, 하지만 개인적으로 원하시는 버전이 있으시다면 다운 받으셔도 됩니다.

예제를 통한 gRPC 체험해 보기

터미널에서 git clone을 통해서 예제 파일이 들어 있는 소스코드를 가지고 옵니다.

$ git clone -b v1.41.0 https://github.com/grpc/grpc-go

예제 디렉토리로 이동합니다.

$ cd grpc-go/examples/helloworld

예제 실행하기

예제 서버를 실행 시킵니다.

$ go run greeter_server/main.go
2021/11/12 17:45:34 server listening at [::]:50051
2021/11/12 17:46:27 Received: world

다른 터미널에서 클라이언트 측의 코드를 실행 시킵니다.

$ go run greeter_client/main.go
2021/11/12 17:46:27 Greeting: Hello world

위처럼 정상적으로 작동한다면 gRPC의 서버와 클라이언트를 정상적으로 작동 시켜보게 되었습니다.

참고한 글