[Phase 39] FontFamily 캐싱 + LauncherWindow 파셜 클래스 분할

- ThemeResourceHelper에 CascadiaCode/ConsolasCode/ConsolasCourierNew 정적 필드 추가
- 25개 파일, 89개 new FontFamily(...) 호출을 정적 캐시 참조로 교체
- LauncherWindow.xaml.cs (1,563줄) → 5개 파셜 파일로 분할 (63% 감소)
  - LauncherWindow.Theme.cs (116줄): ApplyTheme, 커스텀 딕셔너리 빌드
  - LauncherWindow.Animations.cs (153줄): 무지개 글로우, 애니메이션 헬퍼
  - LauncherWindow.Keyboard.cs (593줄): 단축키 20종, ShowToast, IME 검색
  - LauncherWindow.Shell.cs (177줄): Shell32, SendToRecycleBin, 클릭 핸들러
- 빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-03 18:54:35 +09:00
parent 08524466d2
commit 0c997f0149
32 changed files with 1160 additions and 1066 deletions

View File

@@ -4554,5 +4554,35 @@ Week 8: [23] AutoCompact + isEnabled + 최종 검증
---
최종 업데이트: 2026-04-03 (Phase 22~38 구현 완료 — CC 동등성 37/37 + 코드 품질 리팩터링 6차)
## Phase 39 — FontFamily 캐싱 + LauncherWindow 파셜 분할 (v2.3) ✅ 완료
> **목표**: 89개 `new FontFamily(...)` 반복 생성 제거 + LauncherWindow 파셜 분할.
### FontFamily 캐싱 (25개 파일)
ThemeResourceHelper에 5개 정적 필드 추가:
- `SegoeMdl2``new FontFamily("Segoe MDL2 Assets")` (기존)
- `Consolas``new FontFamily("Consolas")` (기존)
- `CascadiaCode``new FontFamily("Cascadia Code, Consolas, monospace")` (신규)
- `ConsolasCode``new FontFamily("Consolas, Cascadia Code, Segoe UI")` (신규)
- `ConsolasCourierNew``new FontFamily("Consolas, Courier New")` (신규)
총 89개 `new FontFamily(...)` 호출 → 정적 캐시 필드 참조로 교체 (25개 파일)
### LauncherWindow 파셜 분할
| 파일 | 줄 수 | 내용 |
|------|-------|------|
| `LauncherWindow.xaml.cs` (메인) | 578 | Win32 P/Invoke, 생성자, Show(), 아이콘 20종 애니메이션 |
| `LauncherWindow.Theme.cs` | 116 | ApplyTheme, 테마 빌드, BuildCustomDictionary, IsSystemDarkMode |
| `LauncherWindow.Animations.cs` | 153 | 무지개 글로우, 애니메이션 헬퍼, CenterOnScreen, AnimateIn |
| `LauncherWindow.Keyboard.cs` | 593 | IME 검색, PreviewKeyDown, KeyDown 20여 단축키, ShowToast |
| `LauncherWindow.Shell.cs` | 177 | Shell32 P/Invoke, SendToRecycleBin, ShowLargeType, 클릭 핸들러 |
- **메인 파일**: 1,563줄 → 578줄 (**63.0% 감소**)
- **빌드**: 경고 0, 오류 0
---
최종 업데이트: 2026-04-03 (Phase 22~39 구현 완료 — CC 동등성 37/37 + 코드 품질 리팩터링 7차)