This commit is contained in:
9700X_PC 2026-02-18 11:18:57 +09:00
parent bec00d9a63
commit 2e9bf283ef
1 changed files with 49 additions and 13 deletions

View File

@ -472,21 +472,58 @@ class AutoUpdater:
--- ---
### 10.6 업데이트 설치流程 ### 10.6 아키텍처: updater.exe 분리 ⭐ 중요
**구조**:
``` ```
temp 폴더에 다운로드 메인 프로젝트 (cx_freeze 패킹)
├── 예: temp/voc_monitor_3.1.0.exe ├── updater.exe (별도 패킹, 최소 GUI 포함)
├── 배치 파일 생성 (업데이트 스크립트) ├── app/
@echo off └── updater/
timeout /t 2 /nobreak > nul ├── __init__.py
xcopy /y "voc_monitor_3.1.0.exe" "원본 폴더/" ├── __version__.py # 버전 정보
start "" "voc_monitor.exe" ├── update_manager.py # 메인 프로그램용 업데이트 관리자
del "voc_monitor_3.1.0.exe" ├── updater_gui.py # updater.exe용 GUI
del "%~f0" └── updatelog.md # 업데이트 로그
└── 배치 파일 실행 후 현재 프로세스 종료 └── ...
``` ```
**실행 흐름**:
```
1. update_manager.py (메인 프로그램 내):
├── Supabase에서 새 버전 확인
├── 업데이트 config.json 생성 (%TEMP%/voc_updater_config.json)
│ {
│ "download_url": "https://supabase.../voc_noti_3.2.0.zip",
│ "target_path": "C:/Program Files/voc_noti",
│ "version": "3.2.0",
│ "restart_exe": "voc_noti.exe"
│ }
├── updater.exe를 %TEMP%로 복사
└── updater.exe 실행 후 메인 프로그램 종료
2. updater.exe (별도 프로세스):
├── config.json 읽기
├── zip 다운로드 (진행률 표시 - CustomTkinter GUI)
├── 압축 해제 → 파일 교체
└── 메인 프로그램 재실행
```
**updater.exe UI**:
- CustomTkinter 기반 최소 GUI 창
- 다운로드 진행률 표시 (Progress Bar)
- 상태 메시지 표시 (다운로드 중, 압축 해제 중, 완료)
- 성공/실패 결과 표시
**파일 교체 방식**:
- **전체 교체**: zip 다운로드 후 압축 해제
- 백업 폴더 생성 (이전 버전 보존)
- 실패 시 롤백 가능
**통신 방식**:
- 임시 JSON 파일 (`%TEMP%/voc_updater_config.json`)
- 메인 프로그램이 파일 생성 → updater.exe가 읽기
--- ---
### 10.7 예외 케이스 처리 ### 10.7 예외 케이스 처리
@ -545,10 +582,9 @@ updater = AutoUpdater(
- [ ] 통계 대시보드 - [ ] 통계 대시보드
- [ ] 엑셀 내보내기 - [ ] 엑셀 내보내기
- [ ] 자동 응답 템플릿 - [ ] 자동 응답 템플릿
- [ ] 자동 업데이트 시스템
--- ---
작성자: KH.Choi 작성자: KH.Choi
최종 수정: 2026-02-18 최종 수정: 2026-02-18
버전: 3.1 버전: 3.2