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

3.0 KiB

CHANGELOG

모든 주목할만한 변경 사항이 이 파일에 기록됩니다.

[개선사항] - 2025-12-26

추가됨

  • 통합 로깅 시스템 (lib/common.pysetup_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. 환경 변수 설정

    cp .env.example .env
    # .env 파일 수정
    
  2. 기존 코드 업데이트

    # 기존
    from lib.common import get_logger
    logger = get_logger('my_module')
    
    # 변경
    from lib.common import setup_logging
    logger = setup_logging('my_module', 'INFO')
    
  3. 데이터베이스 세션 관리

    # 기존
    session = db.get_session()
    try:
        # ...
    finally:
        session.close()
    
    # 변경 (권장)
    from conf.db import DBSession
    with DBSession() as session:
        # ...
    
  4. Docker 실행

    docker-compose up -d
    

알려진 문제

  • Prophet 모델 학습 시간 개선 필요
  • GA4 API 데이터 일관성 검증 필요
  • 대용량 데이터 처리 최적화 필요

기여

버그 리포트 및 기능 요청은 Gitea Issues를 사용해주세요.


마지막 업데이트: 2025-12-26