Protocol Buffer와 인코딩/디코딩 그리고 gRPC 내부 통신 동작 원리
·
gRPC
gRPC는 JSON이나 XML과 같은 텍스트 형식을 사용하는 대신 Protocol Buffer 기반 바이너리 프로토콜을 사용하므로 훨씬 프로세스 간 통신에 효율적이다. 이러한 점 외에도 여러 가지 장점들이 존재하는데, 개발자로써 그렇구나 하고 넘어가는 것보다는정의한 .proto 파일은 어떻게 직렬화되고, gRPC는 이를 내부적으로 어떻게 처리할까?라는 궁금증들을 해소하고 싶었다. 그래서 이번 글에서는 단순히 사용법이 아니라, 좀 더 들어가서 내부적으로 저수준의 동작 원리들에 대해 공부한 내용들을 기록하고자 한다. Protocol Buffer프로토콜 버퍼(Protocol Buffer = protobuf)란 구조화된 데이터를 직렬화하고자 언어에 구애 받지 않고플랫폼 중립적이며 확장 가능한 메커니즘인 데이터 ..
gRPC 통신 구현해보기 (서버 : Java / 클라이언트 : Go)
·
gRPC
환경 구성gRPC의 원리를 이해하고 실습하기 위해 아래와 같은 방식으로 진행하였습니다. gRPC 클라이언트에 해당하는 Go 언어 기반의 클라이언트의 경우,특별한 웹 프레임워크(ex. Gin)을 사용하지 않고 순수하게 Go 언어의 기본 라이브러리와 gRPC 패키지를 사용해 코드를 작성하였습니다.Go 언어를 사용한 이유는 기본적으로 다양한 프로그래밍 언어를 지원하기 때문에 Java로만 gRPC 서버와 클라이언트를 구성하기 보다는 다른 언어로도 통신 과정을 구현해보고 싶었습니다. (사실은 Go 언어와 친해지고 싶었음)  그리고 Java 기반의 gRPC 서버는 Spring Boot와 함께 환경을 구축하였습니다.예제로 보고있는 교재처럼 별도의 프레임워크 없이 순수 Gradle Project로 gRPC 서버를 구성..
RPC 통신과 gRPC
·
gRPC
gRPC 시작에서 운영까지 | 카순 인드라시리 - 교보문고gRPC 시작에서 운영까지 | 클라우드 및 마이크로서비스 아키텍처의 출현으로 오늘날 애플리케이션은 프로세스간 통신 기술을 사용해 연결되며, gRPC는 가장 널리 사용되는 효율적인 통신 기술 중product.kyobobook.co.kr위 책의 내용과 별도로 공부한 내용들을 정리하고자 작성한 글입니다.  IPC프로세스들은 기본적으로 상호독립적이다.메모리를 공유하지 않기 때문에 각자 자신의 일만 수행하며 서로 간섭을 하지 않는다.그러나 필요에 따라서 프로세스 간 정보를 교환해야 하는데,별도의 수단을 통해서 프로세스 간 통신을 하는 방법론을 통칭하여 IPC(Inter Process Communication)라고 한다.   RPC위와 같은 프로세스 간 통신..