PlatformUpdated 2026-04-03
Backend FastAPI Architecture
IoT SaaS Platform Backend Design (FastAPI + PostgreSQL + Redis + MQTT)
ESP32-S3PlatformIOFreeRTOS
IoT + SaaS + AI 확장까지 고려한 backend.mdx 템플릿
아래는 바로 프로젝트에 넣어 사용할 수 있는 구조형 문서입니다.
🚀 Backend Architecture
1️⃣ Overview
설계 목표:
- Multi-Tenant SaaS
- IoT Device 연동 (MQTT 기반)
- 실시간 데이터 처리
- JWT 인증
- 확장 가능한 클라우드 구조
- Kubernetes 배포 가능
🏗 2️⃣ Tech Stack
Core
- FastAPI (AI / Data / Async API)
- Spring Boot (Enterprise API / Auth / Admin)
- PostgreSQL (Main DB)
- Redis (Cache / Queue)
- MQTT Broker (IoT Messaging)
- Nginx (Reverse Proxy)
Optional
- Celery (Background Task)
- Kafka (대규모 스트리밍)
- MinIO (Object Storage)
- Elasticsearch (검색/로그)
🔐 3️⃣ Authentication Architecture
JWT Flow
Token 전략
| 구분 | 설명 |
|---|---|
| Access Token | 15~30분 |
| Refresh Token | 7~30일 |
| 저장 위치 | HttpOnly Cookie 추천 |
🏢 4️⃣ Multi-Tenant Structure
Tenant 방식
Option A: Tenant Column
users
devices
projects
→ tenant_id 컬럼 추가
Option B: Schema 분리
tenant_a.users
tenant_b.users
👉 초기 SaaS는 tenant_id 방식 추천
📡 5️⃣ IoT Data Flow
Topic 설계
iot/{tenant_id}/{device_id}/telemetry
iot/{tenant_id}/{device_id}/event
iot/{tenant_id}/{device_id}/control
🗄 6️⃣ Database Design (Core Tables)
users
| column | type |
|---|---|
| id | UUID |
| tenant_id | UUID |
| varchar | |
| role | enum |
| created_at | timestamp |
devices
| column | type |
|---|---|
| id | UUID |
| tenant_id | UUID |
| name | varchar |
| status | varchar |
| last_seen | timestamp |
telemetry_data
| column | type |
|---|---|
| id | bigserial |
| device_id | UUID |
| payload | JSONB |
| created_at | timestamp |
👉 Telemetry는 JSONB + 인덱스 전략 사용
⚙ 7️⃣ Background Processing
Redis + Celery 구조
- 장치 상태 계산
- AI 분석
- 이상 탐지
- 리포트 생성
📊 8️⃣ Real-time Strategy
선택지
| 방법 | 특징 |
|---|---|
| WebSocket | 양방향 |
| SSE | 단방향 |
| MQTT over Web | IoT 친화 |
👉 IoT SaaS는 WebSocket + MQTT 혼합 추천
🧠 9️⃣ AI 확장 구조
적용 가능
- 이상 탐지
- 예측 유지보수
- 공정 최적화
🐳 🔟 Docker Structure
YAML
☸ 1️⃣1️⃣ Kubernetes 확장 구조
- api-deployment
- worker-deployment
- redis
- postgres
- ingress
🛡 1️⃣2️⃣ 보안 전략
- HTTPS 필수
- JWT Rotation
- Role Based Access Control
- API Rate Limit
- Device 인증서 기반 접속
📈 1️⃣3️⃣ Scaling 전략
| 레벨 | 전략 |
|---|---|
| 초기 | 단일 서버 |
| 성장 | API 분리 |
| 확장 | Kafka + Microservices |
| 대규모 | Multi Region |
🧩 1️⃣4️⃣ 추천 폴더 구조 (FastAPI)
baxh
🏁 Conclusion
이 백엔드는
- IoT
- AI
- SaaS
- Multi-Tenant
- Cloud Native
확장을 모두 고려한 구조입니다.