# gRPC (Go) > Protocol Buffers, gRPC 서비스, 스트리밍, interceptor, 오류 처리, 메타데이터 - 22 면접 질문 - Mid-Level - [면접 질문: Go](https://sharpskill.dev/ko/technologies/go/interview-questions.md) ## 1. gRPC란 무엇입니까? **답변** gRPC는 Google이 개발한 오픈 소스 RPC(Remote Procedure Call) 프레임워크로, 전송 프로토콜로 HTTP/2를, 기본 직렬화 형식으로 Protocol Buffers를 사용합니다. JSON과 HTTP/1.1을 사용하는 REST와 달리, gRPC는 Protocol Buffers의 바이너리 형식과 HTTP/2의 고급 기능(multiplexing, 헤더 압축, server push) 덕분에 더 나은 성능을 제공합니다. gRPC는 양방향 스트리밍, 클라이언트/서버 코드 생성, 강한 타입 지정을 기본적으로 지원하기 때문에 마이크로서비스 간 통신에 널리 사용됩니다. ## 2. gRPC에서 Protocol Buffers의 주요 역할은 무엇입니까? **답변** Protocol Buffers(protobuf)는 gRPC에서 기본적으로 사용되는 인터페이스 정의 언어(IDL)이자 바이너리 직렬화 형식입니다. .proto 파일에서 메시지와 서비스의 구조를 정의할 수 있으며, 이를 컴파일하여 여러 언어의 클라이언트 및 서버 코드를 자동으로 생성합니다. protobuf의 바이너리 형식은 JSON보다 3~10배 더 작고 직렬화/역직렬화 성능이 현저히 우수합니다(최대 20배 빠름). 이로 인해 gRPC는 마이크로서비스 간 고빈도 통신에 특히 적합합니다. ## 3. gRPC Unary 호출과 Server Streaming 호출의 차이점은 무엇입니까? **답변** Unary 호출은 가장 단순한 gRPC 호출 유형으로, 클라이언트가 하나의 요청을 보내고 하나의 응답을 받으며, 이는 일반적인 HTTP REST 요청과 유사합니다. Server Streaming 호출은 클라이언트가 하나의 요청을 보내지만 서버로부터 여러 응답의 스트림을 받을 수 있게 합니다. 예를 들어 알림 API는 Server Streaming을 사용하여 클라이언트가 폴링하지 않아도 여러 업데이트를 전송할 수 있습니다. 이는 반복적인 Unary 호출에 비해 지연 시간과 네트워크 부하를 줄입니다. ## 19개 추가 질문 이용 가능 - gRPC 서버를 생성하는 데 사용되는 Go 패키지는 무엇입니까? - .proto 파일에서 gRPC 서비스를 어떻게 정의합니까? 무료로 가입하기: https://sharpskill.dev/ko/login ## 기타 Go 면접 주제 - [Go 기초](https://sharpskill.dev/ko/technologies/go/interview-questions/go-basics.md): 25개 질문, Junior - [Go 데이터 구조](https://sharpskill.dev/ko/technologies/go/interview-questions/go-data-structures.md): 20개 질문, Junior - [Go 인터페이스](https://sharpskill.dev/ko/technologies/go/interview-questions/go-interfaces.md): 18개 질문, Junior - [에러 처리](https://sharpskill.dev/ko/technologies/go/interview-questions/error-handling.md): 20개 질문, Junior - [Goroutine 기초](https://sharpskill.dev/ko/technologies/go/interview-questions/goroutines-basics.md): 20개 질문, Junior - [Channels](https://sharpskill.dev/ko/technologies/go/interview-questions/channels.md): 22개 질문, Junior - [Go Modules](https://sharpskill.dev/ko/technologies/go/interview-questions/go-modules.md): 18개 질문, Mid-Level - [HTTP 서버](https://sharpskill.dev/ko/technologies/go/interview-questions/http-server.md): 24개 질문, Mid-Level - [HTTP 클라이언트](https://sharpskill.dev/ko/technologies/go/interview-questions/http-client.md): 18개 질문, Mid-Level - [JSON 인코딩](https://sharpskill.dev/ko/technologies/go/interview-questions/json-encoding.md): 20개 질문, Mid-Level - [Database/SQL](https://sharpskill.dev/ko/technologies/go/interview-questions/database-sql.md): 22개 질문, Mid-Level - [context 패키지](https://sharpskill.dev/ko/technologies/go/interview-questions/context-package.md): 20개 질문, Mid-Level - [Testing](https://sharpskill.dev/ko/technologies/go/interview-questions/testing.md): 22개 질문, Mid-Level - [동시성 패턴](https://sharpskill.dev/ko/technologies/go/interview-questions/concurrency-patterns.md): 24개 질문, Mid-Level - [동기화 프리미티브](https://sharpskill.dev/ko/technologies/go/interview-questions/sync-primitives.md): 22개 질문, Mid-Level - [Go 웹 프레임워크](https://sharpskill.dev/ko/technologies/go/interview-questions/go-web-frameworks.md): 20개 질문, Mid-Level - [REST API 설계](https://sharpskill.dev/ko/technologies/go/interview-questions/rest-api-design.md): 20개 질문, Mid-Level - [Reflection](https://sharpskill.dev/ko/technologies/go/interview-questions/reflection.md): 20개 질문, Senior - [메모리 관리](https://sharpskill.dev/ko/technologies/go/interview-questions/memory-management.md): 24개 질문, Senior - [성능 최적화](https://sharpskill.dev/ko/technologies/go/interview-questions/performance-optimization.md): 22개 질문, Senior - [Generics](https://sharpskill.dev/ko/technologies/go/interview-questions/generics.md): 20개 질문, Senior - [Go Design Patterns](https://sharpskill.dev/ko/technologies/go/interview-questions/design-patterns.md): 24개 질문, Senior - [Microservices](https://sharpskill.dev/ko/technologies/go/interview-questions/microservices.md): 24개 질문, Senior - [보안 및 인증](https://sharpskill.dev/ko/technologies/go/interview-questions/security-authentication.md): 24개 질문, Senior - [Docker & Containerization](https://sharpskill.dev/ko/technologies/go/interview-questions/docker-containerization.md): 20개 질문, Senior - [Kubernetes Basics](https://sharpskill.dev/ko/technologies/go/interview-questions/kubernetes-basics.md): 22개 질문, Senior - [고급 Go](https://sharpskill.dev/ko/technologies/go/interview-questions/advanced-go.md): 20개 질문, Senior - [CLI 개발](https://sharpskill.dev/ko/technologies/go/interview-questions/cli-development.md): 20개 질문, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/ko/technologies/go/interview-questions/grpc