Files
AX-Copilot/docs/LAUNCHER_ROADMAP.md
lacvet 7837c696cc [Phase L29] AX 차별화 심화 — 한국어·사내 독점 기능 4종 구현
DictHandler.cs (신규, 300줄+):
- prefix=dict, 오프라인 국어·영한 사전
- 국어: 혼동어·업무용어·한자어 48개 (가르치다/가리키다, 품의/결재/결제 등)
- 영한: 업무 영어 25개 (agenda, align, approve, deploy 등) + 예문
- dict {단어} → 뜻풀이·유의어·반의어·주의사항
- dict en {word} → 영한 검색, Enter: 클립보드 복사

FlowHandler.cs (신규, 237줄):
- prefix=flow, 명령 체인 워크플로우
- flow add {이름} {cmd1} > {cmd2} > ... 텍스트 기반 워크플로우 저장
- %APPDATA%\AxCopilot\flows.json 로컬 JSON 저장
- flow {이름} → 명령 목록 클립보드 복사, flow del 삭제
- Alfred 워크플로우 경량 대응

SpellHandler.cs (수정, +144줄):
- spell add {틀린} {올바른} [설명] 사용자 항목 추가
- spell del {틀린} 삭제, spell custom 사용자 항목만 보기
- %APPDATA%\AxCopilot\spell_custom.json 저장
- AllEntries() 제너레이터로 내장+사용자 통합 검색

BookmarkHandler.cs (수정, +2줄):
- 검색 결과에 Group="📑 북마크" 카테고리 헤더 설정

App.xaml.cs: DictHandler, FlowHandler 등록 (L29 블록)
LauncherWindow.ShortcutHelp.cs: F3 빠른 미리보기 도움말 추가
LAUNCHER_ROADMAP.md: L29  완료, 123개 핸들러
- 빌드: 경고 0, 오류 0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 20:13:34 +09:00

