# gRPC (Go) > Protocol Buffers, сервіси gRPC, streaming, interceptor'и, обробка помилок, metadata - 22 питань зі співбесід - Mid-Level - [Питання зі співбесід: Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy.md) ## 1. Що таке gRPC? **Відповідь** gRPC — це RPC-фреймворк (Remote Procedure Call) з відкритим кодом, розроблений Google, який використовує HTTP/2 як транспортний протокол і Protocol Buffers як стандартний формат серіалізації. На відміну від REST, що використовує JSON і HTTP/1.1, gRPC забезпечує кращу продуктивність завдяки бінарному формату Protocol Buffers і розширеним можливостям HTTP/2 (multiplexing, стиснення заголовків, server push). gRPC широко використовується для комунікації між мікросервісами, оскільки нативно підтримує двонапрямлений streaming, генерацію коду клієнта/сервера та сувору типізацію. ## 2. Яка основна роль Protocol Buffers у gRPC? **Відповідь** Protocol Buffers (protobuf) — це мова визначення інтерфейсу (IDL) і бінарний формат серіалізації, що використовується за замовчуванням у gRPC. Він дозволяє визначати структуру повідомлень і сервісів у файлах .proto, які потім компілюються для автоматичної генерації коду клієнта та сервера різними мовами. Бінарний формат protobuf у 3–10 разів компактніший за JSON і забезпечує значно вищу продуктивність серіалізації/десеріалізації (до 20 разів швидше). Це робить gRPC особливо придатним для високочастотної комунікації між мікросервісами. ## 3. Яка різниця між викликом gRPC Unary і викликом Server Streaming? **Відповідь** Виклик Unary — це найпростіший тип виклику gRPC: клієнт надсилає один запит і отримує одну відповідь, подібно до класичного HTTP REST-запиту. Виклик Server Streaming дозволяє клієнту надіслати один запит, але отримати потік (stream) із кількох відповідей від сервера. Наприклад, API сповіщень може використовувати Server Streaming, щоб надсилати клієнту кілька оновлень без необхідності опитування (polling). Це зменшує затримку та мережеве навантаження порівняно з повторюваними викликами Unary. ## Ще 19 доступних питань - Який Go-пакет використовується для створення сервера gRPC? - Як визначити сервіс gRPC у файлі .proto? Зареєструйся безкоштовно: https://sharpskill.dev/uk/login ## Інші теми співбесід Go - [Основи Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-basics.md): 25 запитань, Junior - [Структури даних Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-data-structures.md): 20 запитань, Junior - [Інтерфейси Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-interfaces.md): 18 запитань, Junior - [Обробка помилок](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/error-handling.md): 20 запитань, Junior - [Основи goroutines](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/goroutines-basics.md): 20 запитань, Junior - [Channels](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/channels.md): 22 запитань, Junior - [Go Modules](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-modules.md): 18 запитань, Mid-Level - [HTTP-сервер](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/http-server.md): 24 запитань, Mid-Level - [HTTP-клієнт](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/http-client.md): 18 запитань, Mid-Level - [Кодування JSON](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/json-encoding.md): 20 запитань, Mid-Level - [Database/SQL](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/database-sql.md): 22 запитань, Mid-Level - [Пакет context](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/context-package.md): 20 запитань, Mid-Level - [Testing](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/testing.md): 22 запитань, Mid-Level - [Патерни конкурентності](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/concurrency-patterns.md): 24 запитань, Mid-Level - [Примітиви синхронізації](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/sync-primitives.md): 22 запитань, Mid-Level - [Веб-фреймворки Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-web-frameworks.md): 20 запитань, Mid-Level - [Проєктування REST API](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/rest-api-design.md): 20 запитань, Mid-Level - [Reflection](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/reflection.md): 20 запитань, Senior - [Керування пам'яттю](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/memory-management.md): 24 запитань, Senior - [Оптимізація продуктивності](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/performance-optimization.md): 22 запитань, Senior - [Generics](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/generics.md): 20 запитань, Senior - [Go Design Patterns](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/design-patterns.md): 24 запитань, Senior - [Microservices](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/microservices.md): 24 запитань, Senior - [Безпека та автентифікація](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/security-authentication.md): 24 запитань, Senior - [Docker & Containerization](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/docker-containerization.md): 20 запитань, Senior - [Kubernetes Basics](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/kubernetes-basics.md): 22 запитань, Senior - [Просунутий Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/advanced-go.md): 20 запитань, Senior - [Розробка CLI](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/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/uk/technologies/go/pytannia-spivbesidy/grpc