DOCS/journey/plans/archive/251204_admin_dashboard_business_integration.md
2026-01-04 14:28:10 +09:00

2.2 KiB

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