1. gRPC란 무엇인가?

**gRPC(Google Remote Procedure Call)**는 구글에서 개발한 오픈소스 RPC(Remote Procedure Call) 프레임워크로서, HTTP/2 프로토콜을 기반으로 높은 성능, 스트리밍, 양방향 통신 등을 지원합니다. Protobuf(Protocol Buffers)라는 IDL(Interface Definition Language)를 사용하여 직렬화/역직렬화 성능이 뛰어나고, 다양한 언어에서 클라이언트/서버를 작성할 수 있다는 장점이 있습니다.

1.1 Protocol Buffers

**Protocol Buffers(프로토콜 버퍼)**는 구글에서 개발한 언어 중립적, 플랫폼 중립적 데이터 직렬화/역직렬화 방식입니다. .proto라는 IDL(Interface Definition Language) 파일에 메시지 구조를 정의하고, 해당 파일을 컴파일하여 언어별 코드를 생성해 사용합니다.

2. gRPC 구성

2.1 .proto 파일

syntax = "proto3"; // messaage type 정의

package example;
message Person {
    string name = 1;
    int32 age = 2;
}

2.2 _pb.go 파일

Protobuf 메시지 정의 및 직렬화 관련 코드를 포함합니다.

2.3 _grpc.pb.go 파일

gRPC 서비스 관련 코드를 포함합니다.