
gRPC
Protocol Buffers, gRPC 서비스, 스트리밍, interceptor, 오류 처리, 메타데이터
1gRPC란 무엇입니까?
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는 양방향 스트리밍, 클라이언트/서버 코드 생성, 강한 타입 지정을 기본적으로 지원하기 때문에 마이크로서비스 간 통신에 널리 사용됩니다.
2gRPC에서 Protocol Buffers의 주요 역할은 무엇입니까?
gRPC에서 Protocol Buffers의 주요 역할은 무엇입니까?
답변
Protocol Buffers(protobuf)는 gRPC에서 기본적으로 사용되는 인터페이스 정의 언어(IDL)이자 바이너리 직렬화 형식입니다. .proto 파일에서 메시지와 서비스의 구조를 정의할 수 있으며, 이를 컴파일하여 여러 언어의 클라이언트 및 서버 코드를 자동으로 생성합니다. protobuf의 바이너리 형식은 JSON보다 3~10배 더 작고 직렬화/역직렬화 성능이 현저히 우수합니다(최대 20배 빠름). 이로 인해 gRPC는 마이크로서비스 간 고빈도 통신에 특히 적합합니다.
3gRPC Unary 호출과 Server Streaming 호출의 차이점은 무엇입니까?
gRPC Unary 호출과 Server Streaming 호출의 차이점은 무엇입니까?
답변
Unary 호출은 가장 단순한 gRPC 호출 유형으로, 클라이언트가 하나의 요청을 보내고 하나의 응답을 받으며, 이는 일반적인 HTTP REST 요청과 유사합니다. Server Streaming 호출은 클라이언트가 하나의 요청을 보내지만 서버로부터 여러 응답의 스트림을 받을 수 있게 합니다. 예를 들어 알림 API는 Server Streaming을 사용하여 클라이언트가 폴링하지 않아도 여러 업데이트를 전송할 수 있습니다. 이는 반복적인 Unary 호출에 비해 지연 시간과 네트워크 부하를 줄입니다.
gRPC 서버를 생성하는 데 사용되는 Go 패키지는 무엇입니까?
.proto 파일에서 gRPC 서비스를 어떻게 정의합니까?
+19 면접 질문