본문으로 건너뛰기

oneshim-network

네트워크 통신을 담당하는 어댑터 크레이트. gRPC, HTTP/SSE/WebSocket, 압축, 인증, 배치 업로드를 처리합니다.

gRPC 우선 통신

v0.3.0부터 gRPC를 기본 통신 프로토콜로 사용하며, HTTP/2 차단 환경에서는 REST API로 자동 fallback합니다.


주요 기능

인증 관리

JWT 기반 토큰 관리를 수행합니다.

  • 로그인/로그아웃/토큰 갱신
  • 만료 전 자동 갱신
  • 동시 접근 안전한 토큰 관리

REST API 클라이언트

서버와의 HTTP 기반 통신을 처리합니다.

  • 컨텍스트/배치 업로드
  • 피드백 전송
  • 세션 하트비트

SSE 스트림 클라이언트

서버로부터 실시간 제안을 수신합니다.

  • Server-Sent Events 기반 실시간 스트림
  • Exponential backoff 재연결
  • 네트워크 오류 시 자동 복구

적응형 압축

데이터 크기에 따라 최적의 압축 알고리즘을 자동 선택합니다.

데이터 크기압축 방식특징
소량압축 안 함오버헤드 방지
중간gzip범용, 호환성
대용량zstd높은 압축률
초대용량lz4빠른 속도

배치 업로더

이벤트와 프레임을 효율적으로 배치 업로드합니다.

  • Lock-free 큐 기반 무경합 동시 입력
  • 동적 배치 크기 조절
  • 실패 시 자동 재시도

AI 클라이언트

외부 AI API를 호출하여 자동화 의도 해석 및 OCR 요소 추출을 수행합니다.

  • LLM 기반 의도 해석 (다중 제공자 지원)
  • AI Vision 기반 OCR 요소 추출

gRPC 클라이언트

고성능 서비스 간 통신을 제공합니다.

  • 인증, 세션, 컨텍스트 서비스
  • Server Streaming RPC (실시간 제안 수신)
  • 포트 폴백 전략 (연결 실패 시 대체 포트 자동 시도)
  • gRPC + REST 통합 클라이언트 (자동 전환)
Feature Flag

gRPC 기능은 --features grpc 플래그로 활성화됩니다.


데이터 흐름


관련 문서: