# gRPC (Go) > Protocol Buffers, layanan gRPC, streaming, interceptor, penanganan error, metadata - 22 pertanyaan wawancara - Mid-Level - [Pertanyaan Wawancara: Go](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara.md) ## 1. Apa itu gRPC? **Jawaban** gRPC adalah framework RPC (Remote Procedure Call) open-source yang dikembangkan oleh Google yang menggunakan HTTP/2 sebagai protokol transport dan Protocol Buffers sebagai format serialisasi default. Berbeda dengan REST yang menggunakan JSON dan HTTP/1.1, gRPC menawarkan performa yang lebih baik berkat format biner Protocol Buffers dan fitur lanjutan HTTP/2 (multiplexing, kompresi header, server push). gRPC banyak digunakan untuk komunikasi antar microservice karena secara native mendukung streaming dua arah, generasi kode client/server, dan tipe yang ketat. ## 2. Apa peran utama Protocol Buffers dalam gRPC? **Jawaban** Protocol Buffers (protobuf) adalah Interface Definition Language (IDL) dan format serialisasi biner yang digunakan secara default dalam gRPC. Ia memungkinkan pendefinisian struktur pesan dan layanan dalam file .proto, yang kemudian dikompilasi untuk menghasilkan kode client dan server secara otomatis dalam berbagai bahasa. Format biner protobuf 3 hingga 10 kali lebih ringkas daripada JSON dan menawarkan performa serialisasi/deserialisasi yang jauh lebih unggul (hingga 20 kali lebih cepat). Ini membuat gRPC sangat cocok untuk komunikasi frekuensi tinggi antar microservice. ## 3. Apa perbedaan antara panggilan gRPC Unary dan panggilan Server Streaming? **Jawaban** Panggilan Unary adalah tipe panggilan gRPC paling sederhana: client mengirim satu permintaan dan menerima satu respons, mirip dengan permintaan HTTP REST klasik. Panggilan Server Streaming memungkinkan client mengirim satu permintaan tetapi menerima aliran (stream) beberapa respons dari server. Misalnya, API notifikasi dapat menggunakan Server Streaming untuk mengirim beberapa pembaruan ke client tanpa client harus melakukan polling. Ini mengurangi latensi dan beban jaringan dibandingkan panggilan Unary berulang. ## 19 pertanyaan lagi tersedia - Package Go mana yang digunakan untuk membuat server gRPC? - Bagaimana cara mendefinisikan layanan gRPC dalam file .proto? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara Go lainnya - [Dasar-Dasar Go](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/go-basics.md): 25 pertanyaan, Junior - [Struktur Data Go](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/go-data-structures.md): 20 pertanyaan, Junior - [Interface Go](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/go-interfaces.md): 18 pertanyaan, Junior - [Penanganan Error](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/error-handling.md): 20 pertanyaan, Junior - [Dasar-Dasar Goroutine](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/goroutines-basics.md): 20 pertanyaan, Junior - [Channels](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/channels.md): 22 pertanyaan, Junior - [Go Modules](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/go-modules.md): 18 pertanyaan, Mid-Level - [Server HTTP](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/http-server.md): 24 pertanyaan, Mid-Level - [Klien HTTP](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/http-client.md): 18 pertanyaan, Mid-Level - [Enkoding JSON](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/json-encoding.md): 20 pertanyaan, Mid-Level - [Database/SQL](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/database-sql.md): 22 pertanyaan, Mid-Level - [Paket context](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/context-package.md): 20 pertanyaan, Mid-Level - [Testing](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/testing.md): 22 pertanyaan, Mid-Level - [Pola Concurrency](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/concurrency-patterns.md): 24 pertanyaan, Mid-Level - [Primitif Sinkronisasi](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/sync-primitives.md): 22 pertanyaan, Mid-Level - [Framework web Go](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/go-web-frameworks.md): 20 pertanyaan, Mid-Level - [Desain API REST](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/rest-api-design.md): 20 pertanyaan, Mid-Level - [Reflection](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/reflection.md): 20 pertanyaan, Senior - [Manajemen Memori](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/memory-management.md): 24 pertanyaan, Senior - [Optimasi Performa](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/performance-optimization.md): 22 pertanyaan, Senior - [Generics](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/generics.md): 20 pertanyaan, Senior - [Go Design Patterns](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/design-patterns.md): 24 pertanyaan, Senior - [Microservices](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/microservices.md): 24 pertanyaan, Senior - [Keamanan dan Autentikasi](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/security-authentication.md): 24 pertanyaan, Senior - [Docker & Containerization](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/docker-containerization.md): 20 pertanyaan, Senior - [Kubernetes Basics](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/kubernetes-basics.md): 22 pertanyaan, Senior - [Go Tingkat Lanjut](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/advanced-go.md): 20 pertanyaan, Senior - [Pengembangan CLI](https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/cli-development.md): 20 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/go/pertanyaan-wawancara/grpc