High-Performance Sensor Data API

RoboSense API

물류 창고 자율주행 로봇을 위한 고성능 센서 데이터 처리 API.
실시간 수집 · C++ 최적화 · Redis 캐싱 · 비동기 배치 처리

서버 상태 확인 중...
API 테스트하기 ↓ GitHub ↗
Architecture
시스템 아키텍처

Nginx 리버스 프록시 뒤에 다중 FastAPI 인스턴스가 비동기로 동작하며, Redis 캐싱과 PostgreSQL을 통해 높은 처리량과 낮은 지연 시간을 달성합니다.

Robots센서 데이터 전송
Nginx로드 밸런서
FastAPI ×N비동기 처리
Redis캐시 / TTL
PostgreSQL영구 저장
기술 스택

FastAPI + Uvicorn

비동기 ASGI 서버, 타입 힌트 기반 자동 문서화

PostgreSQL 16

asyncpg 드라이버, JSONB 센서 데이터, 복합 인덱스

Redis 7

Cache-Aside 패턴, TTL 기반 자동 만료, 캐시 워밍

C++ 17 + pybind11

센서 직렬화, 이동평균 필터링, null 비율 계산

Nginx

리버스 프록시, 로드 밸런싱, GZip 압축

Docker Compose

멀티 컨테이너 오케스트레이션, 환경 일관성

AWS EC2

실제 배포 환경에서 TPS 부하 테스트

Locust

점진적 부하 테스트 (100 → 5,000 동시 접속)

Interactive Playground
API 테스트

실제 서버에 요청을 보내고 응답을 확인하세요. 모든 기능은 로봇 등록 후 사용할 수 있습니다.

Step 1 필수 — 센서 데이터 수집, 필터링, 통계 등 모든 기능은 로봇 등록(POST /api/robots) 이후에만 사용할 수 있습니다.
🔒
인증 안내조회(GET)는 공개 엔드포인트(/demo/*)로 키 없이 동작합니다. 쓰기(POST/PUT/DELETE)/api/* + X-API-Key 헤더 필요 — 버튼 클릭 시 401이 정상 응답입니다.
1

로봇 등록

POST /api/robots

2

센서 데이터 수집

POST /api/sensors

3

조회 & 필터링

GET /api/sensors/*

4

통계 확인

GET /api/stats

Step 1. 로봇 관리
POST/api/robots로봇 등록 (최초 필수)
Parameters
FieldTypeNote
name 필수string로봇 이름 (중복 불가)
modelstring로봇 모델명
statusenumactive / inactive / maintenance
battery_levelint0 ~ 100
Try it
Registered Robots
아직 등록된 로봇이 없습니다.
GET/api/robots전체 로봇 목록
Try it
GET/api/robots/{id}특정 로봇 + 최근 센서
Try it
PUT/api/robots/{id}로봇 상태 업데이트
Try it
Step 2. 센서 데이터
POST/api/sensors센서 데이터 수집
🔒

로봇을 먼저 등록하세요

Try it
GET/api/sensors센서 데이터 목록
🔒

로봇을 먼저 등록하세요

Try it
GET/api/sensors/filtered이동평균 필터링 (C++)
🔒

로봇을 먼저 등록하세요

Try it
Step 3. 통계
GET/api/stats종합 통계
🔒

로봇을 먼저 등록하세요

Try it
시스템
GET/health_checkDB + Redis 상태
Try it
Performance
성능 최적화 포인트

극한 조건에서의 성능 최적화를 목표로 설계되었습니다.

Batch
asyncio Queue + COPY
비동기 배치 커밋
C++
pybind11 연동
센서 직렬화 & 필터링
Cache
Redis Cache-Aside
TTL 10s~60s 자동 갱신
GZip
응답 압축 미들웨어
1KB 이상 자동 압축