PlatformUpdated 2025-04-01
gRPC Gateway
Protocol Buffers 기반 클라우드↔디바이스 양방향 스트리밍 제어 채널.
gRPCProtobufGoSpring BootESP32-S3
개요
CtrlFarm gRPC Gateway는 클라우드와 IoT 디바이스 간 양방향 실시간 스트리밍 채널을 제공합니다. MQTT가 단방향 텔레메트리에 최적화되어 있다면, gRPC는 저지연 양방향 제어 명령에 사용합니다.
MQTT vs gRPC 역할 분리
| 항목 | MQTT | gRPC |
|---|---|---|
| 방향 | 주로 단방향 (Device to Cloud) | 양방향 스트리밍 |
| 용도 | 센서 텔레메트리 | 실시간 제어 명령 |
| 프로토콜 | TCP 위 경량 메시지 | HTTP/2 |
| 직렬화 | JSON | Protocol Buffers |
| CtrlFarm 적용 | 센서 데이터 수집 | 액추에이터 제어 |
전체 아키텍처
Proto 정의
protobuf
Go gRPC Gateway 구현
프로젝트 구조
Bash
main.go
Go
node_handler.go
Go
Spring Boot gRPC 클라이언트
의존성
groovy
application.yml
YAML
GrpcNodeClient
Java
스트리밍 흐름
Proto 코드 생성
Bash
오류 처리 및 재연결
| 상황 | 처리 |
|---|---|
| 네트워크 단절 | keepalive 설정으로 자동 감지 |
| 스트림 종료 | ESP32 측 재연결 루프 |
| 타임아웃 | deadline 설정으로 블로킹 방지 |
| 인증 | TLS + mTLS (프로덕션) |