649 lines
63 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AX Commander (런처) 고도화 계획
## 현재 상태 (v2.2.0)
### 핵심 기능 (123개 핸들러, L29 완료)
- 퍼지 검색 + 한글 초성 검색 (FuzzyEngine) + **최근 실행 지수 감소 랭킹 (30일 decay)**
- 110개+ 프리픽스 명령 (계산기·이모지·웹검색·스니펫·클립보드·프로세스·데이터·네트워크·업무양식 등)
- 10가지 테마 + 커스텀 테마
- 플러그인 시스템 (DLL + JSON 스킬)
- AX Agent AI 대화 통합 (Chat·Cowork·Code 3탭)
- 글로벌 핫키 (Alt+Space 외 12개 조합 설정 가능), 무지개 글로우 효과
- 파일/앱 인덱싱, **Shell32 실제 파일 아이콘 표시 (확장자별 캐시)**, 사용 빈도 랭킹
- 워크스페이스 프로파일 (창 레이아웃 저장/복원), 22개 스냅 레이아웃
- 클립보드 히스토리 (핀·카테고리 자동 분류·**이미지 썸네일 미리보기**), 스니펫 확장
- 스크린 캡처, OCR, 컬러 피커, JSON·YAML·XML·TOML·CSV 파서
- Excel 함수 레퍼런스, 업무 양식 템플릿 (회의록·보고서·이메일 등)
- **텍스트 파일 미리보기 패널** (선택 시 첫 6줄 인라인 표시)
- **창 위치 기억** (마지막 위치 복원, 멀티 모니터 경계 클램핑)
---
## 경쟁 서비스 심층 벤치마킹 (2026년 4월 기준)
> 조사 범위: Raycast v1.104+ (macOS + **Windows 베타 출시**), Alfred 5.6, Flow Launcher 2.1,
> PowerToys Command Palette 0.98, Listary 6.3, Wox 2.0 (개발 중)
### 주요 런처 기능 매트릭스
| 기능 | AX Commander | Raycast | Alfred 5 | Flow Launcher | PowerToys CP | Listary 6 |
|------|:---:|:---:|:---:|:---:|:---:|:---:|
| **플랫폼** | Windows | macOS + **Win 베타** | macOS | Windows | Windows | Windows |
| **기본 앱/파일 검색** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **한글 초성 검색** | ✅ **독점** | ❌ | ❌ | ❌ | ❌ | ❌ |
| **한국어 UI** | ✅ **독점** | ❌ | ❌ | ❌ | △ OS 따름 | ❌ |
| **AI 대화 통합** | ✅ AX Agent 3탭 | ✅ Quick AI | △ 워크플로우 | △ Ollama 플러그인 | ❌ | ❌ |
| **MCP 에이전트** | ✅ | ✅ @멘션 방식 | ❌ | ❌ | ❌ | ❌ |
| **사내망 LLM (Ollama)** | ✅ **특화** | ❌ | ❌ | △ 플러그인 | △ Foundry Local | ❌ |
| **AI 자동 모델 선택** | ✅ 폴백 모델 | ✅ Auto Model | ❌ | ❌ | ❌ | ❌ |
| **에이전트 코딩 루프** | ✅ 실구현 | 선언만 | ❌ | ❌ | ❌ | ❌ |
| **사내 보안 AI 게이트** | ✅ **독점** | ❌ | ❌ | ❌ | ❌ | ❌ |
| **클립보드 히스토리** | ✅ 핀·분류·이미지 | ✅ | ✅ | △ 플러그인 | ❌ | ❌ |
| **순차 붙여넣기** | ✅ (L27) | ✅ | ❌ | ❌ | ❌ | ❌ |
| **스니펫 확장** | ✅ | ✅ 동적 플레이스홀더 | ✅ | △ 플러그인 | ❌ | ❌ |
| **창 관리** | ✅ 22 레이아웃 | ✅ 70+ (Win 베타 탑재) | ❌ | ❌ | △ FancyZones 연동 | ❌ |
| **파일 탐색기 인라인** | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ **독점** |
| **파일 미리보기** | ✅ (L28 강화) | ❌ | ✅ Grid View | ❌ | ❌ | △ 사이드바 |
| **브라우저 북마크 검색** | ❌ **공백** | ✅ 확장 연동 | ✅ | △ 플러그인 | ✅ 내장 | ❌ |
| **브라우저 탭 AI 전달** | ❌ **공백** | ✅ {browser-tab} | ❌ | ❌ | ❌ | ❌ |
| **시스템 볼륨 제어** | ✅ (L27) | ✅ | ✅ | ❌ | ❌ | ❌ |
| **화면 밝기 제어** | ✅ (L27) | ✅ | ❌ | ❌ | ❌ | ❌ |
| **QR 코드 생성** | ✅ (L27) | ✅ | ✅ | △ 플러그인 | ❌ | ❌ |
| **회의 링크 빠른 열기** | ✅ (L27) | ✅ Calendar 연동 | ✅ | ❌ | ❌ | ❌ |
| **winget 앱 설치** | ✅ (L28) | ✅ Win 베타 | ❌ | △ 플러그인 | ❌ | ✅ 내장 |
| **노코드 워크플로우** | ❌ **공백** | △ AI Ext 베타 | ✅ 완전 지원 | ❌ | ❌ | ❌ |
| **스크립트 명령 실행** | ✅ ^ 프리픽스 | ✅ Script Commands | ✅ | ✅ | ✅ | ❌ |
| **Everything 연동** | ✅ es 프리픽스 | ❌ | ❌ | ✅ | ❌ | ❌ |
| **선택 텍스트 AI** | ✅ 팝업 | ✅ AI Commands | ❌ | ❌ | ❌ | ❌ |
| **AI 붙여넣기 변환** | ✅ (L28) | ❌ | ❌ | ❌ | ✅ Advanced Paste | ❌ |
| **OCR** | ✅ | ❌ | ❌ | △ 플러그인 | ✅ Text Extractor | ❌ |
| **독 바 (영구 표시)** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **플러그인 생태계** | DLL+JSON | 1,300+ | 수백+ | 200+ | 내장 중심 | ❌ |
| **클라우드 동기화** | ❌ 사내 정책 | ✅ Pro | ❌ | ❌ | ❌ | ❌ |
### 핵심 공백 분석 — 우선순위 3단계
#### 🔴 즉시 해소 대상 — 경쟁 2개+ 공통 제공, 구현 난이도 낮음, 매일 사용
| 순위 | 공백 기능 | Raycast | Alfred | PowerToys | 구현 방식 | 사무 적합성 |
|:---:|----------|:---:|:---:|:---:|----------|:---:|
| 1 | **브라우저 북마크 검색** (Edge/Chrome) | ✅ | ✅ | ✅ | 로컬 JSON 파싱 | ⭐⭐⭐ |
| 2 | **시스템 볼륨 제어** | ✅ | ✅ | ❌ | Windows Core Audio API | ⭐⭐⭐ |
| 3 | **QR 코드 생성** | ✅ | ✅ | ❌ | QRCoder NuGet (순수 행렬 렌더링) | ⭐⭐ |
| 4 | **회의 링크 전용 관리** | ✅ | ✅ | ❌ | 로컬 JSON + URI Scheme 실행 | ⭐⭐⭐ |
| 5 | **화면 밝기 제어** | ✅ | ❌ | ❌ | WMI MonitorBrightness | ⭐⭐ |
| 6 | **순차 붙여넣기** | ✅ | ❌ | ❌ | ClipboardHistoryHandler 확장 | ⭐⭐ |
#### 🟠 중기 과제 — 구현 난이도 중간, 차별화 효과 큼
| 순위 | 공백 기능 | 경쟁 현황 | 구현 방식 |
|:---:|----------|---------|---------|
| 1 | **winget 앱 검색·설치** | Raycast Win·PowerToys | `winget search/install` subprocess |
| 2 | **스니펫 동적 플레이스홀더** | Raycast {browser-tab} 등 | {date}, {clipboard}, {app}, {user} 치환 |
| 3 | **파일 미리보기 강화** | Alfred Grid View | 이미지 썸네일, PDF 첫 페이지 렌더링 |
| 4 | **AI 붙여넣기 변환** | PowerToys Advanced Paste | 선택 텍스트 → AX Agent 즉시 변환 |
#### 🟡 장기 과제 — 높은 구현 비용 또는 외부 의존
| 공백 기능 | 낮게 본 이유 |
|----------|------------|
| 노코드 워크플로우 편집기 | GUI 빌더 구현 복잡 — `flow` 핸들러 텍스트 방식으로 우선 대응 |
| 파일 탐색기 인라인 검색 | Listary 독점 영역, Hook 방식 불안정 |
| 클라우드 동기화 | 사내 보안 정책상 불가 |
| 1,000개+ 플러그인 스토어 | 생태계 규모는 단기 추격 불가 |
### AX Commander 경쟁 우위 — 지켜야 할 강점
| 강점 | 수준 | 경쟁 대비 |
|------|------|---------|
| **한글 초성 검색 + 한국어 UI** | 독점 | 경쟁 서비스 전무 |
| **사내망 LLM + AI 보안 게이트** | 독점 | 사내 배포 필수 — 타사 구조적 불가 |
| **에이전트 코딩 루프 실구현** | 선두 | Raycast는 방향 선언만, 실제 루프 없음 |
| **한국 특화 핸들러** | 독점 | cal·leave·fix·spell·phrase 등 |
| **독 바 영구 표시** | 차별화 | Raycast·Alfred 모두 없음 |
| **MCP 에이전트 통합** | 동급 | Raycast 2025년 출시, 대등 경쟁 |
| **OCR 통합** | 차별화 | PowerToys와 동급, Raycast 미지원 |
### 기존 핸들러 중 재검토 대상
`pip` 프리픽스처럼 **특정 도구 의존도가 높아 보편성이 낮은** 핸들러 현황:
| 핸들러 | 프리픽스 | 재검토 사유 |
|--------|---------|------------|
| PipHandler | `pip` | Miniconda·Anaconda·pyenv 등 환경이 달라 명령 다름. L22에 구현 완료했으나 향후 Phase에서 동일 패턴 반복 지양 |
| WslHandler | `wsl` | WSL 미설치 환경에서 무의미 |
| DockerHandler | `docker` | Docker Desktop 미설치 환경에서 무의미 |
**방침**: 특정 외부 도구가 설치된 환경에서만 동작하는 핸들러는 신규 추가 중단. 미설치 감지 후 안내 메시지는 유지.
---
## Phase L1 — 차세대 런처 고도화 (v1.5.0)
| # | 기능 | 구현 내용 |
|---|------|----------|
| L1-1 | 선택 텍스트 AI 명령 | TextActionPopup (커서 위치 팝업), 번역/요약/교정/설명/다시쓰기. 설정 기반 명령 선택, 1개 시 팝업 없이 바로 실행 |
| L1-2 | Everything 연동 | EverythingHandler (`es` 프리픽스), Everything64.dll P/Invoke, 미설치 시 graceful fallback |
| L1-3 | 윈도우 타일링 확장 | SnapHandler 11→22개 레이아웃 (3등분, 2/3, 3분할 조합) |
| L1-4 | 플러그인 자동 설치 | PluginHost.InstallFromZip() + UninstallPlugin(). 로컬 zip 기반 (URL 제외: 사내 보안) |
| L1-5 | 영구 독 바 | DockBarWindow (화면 하단 고정). 설정 기반 아이템, CPU/RAM, 시계, 글로우, 투명도, 위치 기억 |
| L1-6 | 대화상자 통합 | FileDialogWatcher (SetWinEventHook + #32770 감지). 열기/저장 시 런처 자동 열기 |
| L1-7 | 클립보드 핀/카테고리 | IsPinned/Category 필드, 자동 분류(URL/코드/경로), Ctrl+P 핀 토글, #pin/#url/#코드 필터 |
| L1-8 | 클라우드 설정 동기화 | 보류 (사내 환경) |
| L1-9 | 커스텀 테마 마켓 | 보류 (사내 환경) |
| 추가 | 독 바 설정 탭 | 설정창에 독 바 전용 탭 (표시 항목, 투명도, 글로우, 위치 초기화) |
| 추가 | 설정창 UI 개편 | 테마+색상편집 하위탭 합침, 일반+알림 하위탭 합침, v1.5.0 신기능 설정값 추가 |
| 추가 | 아이콘 교체 | 다이아몬드 픽셀 ICO (7 sizes). 앱/인스톨러/바로가기/AboutWindow/LauncherWindow/SVG 전체 통일 |
---
## Phase L1 추가 완료 (v1.5.0)
| # | 기능 | 상태 |
|---|------|------|
| 추가 | **Windows 탐색기 셸 확장** | ✓ ShellExtensionService — HKCU 레지스트리 등록/해제, 명령줄 파싱 |
| 추가 | **저장 공간 관리 UI** | ✓ StorageAnalyzer — 사용량 분석, 드라이브 여유, 7/14/30일 정리 |
| 추가 | **설정 도움말 아이콘** | ✓ AI 관련 설정 17개에 `?` 아이콘 + 커스텀 다크 툴팁 |
| 추가 | **독 바 실시간 설정** | ✓ 설정 변경 즉시 반영, 자동 표시, 위치 기억 |
---
## Phase L2 — 클립보드 고도화 + UX 개선 (v1.5.3)
> **방향**: 클립보드 히스토리의 실용성 극대화 (이미지 원본 품질, 자동 복사 워크플로우), 런처 UX 개선.
> Raycast의 리치 클립보드, Alfred의 Snippet 확장을 참고하되 사내 로컬 환경에 최적화.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L2-1 | **클립보드 이미지 원본 해상도 보존** | 원본 PNG를 `clipboard_images/` 캐시 폴더에 저장, 썸네일(80px)은 표시용으로만 사용. 캐시 정리 정책 (30일/500MB). Enter 복원 시 원본 해상도로 클립보드 복사 | ✅ 완료 |
| L2-2 | **Shift+Enter 실행 시 자동 클립보드 복사** | Shift+Enter로 외부 뷰어 열기 전에 해당 항목을 시스템 클립보드에 자동 복사. 텍스트/이미지(원본 해상도) 모두 지원 | ✅ 완료 |
| ✅ L2-3 | **클립보드 이미지 미리보기 창** | `#` 이미지 항목에서 Shift+Enter → `ClipboardImagePreviewWindow`. 원본 해상도 표시, Ctrl+휠/+/0/F 줌, PNG·JPEG·BMP 저장, Ctrl+C 복사 | 중간 |
| ✅ L2-4 | **클립보드 검색 강화** | 이미지 OCR 텍스트 추출 → 텍스트 기반 이미지 검색. Windows OCR API (로컬) 활용. `OcrText` 필드, `ExtractOcrTextAsync()`, TFM `net8.0-windows10.0.17763.0` | 중간 |
| ✅ L2-5 | **클립보드 항목 병합** | Ctrl+Click 마우스 다중 선택 추가 (Shift+↑/↓ 키보드 선택은 기존 구현). `ResultList_PreviewMouseLeftButtonUp` 분기 | 낮음 |
### Phase L2 추가 완료 (v1.5.3)
| # | 기능 | 상태 |
|---|------|------|
| 추가 | **독 바 탭 위치 이동** | ✓ 설정 탭 순서에서 독 바를 3번째(테마 뒤)로 이동 — 사용 빈도 기반 접근성 향상 |
| 추가 | **설정 기타 탭 접기/열기** | ✓ 등록된 도구, MCP 커넥터, 슬래시 스킬 각각 접기/펼치기 섹션 (화살표 토글) |
| 추가 | **About 정보 변경** | ✓ ".NET 8" → "Commander + Agent" (기술 스택 비노출 원칙) |
| 추가 | **가이드 내장 뷰어** | ✓ GuideViewerWindow — 암호화된 가이드를 앱 내 WebBrowser로 복호화 렌더링. 개발자 모드 연동 |
---
## Phase L3 — 차세대 런처 (v2.0) — 진행 중 / 일부 완료
> **방향**: 경쟁 런처(Raycast 1500+ 확장, PowerToys Run)의 에코시스템 수준을 참고하되,
> 사내 보안/오프라인 환경에서 동작하는 자체 완결형 기능으로 구현.
> AX Agent **Phase 18 (v2.0)** 과 교차 개발 — 런처와 에이전트의 기능 경계가 겹치는 항목은 통합 구현.
| # | 기능 | 설명 | 우선순위 | 교차 |
|---|------|------|----------|------|
| ✅ L3-1 | **플러그인 갤러리 + 레지스트리** | 로컬 NAS/Git 레지스트리 기반 탐색/설치/업데이트 인앱 갤러리 | 높음 | → Agent 18-2 |
| ✅ L3-2 | **웹 검색 AI 요약** | ? 검색 결과를 AI가 요약하여 런처에 표시 | 중간 | → Agent 18-6 |
| ✅ L3-3 | **AI 스니펫** | `;email {수신자} {주제}` → LLM이 이메일 초안 자동 생성. 기존 스니펫에 AI 확장 | 중간 | → Agent 18-3 |
| ✅ L3-4 | **파라미터 퀵링크** | `jira {티켓번호}` → URL 템플릿 변수 치환 (사내 JIRA/Confluence 등) | 중간 | → Agent 18-4 |
| ✅ L3-5 | **파일 태그 시스템** | 파일에 사용자 태그 부여, `tag` 프리픽스로 태그 기반 검색. `file_tags.json` 로컬 저장 | 중간 | — |
| L3-6 | **오프라인 AI (로컬 SLM)** | ONNX Runtime + phi-3, 서버 없이 번역/요약 | 낮음 | → Agent 18-5 |
| ✅ L3-7 | **다중 디스플레이** | 마우스 커서 위치 모니터에 런처 표시, 독 바 per-monitor 위치 저장·유효성 검증 | 낮음 | — |
| ✅ L3-8 | **알림 센터 통합** | `notif` 프리픽스로 알림 이력 조회·검색·초기화. NotificationCenterService 이력 연동, 클립보드 복사 | 낮음 | — |
| ✅ L3-9 | **런처 미니 위젯** | 하단 위젯 바 4종: 시스템 모니터(CPU/RAM/디스크), 뽀모도로 타이머(`pomo` 프리픽스), 빠른 메모 건수, 서버 상태(Ollama/LLM/MCP). PerformanceMonitorService·PomodoroService·ServerStatusService 싱글턴 | 낮음 | — |
---
## Phase L4 — 검색/탐색 UX 혁신 + 생산성 확장 (v1.7.x) ✅ 완료
> **방향**: Raycast/Alfred 기능 갭 해소 + 기존 L1-7 미완 기능 이행. 런처 단독 완결형 생산성 강화.
| # | 기능 | 설명 | 상태 |
|---|------|------|------|
| ✅ L4-1 | **파일 탐색기 인라인 패널** | 경로 입력(`C:\`, `D:\`, `~\`) 감지 → 폴더 목록 표시. →/← 키로 폴더 진입/상위 이동. Enter로 탐색기/기본 앱 실행 | 완료 |
| ✅ L4-2 | **QuickLook F3 강화** | PDF(PdfPig 텍스트 추출), 코드 구문강조(14개 언어 배경색+줄번호), Word/Excel(OpenXml) 미리보기 | 완료 |
| ✅ L4-3 | **클립보드 핀 & 카테고리** | Ctrl+P 핀 고정, `#pin/#url/#코드/#경로` 필터, 자동 분류. L1-7 기구현 확인 | 완료 |
| ✅ L4-4 | **검색 히스토리** | ↑/↓ 키로 이전 검색어 탐색. 50개 FIFO `search_history.json` 로컬 저장 | 완료 |
| ✅ L4-5 | **고급 검색 필터 문법** | `ext:.pdf size:>1mb modified:week in:documents type:file` 인라인 필터. SearchFilterParser + FuzzyEngine.SearchWithFilter() | 완료 |
| ✅ L4-6 | **계산기 단위 변환 확장** | `=20km` 자동 제안, `=today+30d` 날짜 계산. UnitConverter.AutoSuggest() + DateShortcut | 완료 |
---
## Phase L5 — 전용 핫키 · OCR · 배치 작업 · 자동화 (v1.7.4~)
> **방향**: 파워유저의 반복 작업 제거. Raycast의 핫키 할당, Windows OCR 통합, 멀티파일 배치 이름변경,
> QuickLook 인라인 편집, 워크플로우 스냅 6가지로 런처를 "행동 허브"로 확장.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L5-1 | **항목별 전용 핫키** ✅ | 앱·URL·폴더에 `Ctrl+Alt+숫자` 등 글로벌 단축키 직접 할당. `hotkey` 프리픽스로 관리. `HotkeyAssignment` 모델 + `InputListener` 확장 + 설정창 "전용 핫키" 탭 | 높음 |
| L5-2 | **OCR 화면 텍스트 추출** ✅ | `ocr` 프리픽스 + F4 글로벌 단축키. RegionSelectWindow 재사용, Windows.Media.Ocr 로컬 엔진. 결과 → 클립보드 복사 + 런처 입력창 자동 채움 | 높음 |
| L5-3 | **QuickLook 인라인 편집** ✅ | F3 미리보기 → Ctrl+E 편집 모드 토글. 텍스트/코드 전체 읽기(300줄 제한 없음). Ctrl+S 저장, ● 수정 마커, Esc 취소 확인, 저장 후 미리보기 새로고침 | 중간 |
| L5-4 | **앱 세션 스냅** ✅ | `session` 프리픽스. `AppSession/SessionApp` 모델 추가 + `AppSettings.AppSessions` 저장. `SessionHandler`: 목록·실행·new/edit/del 서브커맨드. `SessionEditorWindow`: 세션 이름·설명·앱 행(경로+라벨+스냅 팝업 14종+삭제) 인라인 편집. 실행 시 Process.Start → 창 핸들 대기(6초) → ApplySnapToWindow(P/Invoke SetWindowPos+ShowWindow) | 중간 |
| L5-5 | **배치 파일 이름 변경** ✅ | `batchren` 프리픽스로 BatchRenameWindow 오픈. 변수 패턴(`{name}`, `{n:3}`, `{date:format}`, `{ext}`) + 정규식 모드(`/old/new/`). 드래그 앤 드롭·폴더/파일 추가, DataGrid 실시간 미리보기, 충돌 감지(배경 붉은 강조), 확장자 유지 토글, 시작 번호 지정, 적용 후 엔트리 갱신 | 중간 |
| L5-6 | **자동화 스케줄러** ✅ | `sched` 프리픽스. `ScheduleEntry` 모델(Id·Name·Enabled·TriggerType·TriggerTime·WeekDays·TriggerDate·ActionType·ActionTarget·ActionArgs·LastRun) + `AppSettings.Schedules` 저장. `SchedulerService`: 30초 간격 타이머, ±1분 트리거 윈도우, `LastRun.Date == today` 중복 방지, once 실행 후 자동 비활성화. `ScheduleHandler`: 목록(다음 실행 시각 표시)·new·edit·del·Enter 토글. `ScheduleEditorWindow`: 트리거 유형 4종(매일/주중/매주/한번)·요일 다중 선택·날짜 입력, 액션 2종(앱 실행/알림). `ComputeNextRun` + `TriggerLabel` 유틸 공유 | 낮음 |
### Phase L5 구현 순서 (권장)
```
L5-1 (핫키) → L5-2 (OCR) → L5-3 (편집) → L5-5 (배치 이름변경) → L5-4 (세션 스냅) → L5-6 (스케줄러)
```
---
## Phase L6 — 워크플로우 자동화 확장 (v1.7.5~) ✅ 완료
> **방향**: 런처를 "행동 허브"로 완성. 매크로 시퀀서, 컨텍스트 인식, 조건부 스케줄로 반복 작업을 완전 자동화.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L6-1 | **클립보드 파이프라인** ✅ | `pipe` 프리픽스(기존 구현). upper/lower/trim/sort/unique/b64e/b64d/urle/urld 등 체이닝 | 기존 |
| L6-2 | **런처 매크로 시퀀서** ✅ | `macro` 프리픽스. `MacroEntry/MacroStep` 모델 + `AppSettings.Macros` 저장. `MacroHandler`: 목록·new·edit·del·Enter 실행. `MacroEditorWindow`: 유형(앱/URL/폴더/알림/PS) + 대상 + 표시이름 + 딜레이(ms) 인라인 행 편집. 재생: 순서대로 Process.Start/알림 실행 | 중간 |
| L6-3 | **컨텍스트 감지 자동완성** ✅ | `ctx` 프리픽스. `GetForegroundWindow` P/Invoke로 현재 앱 감지. 5개 컨텍스트(웹 브라우저/코드 편집기/오피스/파일 탐색기/커뮤니케이션) → 상황별 런처 명령 제안. Enter 시 해당 프리픽스 런처 입력창에 자동 삽입 | 중간 |
| L6-4 | **조건부 스케줄** ✅ | `ScheduleEntry.ConditionProcess`(프로세스명) + `ConditionProcessMustRun`(실행중/비실행중) 필드 추가. `SchedulerService.ShouldFire()` 확장: `Process.GetProcessesByName()` 조건 체크. `ScheduleEditorWindow`에 조건 섹션 UI 추가 | 낮음 |
### L5-1 항목별 전용 핫키 — 구현 설계
```csharp
// HotkeyAssignment: 단축키 → 실행 대상 매핑 모델
public record HotkeyAssignment(string HotkeyStr, string TargetPath, string Label);
// GlobalHotkeyService 확장
// - RegisterCustomHotkeys(IEnumerable<HotkeyAssignment>) 추가
// - 기존 Alt+Space 핫키와 독립 관리 (별도 id 공간)
// HotkeyHandler (prefix="hotkey"): 등록/삭제/목록 조회
// 런처 -> "hotkey set ctrl+alt+1 C:\Apps\Chrome.exe 크롬"
// 런처 -> "hotkey list" → 등록된 핫키 목록
// 런처 -> "hotkey del ctrl+alt+1"
```
### L5-2 OCR 화면 텍스트 추출 — 구현 설계
```csharp
// Windows.Media.Ocr.OcrEngine (이미 L2-4 ClipboardOcr에서 사용 중)
// OcrHandler (prefix="ocr"):
// 1. 런처 숨김
// 2. 반투명 오버레이 창(전체화면) 표시 → 마우스 드래그로 영역 선택
// 3. PrintScreen + crop → BitmapImage → OcrEngine.RecognizeAsync()
// 4. 결과 텍스트 클립보드 복사 + 런처 재표시 (결과 항목으로 표시)
// ScreenRegionSelector: 기존 ScreenCaptureHandler의 SelectionOverlay 재사용 가능
```
### L5-3 QuickLook 인라인 편집 — 구현 설계
```csharp
// QuickLookWindow.xaml에 편집 모드 토글 버튼 추가 (타이틀바 우상단 ✏ 아이콘)
// TextScrollViewer → TextBox (편집 모드에서만 활성)
// Ctrl+S → File.WriteAllText() + 저장 완료 토스트
// 수정 감지: TextBox.TextChanged → 타이틀에 "●" 마커
// Esc → 저장 안 함 확인(CustomMessageBox) 후 미리보기 모드 복귀
// 편집 가능 확장자: .txt, .md, .log, .cs, .py, .js, .ts, .json, .xml, .yaml 등
```
### L5-5 배치 파일 이름 변경 — 구현 설계
```csharp
// BatchRenameWindow: 선택 파일 목록 + 패턴 입력 + 미리보기 DataGrid
// 패턴 유형:
// {name} → 원본 이름
// {n:3} → 3자리 순번 (001, 002, ...)
// {date} → 오늘 날짜 (yyyyMMdd)
// {ext} → 확장자
// 정규식 치환: /old/new/
// LauncherWindow: 다중 선택(Shift+↑/↓) 후 F2 → BatchRenameWindow 열기
```
---
## 기술 부채 (v1.5.0 해결)
| 항목 | 상태 |
|------|------|
| SnapHandler 기본 기능만 | ✓ 22개 레이아웃으로 확장 (3등분, 2/3, 3분할 조합 추가) |
| Everything 미연동 | ✓ EverythingHandler 구현 (`es` 프리픽스, P/Invoke, graceful fallback) |
| 플러그인 설치 수동 | ✓ PluginHost.InstallFromZip() 로컬 zip 자동 추출·등록 (URL 제외: 사내 보안) |
| 이미지 클립보드 미지원 | ✓ PNG→Base64 DPAPI 암호화 저장/복원, 앱 재시작 후 이미지 히스토리 유지 |
---
## Phase L7 — 런처 개발자·글로벌 도구 확장 (v2.0.1) ✅ 완료
> **방향**: 개발자가 런처를 벗어나지 않고 Git 조회·정규식 테스트·시간대 변환·네트워크 진단을 수행.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L7-1 | **Git 빠른 조회** ✅ | `git` 프리픽스. `git status/log/branch/stash/diff/pull` 서브커맨드. 현재 AX Agent 작업 폴더에서 `.git` 루트 자동 탐색. 비동기 Process 실행 → 출력 클립보드 복사. `pull`은 별도 PowerShell 터미널로 실행. 브랜치명·변경 파일 수 실시간 요약 표시 | 높음 |
| L7-2 | **정규식 테스터** ✅ | `re` 프리픽스. 클립보드 텍스트에 패턴 적용 → 매치 목록 표시. `/old/new/` 치환 모드. `flags:im` 플래그 지정(대소문자·멀티라인·단일라인). `re patterns` 서브커맨드로 이메일·URL·전화번호·날짜·IP·UUID 등 14종 공통 패턴 라이브러리. 매치 결과·치환 결과 클립보드 복사 | 높음 |
| L7-3 | **시간대 변환기** ✅ | `tz` 프리픽스. 15개 주요 도시(서울·도쿄·베이징·뉴욕·LA·런던·파리·시드니 등) 현재 시각 실시간 표시. `tz <도시>` 단일 조회 + 서울 기준 시차 표시. `tz 14:00 to la` 시각 변환. `tz meeting 09:00` 미팅 시각 전 도시 동시 표시. Enter → 클립보드 복사 | 중간 |
| L7-4 | **네트워크 진단** ✅ | `net` 프리픽스. 로컬 어댑터 IP/MAC 즉시 표시. `net ping <호스트>` 4회 핑 테스트(사내 모드: 내부 호스트만). `net dns <도메인>` DNS A 레코드 조회(사외 모드에서 외부 도메인). `net ip`/`net adapter` 상세 정보. 기존 `port` 핸들러(포트·프로세스 조회)와 역할 분리 | 중간 |
---
## Phase L8 — 파일·시스템 유틸리티 강화 (v2.0.1) ✅ 완료
> **방향**: 파일 무결성 검증, 아카이브 조작, 시스템 이벤트 진단, SSH 원격 접속을 런처에서 바로 처리.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L8-1 | **파일 해시 검증** ✅ | `hash` 프리픽스. MD5/SHA1/SHA256/SHA512 비동기 계산. 경로 미입력 시 클립보드 파일 경로 자동 감지. `hash check <기대값>` 클립보드 해시 비교. 결과 클립보드 복사 | 높음 |
| L8-2 | **아카이브 관리** ✅ | `zip` 프리픽스. System.IO.Compression 기반. `zip <경로>` 파일 목록 미리보기(최대 20개). `zip extract` 동일/지정 폴더 압축 해제. `zip folder <폴더>` 폴더→zip 압축. 클립보드 경로 자동 감지 | 중간 |
| L8-3 | **시스템 이벤트 로그** ✅ | `evt` 프리픽스. 최근 24시간 System+Application 로그 조회. `evt error`/`evt warn`/`evt app`/`evt sys`/`evt <키워드>` 필터. EventLogEntry.InstanceId 기반. 이벤트 상세 클립보드 복사 | 중간 |
| L8-4 | **SSH 퀵 커넥트** ✅ | `ssh` 프리픽스. `SshHostEntry` 모델 + `AppSettings.SshHosts` 영속화. `ssh add user@host[:port]` 저장. `ssh del <이름>` 삭제. Enter → Windows Terminal(wt.exe)/PuTTY/PowerShell 순 폴백 실행. 직접 `user@host` 입력 즉시 연결 지원 | 높음 |
---
## Phase L9 — 보안·네트워크·시스템 유틸리티 (v2.0.1) ✅ 완료
> **방향**: 개발자·IT 관리자의 일상 도구 — 비밀번호 생성, 서브넷 계산, 시스템 정리, 진수 변환.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L9-1 | **비밀번호 생성기** ✅ | `pwd` 프리픽스. `RandomNumberGenerator` 기반 암호학적 난수. 강력(대소문자+숫자+특수)/알파뉴메릭/PIN/패스프레이즈 4가지 모드. `pwd 24 strong` 길이·모드 지정. 5개 후보 동시 생성, 강도 레이블 표시. Enter → 클립보드 복사 | 높음 |
| L9-2 | **IP 서브넷 계산기** ✅ | `subnet` 프리픽스. CIDR(x.x.x.x/24) 또는 공백 구분 입력. 네트워크·마스크·브로드캐스트·첫/마지막 호스트·사용 가능 호스트 수 계산. 서브넷 마스크→CIDR 변환. `subnet range x.x.x.10-50` 범위 계산. 이진 마스크 표시 | 높음 |
| L9-3 | **시스템 정리** ✅ | `clean` 프리픽스. 임시 파일(%TEMP%), 휴지통(SHEmptyRecycleBin), 다운로드 30일 이상, AxCopilot 로그. 예상 용량 사전 표시. `clean all`로 일괄 정리. 항목별 실시간 알림 | 중간 |
| L9-4 | **진수 변환기** ✅ | `base` 프리픽스. 10진/16진(0x)/2진(0b)/8진(0o) 자동 감지 변환. `base 255 to hex` 단일 방향 변환. `base ascii 65` ASCII 코드↔문자 변환. 4비트 그룹 이진 표시. Enter → 클립보드 복사 | 중간 |
---
## Phase L10 — 텍스트·데이터·개발 유틸리티 (v2.0.2) ✅ 완료
> **방향**: 개발자 일상 도구 확충 — XML 조작, UUID 생성, SSL 인증서 점검, 더미 데이터 생성.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L10-1 | **XML 포맷터·검증기** ✅ | `xml` 프리픽스. 클립보드 또는 인라인 XML 자동 포맷(들여쓰기). `xml compact/minify`로 압축. `xml validate`로 유효성 검증(줄·열 오류 표시). `xml xpath //경로`로 XPath 쿼리. `xml attr`로 속성 목록 추출. Enter → 클립보드 복사 | 높음 |
| L10-2 | **UUID/GUID 생성기** ✅ | `uuid` 프리픽스. `uuid` 기본 v4 1개 생성. `uuid 5`로 N개 일괄. `uuid upper` 대문자. `uuid seq` UUIDv7 스타일 순차 UUID(타임스탬프 상위 48비트). `uuid short` 8자리 hex 짧은 ID. `uuid nil` Nil UUID. `uuid parse <uuid>`로 버전·변형·타임스탬프 분석 | 높음 |
| L10-3 | **SSL 인증서 체커** ✅ | `cert` 프리픽스. 도메인/IP의 TLS 인증서 조회(443 기본, 포트 지정 가능). 만료일·D-day·발급 대상·발급 기관·SANs·지문 표시. 사내 모드에서는 내부 호스트(192.168.x, 10.x, 172.16-31.x)만 허용. Enter → 결과 클립보드 복사 | 중간 |
| L10-4 | **Lorem Ipsum 생성기** ✅ | `lorem` 프리픽스. `lorem 3`으로 3단락 생성. `lorem words 20` 단어 N개. `lorem sentences 5` 문장 N개. `lorem ko` 한국어 더미 텍스트. `lorem email 5` 더미 이메일 주소. `lorem name 5` 한국어 더미 이름. Enter → 클립보드 복사 | 중간 |
---
## Phase L11 — 개발자 데이터 파싱 도구 (v2.0.3) ✅ 완료
> **방향**: 데이터 형식 분석·변환 도구 — CSV, JWT, Cron, 유니코드 문자 전문 처리.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L11-1 | **CSV 뷰어·파서** ✅ | `csv` 프리픽스. 클립보드 CSV/TSV 자동 감지·파싱. 행수·열수·헤더 미리보기. `csv col N` 컬럼 추출. `csv row N` 행 조회. `csv stats` 숫자 컬럼 합계·평균·최대·최소 계산. `csv tsv` TSV 변환. 쉼표/탭 구분자 자동 감지 | 높음 |
| L11-2 | **JWT 디코더** ✅ | `jwt` 프리픽스. 클립보드 또는 인라인 토큰 자동 감지(eyJ 시작). 헤더(alg·typ)·페이로드(claims)·서명 유무 분석. exp/iat/nbf 타임스탬프 → 날짜 변환. 만료 D-day·남은 시간 계산. `jwt header` / `jwt payload` 부분 조회. **서명 검증 미지원(분석 전용)** | 높음 |
| L11-3 | **Cron 설명기** ✅ | `cron` 프리픽스. 5필드 표준 cron 표현식 파싱. 한국어 설명 생성(예: "평일 오전 9시 실행"). 다음 5회 실행 시간 계산 + 상대 시간 표시. `@daily/@weekly/@monthly/@hourly` 특수 키워드. 필드별 분석(분·시·일·월·요일). Enter → 표현식 복사 | 중간 |
| L11-4 | **유니코드 조회** ✅ | `unicode` 프리픽스. 문자 직접 입력, `U+XXXX`, `0xXXXX`, 10진수 코드포인트 방식 지원. UTF-8·UTF-16 바이트, HTML 엔티티, 카테고리(Lu/Ll/So 등), 블록명 표시. 한글 음절 초·중·종성 분해. 여러 문자 입력 시 코드포인트 범위 요약 | 중간 |
---
## Phase L12 — 시스템·네트워크·텍스트 도구 (v2.0.4) ✅ 완료
> **방향**: 실무 네트워크 진단·시스템 관리·재미있는 텍스트 변환 확충.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L12-1 | **HTTP 요청 테스터** ✅ | `http` 프리픽스. GET/HEAD/POST/PUT/DELETE 메서드. http:// 자동 추가. 상태 코드·응답 시간·Content-Type·주요 헤더 표시. 사내 모드에서 외부 URL 차단(내부 IP만 허용). Enter → 요청 실행 + 결과 클립보드 복사 | 높음 |
| L12-2 | **hosts 파일 관리** ✅ | `hosts` 프리픽스. C:\Windows\System32\drivers\etc\hosts 파싱. 활성·비활성(주석 처리) 항목 분류. `hosts search` 키워드 필터. `hosts open` 메모장 열기. `hosts copy` 전체 내용 복사. 항목 Enter → 클립보드 복사 | 중간 |
| L12-3 | **모스 부호 변환기** ✅ | `morse` 프리픽스. 텍스트 → 모스 부호 (영문자·숫자·구두점 56자 지원). 모스 → 텍스트 역변환 (.-/공백 자동 감지). SOS/AR/AS 프로사인 키워드. 클립보드 자동 감지. 문자별·코드별 대응표 표시 | 낮음 |
| L12-4 | **시작 프로그램 조회** ✅ | `startup` 프리픽스. HKCU/HKLM Run·RunOnce 레지스트리 + 시작 폴더(.lnk) 통합 조회. 범위(현재 사용자/모든 사용자) 그룹화. `startup search` 키워드 필터. `startup folder` 시작 폴더 열기. Enter → 명령 경로 클립보드 복사 | 중간 |
---
## Phase L13 — 시스템 정보·계산 도구 (v2.0.5) ✅ 완료
> **방향**: 네트워크 진단·파일시스템 정보·날짜 계산 도구 보강.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L13-1 | **DNS 레코드 조회** ✅ | `dns` 프리픽스. A/AAAA는 .NET Dns API 직접 사용. MX/TXT/NS/CNAME은 nslookup 서브프로세스 파싱. PTR(역방향 조회) 지원. 사내 모드에서 외부 도메인 차단(내부 IP만 허용). Enter → 비동기 조회 실행 + 결과 복사 | 높음 |
| L13-2 | **PATH 환경변수** ✅ | `path` 프리픽스. Process/User/Machine 세 범위 통합 조회. 경로 존재 여부 아이콘 표시. `path which <파일>` .exe/.cmd/.bat/.ps1 확장자 자동 시도. `path user/system` 범위별 표시. `path search` 키워드 필터 | 높음 |
| L13-3 | **드라이브 정보** ✅ | `drive` 프리픽스. DriveInfo.GetDrives() 기반 전체 드라이브 목록. 고정/이동식/네트워크/CD 드라이브 종류 구분. █░ 시각적 사용량 바 그래프. `drive C` 특정 드라이브 상세. `drive large` 사용량 많은 순 정렬. TB/GB/MB/KB 자동 단위 | 중간 |
| L13-4 | **나이·D-day 계산기** ✅ | `age` 프리픽스. YYYY-MM-DD / YYYYMMDD / M.d 형식 파싱. 과거 날짜 → 만 나이·한국 나이·경과 일수·다음 생일 D-day. 미래 날짜 → D-day·남은 주 계산. `age christmas/newyear` 특수 키워드. `age next monday` 다음 요일까지 D-day | 높음 |
---
## Phase L14 — 네트워크·계산·시스템 도구 (v2.0.6) ✅ 완료
> **방향**: IT 관리·개발 실무 도구 보강 — WoL, 레지스트리 조회, 비용 계산, 폰트 검색.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L14-1 | **Wake-on-LAN** ✅ | `wol` 프리픽스. MAC 주소(AA:BB:CC:DD:EE:FF, 대시, 구분자 없음) 매직 패킷 전송. 포트 9+7 브로드캐스트(255.255.255.255). `wol save 이름 MAC`으로 호스트 저장(`wol_hosts.json`). `wol delete 이름` 삭제. 저장 항목 목록에서 Enter → 즉시 전송 | 중간 |
| L14-2 | **레지스트리 조회** ✅ | `reg` 프리픽스. HKCU/HKLM/HKCR/HKU/HKCC 모든 하이브 지원. 하위 키·값 목록 표시. 값 타입(REG_SZ/DWORD/BINARY/MULTI_SZ) 포맷 출력. 9개 즐겨찾기 경로 빠른 접근. `reg search` 즐겨찾기 필터. 조회 전용(쓰기/삭제 없음) | 높음 |
| L14-3 | **팁·할인·분할 계산기** ✅ | `tip` 프리픽스. 금액만 입력 시 10/15/18/20/25% 팁 전체 표시. `tip 금액 %` 특정 팁. `tip 금액 % 인원` 팁+분할. `tip 금액 off %` 할인가 계산. `tip 금액 vat` VAT 포함/역산. `tip 금액 / 인원` 균등 분할. 100원 단위 올림 계산 | 높음 |
| L14-4 | **시스템 폰트 목록** ✅ | `font` 프리픽스. `Fonts.SystemFontFamilies` WPF API 기반. 설치 폰트 전체 목록 캐시(최초 1회 로드). `font 맑은/nanum/mono` 키워드 필터. 한글·나눔·코딩·Arial·Times 그룹 힌트. 검색 결과 전체 일괄 복사 지원 | 중간 |
---
## Phase L15 — WSL·환율·건강·Markdown 도구 (v2.0.7) ✅ 완료
> **방향**: 개발자 편의·생활 실용 도구 보강 — WSL 관리, 환율 변환, BMI 계산, Markdown 분석.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L15-1 | **WSL 관리** ✅ | `wsl` 프리픽스. `wsl --list --verbose` 서브프로세스 기반 distro 목록(UTF-16 인코딩). 상태(Running/Stopped) 아이콘 구분. `wsl stop [all/distro]` 종료. `wsl default <distro>` 기본 설정. distro 이름 직접 검색 → 실행. Windows Terminal(wt.exe) 우선, 없으면 UseShellExecute 폴백 | 높음 |
| L15-2 | **환율 변환기** ✅ | `currency` 프리픽스. KRW/USD/EUR/JPY/CNY/GBP/HKD/TWD/SGD/AUD/CAD/CHF/MYR/THB/VND 15개 통화 내장. `currency 100 usd` → KRW 환산. `currency 100 usd eur` → 크로스 환산. `currency 50000 krw usd`. `currency rates` 전체 환율표. 한글 별칭(달러/엔/위안) 지원. JPY/KRW/VND 소수점 0자리 포맷 | 높음 |
| L15-3 | **BMI·건강 계산기** ✅ | `bmi` 프리픽스. `bmi 170 65` BMI 지수 + WHO 아시아태평양 기준 판정. 적정 체중 범위(BMI 18.5~22.9). `bmi 170 65 30 m` 나이+성별 포함 시 Harris-Benedict 기초대사량 + 5단계 활동별 권장 칼로리. `bmi ideal 170` 키 기준 적정/과체중/비만 체중 범위 | 높음 |
| L15-4 | **Markdown 분석기** ✅ | `md` 프리픽스. 클립보드 Markdown 자동 읽기. `md toc` 앵커 포함 목차(TOC) 생성. `md strip` 마크다운 기호 완전 제거 → 순수 텍스트. `md count` 줄/단어/문자/제목/코드블록/목록/링크/이미지/볼드 통계. `md links` 링크 목록 추출. `md images` 이미지 URL 목록. [GeneratedRegex] 소스 생성기 활용 | 높음 |
---
## Phase L16 — ping·Docker·Todo·Table 도구 (v2.0.8) ✅ 완료
> **방향**: 개발자 인프라 도구 + 생산성 도구 보강 — 네트워크 진단, 컨테이너 관리, 할 일 목록, 표 변환.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L16-1 | **ping·tracert 실행기** ✅ | `ping` 프리픽스. 입력 즉시 1회 ping 시도 결과 표시(응답 ms 실시간). Enter → Windows Terminal(wt.exe) 우선 실행. `ping trace <host>` tracert. `ping local` 로컬 어댑터 IP·게이트웨이 정보. `ping scan <대역>` PowerShell 스캔 스크립트 실행. `ping -t` 무한 반복. 사내 모드에서 외부 도메인 차단 | 높음 |
| L16-2 | **Docker 관리** ✅ | `docker` 프리픽스. `docker ps` 실행 중 컨테이너 목록(이름·상태·포트). `docker all` 중지 포함 전체 목록. `docker images` 로컬 이미지 목록(크기·생성일). `docker stop/start <이름>` 터미널 없이 직접 실행. `docker logs <이름>` 터미널에서 로그. `docker shell <이름>` exec -it sh 접속. Docker 미설치 감지 | 높음 |
| L16-3 | **할 일 목록** ✅ | `todo` 프리픽스. `todo <내용>` 새 항목 추가. `todo done <번호>` 완료 토글. `todo del <번호>` 삭제. `todo clear` 완료 항목 정리. `todo clear all` 전체 삭제. `todo <검색어>` 키워드 필터. 번호만 입력 시 빠른 완료 토글. 미완료 먼저, 완료 항목 하단 그룹. `%APPDATA%\AxCopilot\todos.json` 로컬 저장 | 높음 |
| L16-4 | **텍스트 → 표 변환기** ✅ | `table` 프리픽스. 클립보드 텍스트 자동 읽기. 탭·CSV·공백 구분자 자동 감지. `table` → 마크다운 표. `table csv` → CSV 변환. `table html` → HTML `<table>` 태그. `table flip` 행·열 전치(transpose). `table sort N` N번 열 기준 정렬(숫자/문자 자동 감지). 셀 너비 자동 정렬(PadRight). 미리보기 3줄 표시 | 높음 |
---
## Phase L17 — 단위·숫자·YAML·Gitignore 도구 (v2.0.9) ✅ 완료
> **방향**: 개발자·업무 실용 도구 심화 — 단위 변환, 숫자 읽기, YAML 분석, 프로젝트 초기화.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L17-1 | **단위 변환기** ✅ | `unit` 프리픽스. 길이(km·m·ft·in·mi)·무게(kg·lb·oz·근)·온도(°C·°F·K)·넓이(m²·ha·acre·평)·속도(km/h·mph·m/s·knot)·데이터(bit·B·KB~PB)·압력(Pa·atm·bar·psi)·부피(L·mL·gallon·cup) 8개 카테고리 50+ 단위. `unit 100 km m` → 변환. 대상 단위 생략 시 같은 카테고리 전체 일괄 변환. 한글 단위명 별칭 지원 | 높음 |
| L17-2 | **숫자 포맷·읽기** ✅ | `num` 프리픽스. `num 1234567` → 천단위·한글 단위(만·억·조)·한국어 읽기·영어 읽기·16진수·8진수·2진수·과학표기·로마 숫자 일괄 표시. `0x/0b/0o` 접두사 진수 입력. `num 42 ko` 한국어 읽기만. `num 42 en` 영어 읽기만. 1~3999 로마 숫자 변환. ToKorean(): 조·억·만 단위 재귀 분해 | 높음 |
| L17-3 | **YAML 파서·분석기** ✅ | `yaml` 프리픽스. 클립보드 자동 읽기. 외부 라이브러리 없이 순수 구현(경량 파서). `yaml validate` 유효성 검사. `yaml keys` 최상위 키 목록. `yaml get key.sub` 점 표기법 경로 조회. `yaml stats` 줄·키·깊이 통계. `yaml flat` 점 표기법 평탄화(flatten). [GeneratedRegex] 소스 생성기 | 높음 |
| L17-4 | **.gitignore 생성기** ✅ | `gitignore` 프리픽스. Node/Python/C#(.NET)/Java/Go/Rust/React(Next.js·Vite·Vue)/Flutter/Android/iOS/Unity/Windows/macOS/Linux 14개 내장 템플릿. 별칭(nodejs·npm·dotnet·net·maven·golang·cargo·nextjs·swift 등) 지원. 여러 템플릿 명 입력 시 자동 병합. 미리보기 12줄 표시. Enter → 클립보드 복사 | 높음 |
---
## Phase L18 — SQL·TextCase·Aspect·Abbr 도구 (v2.1.0) ✅ 완료
> **방향**: 개발자 텍스트 처리·분석 도구 강화 — SQL 포맷, 텍스트 케이스, 해상도 계산, 약어 사전.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L18-1 | **SQL 포맷터·분석기** ✅ | `sql` 프리픽스. 클립보드 SQL 자동 읽기. 키워드 기반 들여쓰기 포맷(새 줄 시작 키워드 집합). `sql mini` 미니파이. `sql upper/lower` 키워드 대소문자 변환. `sql stats` 테이블·JOIN·WHERE 조건·서브쿼리·DML 유형 분석. `sql tables` FROM/JOIN 테이블 추출. `sql select <table>` SELECT 쿼리 템플릿 생성. [GeneratedRegex] 소스 생성기 | 높음 |
| L18-2 | **텍스트 케이스 변환기** ✅ | `text` 프리픽스. 클립보드 자동 읽기. 13가지 케이스 일괄 표시: camelCase·PascalCase·snake_case·SCREAMING_SNAKE·kebab-case·URL slug·dot.case·UPPER·lower·Title·Sentence·뒤집기·trim. 인라인 입력(`text camel hello world`) 지원. Tokenize(): camelCase 경계 분리 + 구분자 정규화. ToSlug(): 유니코드 정규화(NFC→ASCII). [GeneratedRegex] 소스 생성기 | 높음 |
| L18-3 | **화면 비율·해상도 계산기** ✅ | `aspect` 프리픽스. 9개 비율 프리셋 내장(16:9·4:3·21:9·1:1·9:16·3:2·2:1·5:4·2.35:1). `aspect 1920 1080` → GCD 약분 비율 계산·MP 표시. `aspect 16:9 1280` 너비 기준 높이 계산. `aspect 16:9 h 720` 높이 기준 너비 계산. `aspect crop 1920 1080 4:3` 크롭 영역+FFmpeg crop 파라미터. 소수 비율(2.35:1) 지원 | 높음 |
| L18-4 | **IT·개발 약어 사전** ✅ | `abbr` 프리픽스. 150개+ 내장 약어(웹/네트워크·개발·DB·보안·클라우드·AI·데이터형식·협업 8개 카테고리). 정확 일치 → 약어/원문/설명/카테고리 상세 표시. 부분 일치 → 목록 표시. `abbr 클라우드` 카테고리별 필터. `abbr jwt` → JWT 상세. API/CRUD/REST/JWT/MCP/SOLID/CAP/ACID/OWASP 등 포함 | 높음 |
---
## Phase L19 — Calc·Timer·IP·NPM 도구 (v2.1.0) ✅ 완료
> **방향**: 개발자·네트워크 실용 계산 도구 강화 — 공학 계산기, 백그라운드 타이머, IP 분석, 패키지 매니저 명령어 생성.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L19-1 | **공학 계산기** ✅ | `calc` 프리픽스. 삼각함수(sin·cos·tan·asin·acos·atan), 역삼각, 제곱근(sqrt·cbrt), 로그(log·log2·ln·exp), 거듭제곱(pow), 팩토리얼(0~20), GCD·LCM, 절댓값·올림·내림·반올림, 라디안↔도 변환, 상수(π·e·φ). 결과에 과학적 표기법·log₁₀ 부가정보 동시 표시. `calc sin 45` → 0.7071 형식 | 높음 |
| L19-2 | **타이머·알람** ✅ | `timer` 프리픽스. `timer 30`(초)·`timer 5m`(분)·`timer 1h30m`(시간+분) 형식 파싱. `timer stop`·`timer stop <id>` 특정 타이머 취소. 정적 타이머 레지스트리로 복수 타이머 동시 운영. `Task.Delay` 백그라운드 실행 + `NotificationService.Notify`로 완료 알림. 실행 중 목록 및 남은 시간 실시간 표시 | 높음 |
| L19-3 | **IP 주소 유틸리티** ✅ | `ip` 프리픽스. `ip my` → NetworkInterface 전 어댑터 IPv4·마스크·게이트웨이. `ip 192.168.1.1` → 분류(사설/공인/루프백/APIPA/멀티캐스트)·클래스(A~E)·이진·16진·정수 변환. `ip 10.0.0.0/8` CIDR → 네트워크·브로드캐스트·와일드카드·호스트 범위·수. `ip range <start> <end>` IP 범위 계산. `ip bin/hex/int` 표현 변환. `ip from <uint>` 정수→IP | 높음 |
| L19-4 | **npm/yarn/pnpm 명령어 생성기** ✅ | `npm` 프리픽스. `npm install <pkg>` → npm·yarn·pnpm 3종 설치 명령 동시 표시(일반/devDependencies/전역). init·uninstall·run·build·test·update·list·audit·publish·scripts·global·clean·ci·lock 서브커맨드 지원. `npm run dev` → yarn dev / pnpm run dev 동등 명령 비교. Enter로 클립보드 복사 | 높음 |
---
## Phase L20 — Hex·Rand·Str·Perm 도구 (v2.1.0) ✅ 완료
> **방향**: 개발자 데이터 처리·생성 도구 강화 — 16진수 변환, 랜덤 생성, 문자열 조작, Unix 권한 계산.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L20-1 | **16진수·바이트 변환기** ✅ | `hex` 프리픽스. 클립보드/인라인 텍스트→hex 변환(공백 구분·소문자·0x접두사). 순수 hex 문자열→UTF-8/ASCII 자동 디코딩. `hex dump <text>` 오프셋+hex+ASCII 형식 16줄 단위 덤프. `hex 0xFF` 단일 hex값→10진/8진/이진/ASCII. `hex add/xor/and/or/not` 비트 연산. `hex bytes <n>` KB/MiB/GB 크기 단위 변환. CS1631 catch-yield 패턴 적용 | 높음 |
| L20-2 | **랜덤 생성기** ✅ | `rand` 프리픽스. 기본: 1~100 난수. `rand <max>` / `rand <min> <max>`. `rand str [len] [charset]` 영숫자/alpha/num/hex/special 문자셋. `rand color` HEX+RGB+HSL 랜덤 색상 5개. `rand dice [NdS]` 다면체 주사위(1d6~100d10000). `rand coin` 동전 던지기. `rand pick/shuffle` 항목 선택·셔플. `rand uuid` UUID v4. `rand token` RandomNumberGenerator 보안 토큰. `rand pin [len]` PIN 번호 | 높음 |
| L20-3 | **문자열 조작 도구** ✅ | `str` 프리픽스. `str escape/unescape html/url/json/regex` 이스케이프 변환. `str repeat <n> [sep]` 반복. `str pad <w> [left/right/both] [char]` 패딩. `str wrap <cols>` 단어 단위 줄바꿈. `str sort [desc]` 줄 정렬. `str unique` 중복 제거. `str join/split <sep>` 구분자 변환. `str replace <from> <to>` 치환. `str extract email/url/number/ip` 패턴 추출. `str lines` 줄/단어/문자 통계. [GeneratedRegex] 소스 생성기 | 높음 |
| L20-4 | **Unix 파일 권한 계산기** ✅ | `perm` 프리픽스. `perm 755` 8진수→기호(rwxr-xr-x)·소유자/그룹/기타 상세 설명·용도 안내·관련 권한 제안. `perm rwxr-xr-x` 기호→8진수 역변환. `perm +x/-x/+w/-r 644` 비트 수정 연산. `perm umask 022` umask 적용 시 파일(666)/디렉토리(777) 결과 계산. `perm common` 14가지 자주 쓰는 권한 목록. chmod 명령 자동 생성 | 높음 |
---
## Phase L21 — TOML·Log·PowerShell·단축키 도구 (v2.1.0) ✅ 완료
> **방향**: 개발자 설정 파일·로그 분석·Windows 자동화·단축키 생산성 강화.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L21-1 | **TOML 파서·분석기** ✅ | `toml` 프리픽스. 클립보드 자동 읽기. 외부 라이브러리 없이 순수 구현. `toml validate` 유효성 검사. `toml keys` 최상위 키 목록. `toml get key.sub` 점 표기법 경로 조회. `toml stats` 줄·키·섹션 통계. `toml flat` 평탄화. YAML/JSON과 같은 패턴의 3번째 설정 파일 형식 지원 | 높음 |
| L21-2 | **로그 파일 분석기** ✅ | `log` 프리픽스. 클립보드 또는 `log <경로>` 파일 경로 입력. ERROR/WARN/INFO/DEBUG 레벨 파싱 + 건수 요약. `log error` 오류 줄만 필터. `log last <n>` 마지막 N줄 표시(tail). `log grep <키워드>` 키워드 필터. `log stats` 레벨별 통계 + 시간대 분포. 스택트레이스·예외 패턴 자동 감지 | 높음 |
| L21-3 | **PowerShell 명령 생성기** ✅ | `ps` 프리픽스. 자주 쓰는 PowerShell 명령어 빠른 조회·생성·실행. 카테고리별 명령(파일/프로세스/네트워크/서비스/레지스트리/이벤트). `ps <키워드>` 명령 검색. `ps <명령어>` 생성 → Enter 시 PowerShell 터미널 실행. 파이프라인 예시 표시. 원라이너 복사 지원 | 높음 |
| L21-4 | **단축키 참조 사전** ✅ | `key` 프리픽스. Windows/VS Code/Chrome/Vim/Excel 5개 앱 단축키 내장(100개+). `key vscode` 전체 목록. `key vscode find` 키워드 검색. `key win` Windows 단축키. `key chrome` 브라우저 단축키. `key vim` Vim 명령. 단축키 → 기능 설명 양방향 검색. Enter → 단축키 클립보드 복사 | 높음 |
---
## Phase L22 — 프로세스·Excel·pip·업무양식 도구 (v2.1.0) ✅ 완료
> **방향**: 일반 사무 업무 실용성 우선 — 기존 계획(`geo`·`cargo`)은 사무 환경과 거리가 있어 `xl`(Excel 함수 레퍼런스)과 `form`(업무 양식 템플릿)으로 대체.
| # | 기능 | 설명 | 우선순위 |
|---|------|------|----------|
| L22-1 | **프로세스 상세 조회·정리** ✅ | `proc` 프리픽스 (`kill`=강제종료 분리, `proc`=조회·분석). 메모리 정렬 목록. `proc top` 상위 15개. `proc mem` 메모리 정렬. `proc <이름>` 검색. `proc kill <이름>` 종료. `proc stats` 전체 통계 (수·메모리 합·CPU 활성 수). PC 느릴 때 즉시 확인 가능 | 높음 |
| L22-2 | **Excel 함수 레퍼런스** ✅ | `xl` 프리픽스. 조회(VLOOKUP·XLOOKUP·INDEX/MATCH)·논리(IF·IFS·IFERROR)·합산(SUM·SUMIF)·개수(COUNT·COUNTIF)·텍스트(LEFT·MID·TRIM·SUBSTITUTE)·날짜(DATEDIF·EDATE)·수학(ROUND·MOD)·통계(AVERAGE·RANK) 8개 카테고리, 80개+ 함수. `xl lookup` 카테고리 조회. `xl <검색어>` 함수명·설명 검색. Enter → 함수명 복사 | 높음 |
| L22-3 | **Python pip 명령 생성기** ✅ | `pip` 프리픽스. install·uninstall·list·venv·conda 5개 카테고리 35개+ 명령. pip2/pip3 동시 표시. `pip venv` 가상환경 생성·활성화. `pip conda` Conda 환경 관리. `pip <카테고리>` 목록. `pip <검색어>` 검색. Enter → pip3 명령 복사. 데이터 분석·Python 자동화 업무 지원 | 중간 |
| L22-4 | **업무 양식·문서 템플릿** ✅ | `form` 프리픽스. 회의록(기본·주간)·주간/월간 보고서·이메일(요청·사과·공지)·프로젝트 계획서/완료보고서·성과 자기평가서·코드리뷰 체크리스트·온보딩 체크리스트 6개 카테고리 13개 양식. `form meeting` 카테고리 조회. `form <검색어>` 검색. Enter → 양식 전체를 클립보드에 복사. 오늘 날짜 자동 삽입 | 높음 |
---
## Phase L23 — 한국 사무 환경 특화 도구 (v2.2.0) ✅ 완료
> **방향**: 외부 설치 없이 동작하고, 한국 사무 환경에 특화된 도구만 선택. 기존 벤치마킹 기반 볼륨·북마크·QR·회의링크 계획 전면 재수립.
| # | 기능 | 설명 |
|---|------|------|
| ✅ L23-1 | **한국 공휴일·업무일 달력** (`cal`) | 2024~2027 공휴일 66개 내장 딕셔너리. `cal` 이번달 공휴일·업무일 총수·잔여. `cal next` 다음 공휴일 5개 D-N일. `cal workdays` 이번달 업무일 현황. `cal today` 오늘 공휴일 여부. `cal 2026-05` 특정 월 조회. 연차 계획·납기 산정 활용 |
| ✅ L23-2 | **연차·휴가 관리** (`leave`) | `%APPDATA%\AxCopilot\leave.json` 로컬 저장. `leave set 15` 연간 일수 설정. `leave use 날짜 [0.5]` 사용 기록(반차 지원). `leave del 날짜` 삭제. `leave remaining` 잔여 연차. `leave list` 사용 이력. `leave clear` 올해 초기화 |
| ✅ L23-3 | **근무 시간·급여 계산** (`work`) | `work 09:00 18:30` 근무시간·초과근무(점심 1h 자동 제외). `work 09:00 18:30 -30` 점심 N분 지정. `work 09:00 18:30 pay 15000` 시급 기준 급여(초과 1.5배). `work pay N` 직전 계산 재활용. `work week 45.5` 주간 40h 기준 초과 계산 |
| ✅ L23-4 | **한/영 타이핑 오류 교정** (`fix`) | 두벌식 영→자모 매핑 + HangulComposer 상태 기계(초성19·중성21·종성28·복합모음7·복합종성11). `fix gksrmf``안녕`. 빈 쿼리 시 클립보드 자동 교정. Enter → 교정 결과 클립보드 복사 |
---
## Phase L24 — 문서·Office 생산성 도구 (v2.2.0) ✅ 완료
> **방향**: 기존 핸들러 데이터 보강 + 문서 작성 생산성 강화. 신규 핸들러 최소화.
| # | 기능 | 설명 |
|---|------|------|
| ✅ L24-1 | **`form` 양식 확장** | 인수인계서·업무지시서·품의서(handover) + 업무일지·일일업무보고·주요업무계획표(daily) 6종 추가 → 19개. 날짜·주차 자동 삽입 |
| ✅ L24-2 | **`key` 단축키 확장** | Word(25개)·PowerPoint(18개)·Teams(18개)·Outlook(21개) 추가 → 총 10개 앱 지원 |
| ✅ L24-3 | **자주 틀리는 맞춤법** (`spell`) | 63개 내장 목록 6개 카테고리(되/돼·안/않·혼동어·맞춤법·띄어쓰기·외래어). 빈 쿼리 시 클립보드 자동 검사 |
| ✅ L24-4 | **사용자 정의 약어 등록** (`abbr` 확장) | `abbr add MOU 양해각서` / `abbr del MOU` / `abbr custom`. `abbr_custom.json` 로컬 저장. 검색 시 내장+커스텀 통합 |
---
## Phase L24 구 계획 — 검색 품질·시스템 제어 심화 (폐기됨)
> ※ 볼륨·밝기·집중모드·북마크·QR는 사무 환경 필요성 낮음 → 폐기. 아래는 기록용 보존.
## Phase L24_OLD — 검색 품질·시스템 제어 심화 (v2.2.0) 🚫 폐기
> **방향**: 핸들러 추가보다 **기존 기능 깊이 강화**. 벤치마킹 공백 5~6순위 + 검색 품질 개선.
| # | 기능 | 설명 | 근거 |
|---|------|------|------|
| L24-1 | **화면 밝기·야간 모드 제어** | `bright` 프리픽스. 내장 모니터 밝기 조절 (WMI `WmiMonitorBrightnessMethods`). `bright 80` 수치 지정. `bright +10` / `bright -10` 상대 조절. `bright night on/off` Windows 야간 모드 레지스트리 토글. 외장 모니터는 미지원 안내 (DDC/CI는 별도 드라이버 필요). 노트북 사용자 발표·야간 작업 수요 | Raycast 인기 System Command 2위 |
| ✅ L24-2 | **파일 검색 결과 아이콘 표시** | Shell32 `SHGetFileInfo` + `SHGFI_USEFILEATTRIBUTES` P/Invoke. Dispatcher STA 스레드에서 HICON 추출 → BitmapSource PNG 변환 → `%LOCALAPPDATA%\AxCopilot\IconCache\{ext}.png` 캐시. `IconCacheService.WarmUp()` 앱 시작 시 13개 주요 확장자 사전 캐시. `CommandResolver` + `FileBrowserHandler` 양쪽에 연동 | 완료 (Phase UX) |
| ✅ L24-3 | **퍼지 검색 랭킹 개선** | `UsageRankingService` `{count, lastUsedMs}` 레코드 전환. 30일 지수 감소 decay: `score = count × e^(-days/43.3)`. 구 형식(`{key: count}`) 자동 마이그레이션. 정확 일치 > 초성 일치 > 부분 일치 기존 6단계 점수 체계와 결합 | 완료 (Phase UX) |
| L24-4 | **집중 모드 (Focus Mode)** | `focus` 프리픽스. `focus 25` → 25분 포모도로 타이머 + Windows 알림 방해 금지 모드 자동 활성화 (`SetThreadExecutionState` / Focus Assist 레지스트리). 종료 시 자동 복원. `focus stop` 즉시 종료. 독 바에 남은 시간 표시. Raycast Focus Mode 대응 | 재택·오픈오피스 환경 집중 업무 수요 |
---
## Phase L25 — 런처 핵심 UX 재정비 (v2.1.0) ✅ 완료
> **방향**: 사용자가 자주 요청하는 **UX 개선**과 **설정 편의성** 강화. 새 핸들러 추가 없음.
| # | 기능 | 설명 |
|---|------|------|
| ✅ L25-1 | **런처 결과 미리보기 패널** | `LauncherViewModel.UpdatePreviewAsync()` 80ms 디바운스. 텍스트 파일(16개 확장자) 첫 6줄 인라인 표시. 클립보드 텍스트 400자 미리보기. `PreviewPanel` Border (Row 5, MaxHeight 100px, 취소토큰 CancellationToken). `HasPreview``BoolToVisibilityConverter` |
| ✅ L25-2 | **클립보드 히스토리 이미지 지원** | 이미지 PNG 캐시 저장 + 썸네일(80px) 표시. `ClipboardThumbnailConverter` / `ClipboardHasImageConverter` XAML 연동. Enter → 원본 해상도 클립보드 재복사. L2-1 기구현 확인 |
| ✅ L25-3 | **런처 폭·위치 기억** | `LauncherSettings.RememberPosition/LastLeft/LastTop` 추가. `CenterOnScreen()` 위치 복원 로직 (화면 경계 Clamp). `Window_Deactivated` 이탈 시 비동기 저장 (`Task.Run → SettingsService.Save()`). 설정창 토글 UI 추가 |
| ✅ L25-4 | **핫키 커스터마이징 확장** | 설정창 ComboBox 12개 프리셋 (Alt+Space / Win+Space / Ctrl+Space / Ctrl+Alt+Space / F12 / F11 / Ctrl+F12 / Ctrl+Shift+Space / Alt+F1 / Ctrl+Alt+A / Win+Alt+Space / Ctrl+Alt+X). `EnsureHotkeyInCombo()` 기존 저장값 보존. L5-1 기구현 확인 |
---
## Phase L26 — 개인 생산성 강화 도구 (v2.2.0) ✅ 완료
> **방향**: 사무 환경에서 매일 반복적으로 쓰이는 **연락처·알림·업무 문구·통합 오늘 뷰** 4종 구현.
> 로컬 JSON 저장, 인터넷 없이 완전 동작, 한국어 특화.
| # | 기능 | 설명 |
|---|------|------|
| ✅ L26-1 | **contact — 로컬 연락처 관리** | `Contact { Name, Dept, Phone, Email, Memo }` · `%APPDATA%\AxCopilot\contacts.json` 저장 · 이름/부서/메모 검색 · 복사 우선순위: 이메일 > 전화 > 이름 · `add / del` 서브명령 |
| ✅ L26-2 | **remind — 특정 시각 알림** | `RemindEntry { Id, Time, Message }` · 한국어 시각 파싱 (오전/오후N시M분, HH:mm) · 시각 경과 시 자동 내일 설정 · `CancellationTokenSource` 취소 관리 · `GetTodayReminders()` TodayHandler 연동 |
| ✅ L26-3 | **phrase — 업무 문구 모음** | 62종 내장 문구 · 7개 카테고리: 인사/보고/요청/마무리/승인결재/회의/사과지연 · 카테고리 키워드 매칭 + 텍스트 검색 폴백 · Enter: 클립보드 복사 |
| ✅ L26-4 | **today — 오늘 업무 통합 뷰** | 날짜/요일/공휴일 · 미완료 할일 건수 (`todos.json` 파싱) · 오늘 알림 목록 (`RemindHandler` 연동) · 다음 공휴일 D-day · 이번달 잔여 업무일 |
---
## Phase L27 — 경쟁 공백 즉시 해소: Windows 일상 제어 (v2.3.0) ✅ 완료
> **방향**: Raycast·Alfred·PowerToys가 공통 제공하나 AX에 없는 **일상 빈도 최상위 기능** 6종 일괄 구현.
> 모두 외부 설치 의존 없이 Windows 네이티브 API + 로컬 파싱으로 구현.
| # | 기능 | 프리픽스 | 구현 방식 |
|---|------|---------|---------|
| ✅ L27-1 | **브라우저 북마크 검색** | (퍼지 통합) | `BookmarkHandler.cs` 기구현 — Edge/Chrome Bookmarks JSON 파싱, 5분 캐시 TTL, 제목·URL 검색, Enter → 기본 브라우저로 열기. 프리픽스 없이 일반 검색에 통합 |
| ✅ L27-2 | **시스템 볼륨 제어** | `vol` | `VolHandler.cs` — Windows Core Audio API COM 직접 호출 (IAudioEndpointVolume). `vol 50` 설정, `vol up/down` ±10%, `vol mute` 토글. 볼륨 바 시각화. NuGet 불필요 |
| ✅ L27-3 | **QR 코드 생성** | `qr` | `QrHandler.cs` — QRCoder NuGet (순수 C# QR 행렬). `qr {텍스트}` → Enter: PNG 클립보드 복사. `qr save {텍스트}` → TEMP 저장 후 탐색기 열기 |
| ✅ L27-4 | **회의 링크 전용 관리** | `meet` | `MeetHandler.cs``%APPDATA%\AxCopilot\meet.json` 로컬 저장. `meet add/del` CRUD. 서비스 자동 감지 (Zoom/Teams/Google Meet/Webex/Discord/Slack). Enter → URI 열기 |
| ✅ L27-5 | **화면 밝기 제어** | `bright` | `BrightHandler.cs` — WMI PowerShell subprocess (Get-CimInstance WmiMonitorBrightness). 노트북 내장 디스플레이. `bright 70` 설정, `bright up/down` ±10%. 외장 모니터 미지원 안내 |
| ✅ L27-6 | **클립보드 순차 붙여넣기** | `paste` | `PasteHandler.cs` — ClipboardHistoryService 연동. `paste 3 1 5` → 3번→1번→5번 순서대로 Ctrl+V. `paste all` 전체 순차 붙여넣기. SendInput P/Invoke 방식 |
**NuGet 추가**: `QRCoder 1.6.0` (순수 C#, 외부 의존 없음, ~150KB DLL)
**빌드**: 경고 0, 오류 0
---
## Phase L28 — Windows 생태계 통합 + 콘텐츠 UX 강화 (v2.3.0) ✅ 완료
> **방향**: PowerToys·Raycast Windows 버전이 선점 중인 **Windows 네이티브 통합** + 스니펫·미리보기 UX 수준 향상.
> 외부 설치(winget)가 필요한 기능은 미설치 감지 → 안내 메시지 패턴 적용.
| # | 기능 | 프리픽스 | 구현 방식 |
|---|------|---------|---------|
| ✅ L28-1 | **winget 앱 검색·설치** | `pkg` | `PkgHandler.cs``winget search` subprocess 결과 Regex 파싱. `pkg install {id}` → cmd 터미널로 실행. `pkg list` / `pkg upgrade`. winget 미설치 감지 후 안내. PowerToys CP 대응 |
| ✅ L28-2 | **스니펫 동적 플레이스홀더** | `;` 확장 | `SnippetHandler.cs` 수정 — 기존 {date}/{time} 외 `{clipboard}` (현재 클립보드), `{user}` (사용자명), `{computer}` (PC명), `{weekday}` (한국어 요일), `{app}` (이전 포커스 앱 프로세스명) 5개 추가. Raycast 스니펫 대응 |
| ✅ L28-3 | **파일 미리보기 강화** | 파일 검색 확장 | `LauncherViewModel.cs` 수정 — 이미지(10종): BitmapDecoder 해상도 + 파일 크기. PDF: PdfPig 페이지 수 + 첫 페이지 텍스트 200자. 오디오/동영상: 파일 크기 + 수정일. Alfred Grid View 경량 대응 |
| ✅ L28-4 | **클립보드 텍스트 즉시 변환** | `ap` | `ApHandler.cs` — 15종 변환: upper/lower/trim/sort/rsort/unique/number/reverse/blank/single/count/json/slug/base64/decode64 + replace 치환. PowerToys Advanced Paste 대응 (텍스트 변환 중심) |
**NuGet 추가**: 없음 (PdfPig 기존 참조 활용)
**빌드**: 경고 0, 오류 0
---
## Phase L29 — AX 차별화 심화: 한국어·사내·AI 독점 (v2.4.0) ✅ 완료
> **방향**: 경쟁 서비스가 구조적으로 따라올 수 없는 **한국어 특화·사내 환경·AI 연동** 깊이 강화.
> Raycast가 Windows로 확장하더라도 절대 복제 불가한 영역.
| # | 기능 | 프리픽스 | 구현 방식 |
|---|------|---------|---------|
| ✅ L29-1 | **오프라인 국어·영한 사전** | `dict` | `DictHandler.cs` — 국어 혼동어·업무용어·한자어 48개 + 영한 업무 영어 25개 내장. `dict {단어}` 뜻풀이·유의어·반의어·주의사항. `dict en {word}` 영한 검색 + 예문. Enter: 뜻풀이 클립보드 복사. 인터넷 불필요 |
| ✅ L29-2 | **명령 체인 (flow)** | `flow` | `FlowHandler.cs``flow add {이름} {cmd1} > {cmd2} > ...` 텍스트 기반 워크플로우 저장. `%APPDATA%\AxCopilot\flows.json` 로컬 저장. `flow {이름}` → 명령 목록 클립보드 복사. `flow del` 삭제. Alfred 워크플로우 경량 대응 |
| ✅ L29-3 | **맞춤법 사용자 항목 추가** | `spell` 확장 | `SpellHandler.cs` 수정 — `spell add {틀린} {올바른} [설명]` 사용자 항목 추가. `spell del {틀린}` 삭제. `spell custom` 사용자 항목만 표시. `%APPDATA%\AxCopilot\spell_custom.json` 저장. 검색·클립보드 검사에 사용자 항목 통합 |
| ✅ L29-4 | **검색 결과 카테고리 분류** | 전체 검색 강화 | `BookmarkHandler.cs` 수정 — 북마크 검색 결과에 `Group="📑 북마크"` 카테고리 헤더 설정. LauncherItem.Group 기반 분류 기초 구현. 추후 앱·파일·명령별 헤더 확장 예정 |
**빌드**: 경고 0, 오류 0
---
## 핸들러 추가 기준 (신규 Phase 수립 시 체크리스트)
> 아래 기준을 **3개 이상** 충족해야 새 핸들러로 추가.
| 번호 | 기준 | 확인 방법 |
|:---:|------|---------|
| 1 | **설치 의존성 없음** — 외부 프로그램(Docker, WSL, conda 등) 설치 불필요 | 핸들러 독립 동작 여부 |
| 2 | **인터넷 불필요** — 사내 모드에서도 100% 동작 | 로컬 파일/시스템 API만 사용 |
| 3 | **매일 사용 가능** — 주 1회 이하로만 쓰이는 도구는 제외 | 실제 업무 흐름 검토 |
| 4 | **경쟁 서비스 공통 제공** — Raycast·Alfred·Flow 중 2개 이상에 존재 | 벤치마킹 매트릭스 참조 |
| 5 | **기존 핸들러로 대체 불가**`diff`가 있는데 `cmp` 추가는 불필요 | 기존 prefix 목록 검토 |