서비스 맵
Lumie 클러스터에 배포된 모든 서비스의 네임스페이스, 레플리카 수, 이미지 출처를 정리합니다.
애플리케이션 서비스
lumie-backend
| 항목 | 값 |
|---|---|
| 네임스페이스 | lumie-backend |
| 이미지 | zot.lumie-infra.com/applications/lumie-backend |
| 레플리카 | 3 |
| 포트 | 8080 (HTTP) |
| 런타임 | Spring Boot 3 / Java 21 |
기존 10개 마이크로서비스(Tenant, Auth, Billing, Academy, Exam, Content, Admin, Attendance, AI, File)가 단일 모노리스로 통합된 백엔드입니다. 각 도메인은 패키지 레벨로 분리되어 있으며, 공통 DB/Redis/RabbitMQ 연결을 공유합니다.
Traefik Ingress 라우팅 (lumie-edu.com):
| 경로 | 담당 모듈 |
|---|---|
/api/tenant | 멀티테넌시 관리 |
/api/auth | 인증/인가 |
/api/academy | 학원/학생 관리 |
/api/admin | 관리자 권한 |
/api/exam | 시험/채점 |
/api/content | 공지/QnA/교재 |
/api/attendance | 출결 |
/api/billing | 구독/결제 |
/api/file | 파일 업/다운로드 |
/api/ai | AI 대화/도구 |
Traefik StripPrefix 미들웨어가
/api/<module>접두사를 제거하여 백엔드로 전달합니다.
헬스체크:
- Liveness:
GET /actuator/health/liveness - Readiness:
GET /actuator/health/readiness - Metrics:
GET /actuator/prometheus
lumie-frontend
| 항목 | 값 |
|---|---|
| 네임스페이스 | lumie-frontend |
| 이미지 | zot.lumie-infra.com/applications/lumie-frontend |
| 레플리카 | 2 |
| 포트 | 3000 |
| 런타임 | Next.js 14 / TypeScript |
lumie-edu.com 루트(/)로 라우팅됩니다. www.lumie-edu.com은 lumie-edu.com으로 리다이렉트됩니다.
grading-svc
| 항목 | 값 |
|---|---|
| 네임스페이스 | lumie-worker |
| 이미지 | zot.lumie-infra.com/applications/grading-svc |
| 레플리카 | 1 |
| 포트 | 8000 |
| 런타임 | FastAPI / Python |
OMR 이미지를 분석하여 시험 채점 결과를 반환합니다. lumie-backend에서 REST로 호출합니다 (http://grading-svc.lumie-worker.svc:8000).
report-svc
| 항목 | 값 |
|---|---|
| 네임스페이스 | lumie-worker |
| 이미지 | zot.lumie-infra.com/applications/report-svc |
| 레플리카 | 1 |
| 포트 | 8000 |
| 런타임 | FastAPI / Python |
성적표 PDF/이미지를 생성합니다. lumie-backend에서 REST로 호출합니다 (http://report-svc.lumie-worker.svc:8000).
데이터 레이어
lumie-db (PostgreSQL + PgBouncer)
| 항목 | 값 |
|---|---|
| 네임스페이스 | lumie-db |
| 오퍼레이터 | CloudNativePG (CNPG) |
| 서비스 (RW) | lumie-db-rw.lumie-db.svc:5432 |
| 서비스 (RO) | lumie-db-ro.lumie-db.svc:5432 |
| 커넥션 풀러 | PgBouncer |
멀티테넌트 스키마 분리를 사용합니다. AI 모듈은 읽기 전용 엔드포인트(RO_DB_HOST)로 연결합니다.
lumie-cache (Redis Sentinel)
| 항목 | 값 |
|---|---|
| 네임스페이스 | lumie-cache |
| 서비스 | redis.lumie-cache.svc:26379 (Sentinel) |
| 마스터 이름 | mymaster |
인증 모듈의 세션/토큰 캐싱에 사용됩니다.
lumie-event (RabbitMQ)
| 항목 | 값 |
|---|---|
| 네임스페이스 | lumie-event |
| 서비스 | rabbitmq.lumie-event.svc:5672 |
비동기 메시지 큐로 사용됩니다 (시험 채점 결과 처리 등).
minio
| 항목 | 값 |
|---|---|
| 네임스페이스 | minio |
| 서비스 | minio.minio.svc:9000 |
| 외부 접근 | https://lumie-edu.com (프록시 경유) |
| 버킷 | lumie |
파일 업/다운로드, 시험지 이미지 저장에 사용됩니다. Zot 이미지 레지스트리의 S3 백엔드이기도 합니다.