본문 바로가기

반응형

Tech/gRPC

(3)
[gRPC] gRPC - Java 이전의 글들에서는 gRPC 의 기본 개념과 gRPC 에서 사용하는 proto buffer 와 이를 정의하는 proto file 등에 대해서 정리했다. 이번에는 gRPC 를 실제 프로그래밍 언어에서 사용하는 방법을 정리해보려 한다.grpc 는 Java, Go, Kotlin, C++, Dart, Node, Python, Ruby 등등 다양한 언어를 지원한다. 그 중에서 Java 로 gRPC 를 사용하는 법, 그리고 Java 와 많이 사용되는 웹 프레임워크인 스프링에서 gRPC 서버를 같이 사용하는 법을 정리해본다.1. 자바 프로젝트 설정자바에서 gRPC 를 사용하기 위해서는 먼저 자바 프로젝트의 환경 설정부터 진행해줘야 한다. 자바 프로젝트는 gradle 기반으로 생성하였고 gRPC 를 사용하기 위해서 gr..
[gRPC] Proto file (.proto) - Message, Service 1. 프로토 파일 (Proto file)프로토콜 버퍼를 사용하기 위해서는 사용할 데이터와 서비스에 대해서 프로토 파일에 작성해야한다. 프로토 파일에 작성된 프로토콜 버퍼는 아래의 과정을 거쳐서 다른 프로그래밍 언어에서 사용할 수 있도록 변환된다.  우리가 사용할 데이터 구조를 .proto 파일에 작성하면 프로토콜 버퍼 컴파일러인 protoc 가 이를 컴파일하여 해당 프로그래밍 언어의 소스코드를 생성한다. 이렇게 생성된 소스코드를 사용자의 프로젝트 코드와 함께 컴파일하여 프로토콜 버퍼 클래스를 프로그램에서 호출하여 사용할 수 있도록 한다. 아래에는 프로토콜 버퍼 데이터를 정의하기 위해 프로토 파일 문법에 대해서 정리한다. 버전은 proto3 를 기준으로 정리하였다.2. Message Typesyntax =..
[gRPC] gRPC 와 Protocol Buffer 1. gRPC 란?gRPC 는 구글에서 만든 RPC (Remote Procedure Call) 로 'Google Remote Procedure Call' 의 줄임말이다. 프로토콜 버퍼를 IDL 로 사용하며 서로 다른 장치의 프로그램 간의 메서드 호출을 가능하게 해주어 쉽게 분산처리 시스템을 구축할 수 있도록 해준다. gRPC 는 다른 RPC 들과 같이 서비스를 정의하는 것과 원격으로 호출할 수 있는 함수들과 함수의 매개변수, 반환타입 등을 지정하는 것을 기반으로 한다. 서버측에서는 해당 인터페이스를 구현하고 gRPC 서버를 실행하여 클라이언트의 요청을 처리한다. 클라이언트측은 서버와 같은 기능을 제공하는 stub, 스텁을 가지고 통신을 수행한다.  gRPC 클라이언트와 서버는 여러가지 환경에서 통신할 수..

반응형