85 lines
2.2 KiB
Markdown
85 lines
2.2 KiB
Markdown
# Admin Dashboard 비즈니스 통합 계획
|
|
|
|
**날짜**: 2025-12-04
|
|
**목표**: 인프라 모니터링 → 비즈니스 관리 도구 확장
|
|
|
|
---
|
|
|
|
## 현재 상태
|
|
|
|
### 기존 기능 (4개 탭)
|
|
- 대시보드: CPU/메모리/디스크/업타임
|
|
- 컨테이너: Docker 관리, 로그 조회
|
|
- 서비스: Nginx 상태, Git 활동
|
|
- 로그: 시스템 로그
|
|
|
|
### 문제점
|
|
- main_db 미연결 (user/team/robeing 데이터 접근 불가)
|
|
- `admin_routes.py` 1053줄 (권장 300줄 초과)
|
|
- 비즈니스 기능 전무
|
|
|
|
---
|
|
|
|
## 개선 계획
|
|
|
|
### 1. FastAPI 계층 분리
|
|
|
|
**현재**: admin_routes.py 1053줄 (모든 로직 혼재)
|
|
|
|
**목표 구조**:
|
|
```
|
|
backend/
|
|
├── routers/
|
|
│ ├── system.py # 기존 기능 (~300줄)
|
|
│ ├── users.py # 사용자/팀 관리
|
|
│ └── robeings.py # 로빙/스킬 관리
|
|
├── services/
|
|
│ ├── user_service.py
|
|
│ └── robeing_service.py
|
|
└── state/
|
|
├── user_repository.py # main_db 연결
|
|
└── robeing_repository.py
|
|
```
|
|
|
|
**원칙**: router → service → repository (311_FastAPI_구조_원칙.md)
|
|
|
|
### 2. 신규 탭 3개
|
|
|
|
**탭 1: 사용자/팀**
|
|
- 테이블: user/team 목록, 검색/필터
|
|
- 컬럼: email, name, metadata(nickname/position), is_active, last_login_at
|
|
- 액션: 편집(metadata), 상세(OAuth 상태), 비활성화
|
|
- 통계: 총 사용자, 활성 사용자, 팀별 분포
|
|
|
|
**탭 2: 로빙**
|
|
- 테이블: robeing 목록 (team, name, level)
|
|
- 시각화: 레이더 차트(5개 stats), 레벨 분포
|
|
- 통계: 총 로빙, 평균 레벨, 팀별 활동량
|
|
|
|
**탭 3: 스킬/의도**
|
|
- 대시보드: 의도 분류 통계, 스킬 실행 횟수
|
|
- 차트: 시간대별 히트맵, 의도 분포 파이
|
|
- 테이블: rb_news, team_document, ir_deck_evaluations
|
|
|
|
### 3. 성능 최적화
|
|
|
|
**병렬 처리**: `asyncio.gather()`로 다중 DB 조회 동시 실행
|
|
**페이지네이션**: limit/offset (기본 50건)
|
|
|
|
---
|
|
|
|
## 구현 단계
|
|
|
|
1. admin_routes.py → routers/system.py 분리
|
|
2. Repository/Service 레이어 생성
|
|
3. main_db 연결 추가
|
|
4. 3개 신규 router 추가
|
|
5. Frontend 3개 탭 추가
|
|
|
|
---
|
|
|
|
## 참고
|
|
|
|
- `311_FastAPI_구조_원칙.md`
|
|
- `troubleshooting/251117_admin_dashboard_standard_deployment_refactoring.md`
|