Files
static/CHANGELOG.md
KWON 7121f250bc feat: Flask 애플리케이션 모듈화 및 웹 대시보드 구현
- Flask Blueprint 아키텍처로 전환 (dashboard, upload, backup, status)
- app.py 681줄  95줄로 축소 (86% 감소)
- HTML 템플릿 모듈화 (base.html + 기능별 templates)
- CSS/JS 파일 분리 (common + 기능별 파일)
- 대시보드 기능 추가 (통계, 주간 예보, 방문객 추이)
- 파일 업로드 웹 인터페이스 구현
- 백업/복구 관리 UI 구현
- Docker 배포 환경 개선
- .gitignore 업데이트 (uploads, backups, cache 등)
2025-12-26 17:31:37 +09:00

133 lines
3.0 KiB
Markdown

# CHANGELOG
모든 주목할만한 변경 사항이 이 파일에 기록됩니다.
## [개선사항] - 2025-12-26
### 추가됨
- ✅ 통합 로깅 시스템 (`lib/common.py``setup_logging`)
- ✅ 데이터베이스 재연결 메커니즘 (자동 풀 재설정)
- ✅ 재시도 데코레이터 (`@retry_on_exception`)
- ✅ 컨텍스트 매니저 기반 세션 관리 (`DBSession`)
- ✅ 에러 추적 및 상세 로깅
- ✅ Docker Compose MariaDB 통합
- ✅ 환경 변수 기반 설정 관리
- ✅ 헬스체크 스크립트
- ✅ 향상된 Dockerfile (Python 3.11, 슬림 이미지)
- ✅ Docker Entrypoint 개선 (신호 처리, 프로세스 모니터링)
- ✅ 포괄적인 README.md 문서
### 변경됨
- 🔄 `requirements.txt` - 모든 의존성 버전 고정
- 🔄 `daily_run.py` - 통합 로깅 및 에러 처리
- 🔄 `conf/db.py` - 연결 풀 및 재연결 설정 개선
- 🔄 `docker-compose.yml` - MariaDB 추가, 환경 변수 관리
- 🔄 `.gitignore` - 더 완전한 무시 규칙
### 제거됨
- ❌ Dockerfile의 불필요한 GUI 라이브러리 (tk 관련)
- ❌ 과도한 시스템 패키지
### 고정됨
- 🐛 DB 연결 타임아웃 문제
- 🐛 로깅 포맷 일관성
- 🐛 환경 변수 해석 오류
### 보안
- 🔐 민감한 정보를 환경 변수로 관리
- 🔐 `.env` 파일 .gitignore 추가
- 🔐 API 키 보안 강화
- 🔐 데이터베이스 암호 정책 권장
---
## 제공 예정 기능
- [ ] REST API 엔드포인트
- [ ] 실시간 대시보드
- [ ] 다중 모델 앙상블 (Prophet + ARIMA + RandomForest)
- [ ] 설명 가능한 AI (SHAP)
- [ ] 이상 탐지 (Anomaly Detection)
- [ ] GraphQL API
- [ ] WebSocket 실시간 업데이트
---
## 버전 정보
### Python Dependencies (v2025-12)
- `python` >= 3.11
- `flask` == 3.0.0
- `sqlalchemy` == 2.0.23
- `pymysql` == 1.1.0
- `pyyaml` == 6.0.1
- `pandas` == 2.1.3
- `prophet` == 1.1.5
- `scikit-learn` == 1.3.2
- 기타 상세 버전은 `requirements.txt` 참조
### Docker Image
- Base: `python:3.11-slim-bullseye`
- Size: ~300MB (예상)
---
## 마이그레이션 가이드
### v1 → v2 (현재 버전)
1. **환경 변수 설정**
```bash
cp .env.example .env
# .env 파일 수정
```
2. **기존 코드 업데이트**
```python
# 기존
from lib.common import get_logger
logger = get_logger('my_module')
# 변경
from lib.common import setup_logging
logger = setup_logging('my_module', 'INFO')
```
3. **데이터베이스 세션 관리**
```python
# 기존
session = db.get_session()
try:
# ...
finally:
session.close()
# 변경 (권장)
from conf.db import DBSession
with DBSession() as session:
# ...
```
4. **Docker 실행**
```bash
docker-compose up -d
```
---
## 알려진 문제
- [ ] Prophet 모델 학습 시간 개선 필요
- [ ] GA4 API 데이터 일관성 검증 필요
- [ ] 대용량 데이터 처리 최적화 필요
---
## 기여
버그 리포트 및 기능 요청은 Gitea Issues를 사용해주세요.
---
**마지막 업데이트**: 2025-12-26