2.3 KiB
2.3 KiB
Admin Dashboard 코드 리팩토링 계획
날짜: 2025-12-25 목표: Monolithic 코드 분리 및 계층 구조 개선 원칙: 311_FastAPI_구조_원칙.md, 313_React_구조_원칙.md
현재 상태
Frontend 문제점
app.js: 1132줄 (여전히 1000줄 이상)- 일기 모듈만 분리됨 (
modules/diary.js) - 시스템, 컨테이너, 사용자, 로빙 모듈 미분리
Backend 문제점
admin_routes.py: 96줄 (인증만 남음) ✅- 시스템 모듈 분리 완료 ✅
남은 작업
Frontend 모듈 분리 (미완료)
목표 구조:
frontend/
├── app.js # 메인 로직만 (~200줄)
├── services/
│ └── api.js # API 통신 로직 (미구현)
├── utils/
│ └── helpers.js # 유틸리티 함수 (미구현)
└── modules/
├── diary.js # 일기 관리 ✅
├── system.js # 시스템 모니터링 (미구현)
├── containers.js # 컨테이너 관리 (미구현)
├── users.js # 사용자/팀 관리 (미구현)
└── robeings.js # 로빙 관리 (미구현)
분리 기준:
- API 통신:
services/api.js(apiCall, fetch 로직) - 유틸리티:
utils/helpers.js(markdownToHtml, showError, showLoadingBar 등) - 기능별 모듈:
modules/*.js(각 기능별 데이터 로딩 함수) - 메인 로직:
app.js(초기화, 네비게이션, 이벤트 핸들링)
원칙 준수:
- 각 파일 300줄 이하
- UI 렌더링과 비즈니스 로직 분리
- API 통신 로직 분리
구현 완료
완료일: 2025-12-25
커밋: ac96e2a (admin-dashboard)
상세: troubleshooting/251225_admin_dashboard_code_refactoring.md
완료 사항
- ✅ Backend 모듈 분리:
admin_routes.py→routers/system.py,services/system_service.py - ✅ 정적 파일 서빙:
routers/admin_static.py생성 - ✅ Frontend 모듈화:
modules/diary.js분리,app.js1360줄 → 1132줄 - ✅ 로그인 오류 수정:
app.js:938문자열 결합 문법 오류 수정 - ✅ 경로 매칭 문제 해결:
/diary/list→/diaries로 변경 - ✅ Gateway 프록시 호환성: 이중 경로 지원
참고
311_FastAPI_구조_원칙.md313_React_구조_원칙.mdtroubleshooting/251225_admin_dashboard_code_refactoring.md