Ondium 클러스터 아키텍처 — 4개 사업부 통합 설계
Growdium·Biodium·Foodium·Smartium을 하나로 이으면서 각자 독립성을 유지하는 분산형 아키텍처 설계 원칙
아키텍처 원칙: 느슨한 결합, 견고한 연결
Ondium의 4개 사업부는 독립적인 비즈니스 단위이면서 동시에 공유 데이터 계층으로 연결됩니다.
┌─ Growdium ────────┐ ┌─ Biodium ────────┐
│ Nursery API │ │ Nutrient API │
│ (육묘 시점 역산) │ │ (토양 진단) │
└────────┬──────────┘ └────────┬─────────┘
│ │
└──────┬───────────────┘
│
┌─────▼──────┐
│ Shared Core │
│ (Plot ID) │
└─────┬───────┘
│
┌──────┴───────────────┐
│ │
┌────────▼──────────┐ ┌───────▼────────┐
│ Foodium │ │ Smartium │
│ (가공/추적) │ │ (예측/대시보드)│
└───────────────────┘ └────────────────┘
핵심 개념: Plot ID
모든 데이터는 Plot ID(필지 단위 고유번호)로 수렴합니다.
- 생성: Growdium (육묘 단계에서 개별 모종에 부여)
- 전파: 본포 정식 → Biodium 투입재 기록 → Foodium 수확 분류 → Smartium 최종 분석
- 사용: 소비자 QR 스캔 시 원산지 추적
Plot ID 구성:
PLOT_20260407_GR_001_KIM
├─ 20260407: 생성 날짜
├─ GR: 육묘장 코드 (Growdium)
├─ 001: 시퀀스
└─ KIM: 작업자 초성
4개 사업부 API 스펙
Growdium API — 육묘 단계 (Port 5000)
POST /tools/seedling-plan
요청:
하우스_구조, M_실경작, 구수, 덤, 배달희망일, 작물코드
응답:
총줄, 총묘종수, 계산판수, 배달판수, 필요파종일, 육묘기간
→ 각 라운드별 Plot ID 생성
GET /plots/{plot_id}
응답:
모종 특성 (건강도, 모양, 크기), 상태 이력, 배달 예정일
Biodium API — 투입재 단계 (Port 5001)
POST /soil/analyze
요청:
plot_id, 샘플_날짜, pH, 질소, 인산, 칼리, ...
응답:
진단_결과, 추천_비료, 적용_시기, 예상_효과
GET /market/price/{crop_code}
응답:
KAMIS 시세 최신값, 변동률, 예측 (from Smartium)
Foodium API — 가공 단계 (Port 5002)
POST /harvest/register
요청:
plot_id[], 수확_날짜, 수량, 품질등급
응답:
배치_번호, QR_코드, 원가_계산
GET /batch/{batch_id}/traceability
응답:
[Plot 1 → 모종 특성 → 투입재 이력 → 최종 상품]
Smartium API — 데이터 분석 (Port 5003)
POST /predict/harvest
요청:
plot_id, 생육_스테이지, 현재_조건 (온습도, 양분, 질병 위험)
응답:
수확_적기_예측, 신뢰도 80%+, 추천_액션
GET /dashboard/overview
응답:
전체 농장 상태 (생육률, 투입재 효율, 예상 수익)
데이터 흐름: 실제 사례
Case: 깻잎 "04월 파종" → "05월 배달"
1단계: Growdium (04/01)
POST /tools/seedling-plan
├─ 배달희망일: 2026-05-10
├─ 작물코드: "perilla"
└─ 응답: 필요파종일 2026-04-01
└→ Plot ID 50건 생성: PLOT_20260401_GR_001~050_...
2단계: Biodium (04/07)
POST /soil/analyze
├─ plot_ids: [PLOT_20260401_GR_001~050]
├─ 토양 샘플 분석
└─ 응답: "칼슘 부족 → 굴 패각 비료 3kg/동 추천"
└→ 투입재 기록 + Foodium에 원가 전송
3단계: Foodium (04/21)
POST /harvest/register
├─ plot_ids: [PLOT_20260401_GR_001~050]
├─ 수확량: 2,400kg
├─ 품질등급: A급 80%, B급 20%
└─ 응답: BATCH_20260421_GR_001
└→ QR 코드 생성, 소비자 추적 가능
4단계: Smartium (실시간)
GET /dashboard/overview
├─ Plot 001~050 생육 진행률
├─ Biodium 투입 효과 분석
├─ 예상 수익: ₩3.2M (vs. 목표 ₩3.0M)
└─ 다음 라운드 최적화 제안
기술 스택
| 계층 | 기술 | 이유 | |---|---|---| | Backend | FastAPI (Python) | 빠른 프로토타이핑, 비동기 처리 | | DB | MySQL | 관계형 데이터 + 트랜잭션 무결성 | | 호스팅 | Railway | 무료 티어, MySQL 내장, Cold start 없음 | | Frontend | Next.js 15 | 서버 컴포넌트, 정적 생성 최적화 | | Analysis | Looker Studio | 실시간 대시보드, Google Sheets 연동 | | AI | Claude API | 의사결정 자동화 (caching) |
확장성: Phase 3 이후
IoT 센서 수집 (Year 2)
- 온실 온습도 센서 → Smartium 실시간 입력
- 스프레이 로봇 → Biodium 투입 자동화
- 수확 무게 센서 → Foodium 품질 상관관계 분석
금융 통합 (Year 2.5)
- Smartium 예측 신뢰도 기반 농가 신용등급 산출
- 은행/보험사 자동 평가 API 제공
- 수확 예측 → 사전 대금 결제
마켓플레이스 (Year 3)
- Foodium 제품 → Ondium.shop 직영 판매
- QR 추적 기반 "데이터 농산물" 브랜딩
- B2B/B2C 동시 지원
다음: 각 사업부 페이지에서 API 상세 스펙과 운영 사례를 확인하세요.