gRPC 서버 Docker 이미지 빌드 FROM rust:latest as builder WORKDIR /app COPY . . RUN apt update && apt install -y protobuf-compiler RUN cargo build --release --bin server FROM debian:stable-slim RUN apt update \ && apt install -y libssl-dev ca-certificates \ && apt clean \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/target/release/server /app/server CMD ["/app/server"] multistage build를 통해 1G..
Protocol Buffer Compiler 설치 linux 환경 기반 $ sudo apt install -y protobuf-compiler $ protoc --version libprotoc 3.12.4 ProtoBuf 파일 작성 proto/greet.proto syntax="proto3"; package greet; message Greeting { string first_name = 1; string last_name = 2; } service GreetService { rpc Greet(Greeting) returns (Greeting) {} } tonic-build로 ProtoBuf 파일 컴파일하기 Cargo.toml 파일에 build dependency 추가 [package] name = "..
📡 프로토콜 버퍼 (Protocol Buffers) 프로토콜 버퍼는 구조화된 데이터를 직렬화하는 방식으로, 구글에서 개발하으며 gRPC에서 데이터를 주고받기 위해 기본으로 사용되는 방식입니다. 프로토콜 버퍼는 다음과 같은 주요 특징을 가지고 있습니다. 효율적인 이진 직렬화: 다른 형식(XML 또는 JSON)에 비해 더 작은 데이터 크기로 더 빠른 데이터 전송 및 저장이 가능합니다. 스키마 정의: '.proto' 파일을 사용하여 프로토콜 버퍼 메시지를 스키마로 정의할 수 있습니다. 다양한 언어 지원: 현재 프로토콜 버퍼는 C++, Java, Python, Go 등 총 11개 언어로의 컴파일을 지원하고 있습니다. 업데이트 및 상호 호환성: 데이터 스키마에 새 필드를 추가하거나 수정 또는 제거하는 업데이트가 ..
💻 gRPC gRPC는 어떤 환경에서도 실행되는 고성능 RPC(Remote Procedure Call) 프레임워크입니다. RPC(Remote Procedure Call): 마치 로컬 프로시저를 호출하는 것처럼 원격 시스템에 있는 함수 또는 프로시저를 호출할 수 있게 해주는 프로세스 간 통신 기술 gRPC를 사용하면 클라이언트 애플리케이션은 로컬에서 메서드를 호출하는 것처럼 다른 머신에 있는 서버 애플리케이션에 있는 메서드를 직접 호출할 수 있습니다. 그 덕분에 분산 애플리케이션과 서비스를 구축하는 것이 한결 수월해집니다. 대다수의 RPC 시스템과 마찬가지로 gRPC는 파라미터와 반환 타입을 가지는 메서드를 명시함으로써 서비스를 정의합니다. 서버는 서비스에 정의된 인터페이스를 구현하고, gRPC 서버를 실..
* 개인적으로 공부한 내용의 일부를 기록하기 위한 것이므로 중간 과정이 많이 생략되어 있습니다. * 작성중인 코드의 일부는 아래의 깃허브 저장소에서 확인하실 수 있습니다. https://github.com/piatoss3612/go-grpc-todo GitHub - piatoss3612/go-grpc-todo: example of grpc implementation example of grpc implementation. Contribute to piatoss3612/go-grpc-todo development by creating an account on GitHub. github.com 1. 메타데이터 읽기 메타데이터에 어떤 정보가 담겨있는지 먼저 확인해 봅니다. package server impor..