PlatformUpdated 2026-04-03
Backend Springboot Architecture
IoT SaaS Platform Backend Design (FastAPI + Spring + PostgreSQL + Redis + MQTT)
ESP32-S3PlatformIOFreeRTOS
🚀 Spring Boot Backend Architecture
1️⃣ Overview
Spring Boot는 다음 역할을 담당합니다:
- 인증 / 인가 (JWT + RBAC)
- 사용자 / 조직 / 테넌트 관리
- 관리자 API
- Billing / Subscription
- 기업 통합 API
- 감사 로그
👉 AI / 대용량 데이터 처리는 FastAPI로 분리 가능
🏗 2️⃣ Tech Stack
Core
- Spring Boot 3.x
- Spring Security 6
- JPA (Hibernate)
- PostgreSQL
- Redis
- MQTT Client (Paho)
- Lombok
- MapStruct
Optional
- QueryDSL
- Spring Batch
- Kafka
- Keycloak (외부 인증)
🔐 3️⃣ Security Architecture
JWT 인증 흐름
SecurityConfig 기본 구조
Java
🏢 4️⃣ Multi-Tenant 구조
전략 1️⃣ tenant_id Column 방식 (추천)
모든 주요 테이블에 tenant_id 추가
Java
Hibernate Filter 적용 가능
Java
🗄 5️⃣ Core Entity 설계
User
Java
Device
Java
📡 6️⃣ MQTT 연동
Spring Boot에서 MQTT 구독:
Java
Topic 설계
iot/{tenantId}/{deviceId}/telemetry
iot/{tenantId}/{deviceId}/event
iot/{tenantId}/{deviceId}/control
🔄 7️⃣ Service Layer 구조
controller/
service/
repository/
dto/
mapper/
config/
security/
mqtt/
예시 Service
Java
📊 8️⃣ Redis 전략
사용 목적:
- Refresh Token 저장
- 로그인 세션 관리
- Rate Limit
- Device 상태 캐시
📈 9️⃣ 확장 전략
단계별
| 단계 | 구조 |
|---|---|
| 초기 | 단일 Spring Boot |
| 성장 | Auth 분리 |
| 확장 | Microservices |
| 대규모 | Kafka + Event Driven |
🐳 🔟 Docker 구성
YAML
☸ 1️⃣1️⃣ Kubernetes 구조
- spring-api deployment
- worker deployment
- redis
- postgres
- ingress
🛡 1️⃣2️⃣ 보안 전략
- HTTPS 필수
- Role 기반 접근
- Tenant Isolation
- API Rate Limit
- 감사 로그 저장
🧠 1️⃣3️⃣ FastAPI와 역할 분리 전략
| Spring | FastAPI |
|---|---|
| 인증 | AI 분석 |
| Admin | 대용량 데이터 |
| Billing | ML 모델 |
| RBAC | 실시간 분석 |
🏁 Conclusion
Spring Boot는:
- 엔터프라이즈 인증
- 멀티테넌트 SaaS
- 기업 통합 API
- 보안 중심 설계
에 최적화된 백엔드입니다.