Files
AX-Copilot/docs/LAUNCHER_ROADMAP.md
lacvet f977037ca6 [Phase L9] 보안·네트워크·시스템 유틸리티 핸들러 4종 추가
PasswordGenHandler.cs (신규, ~220줄, prefix=pwd):
- 암호학적 난수(RandomNumberGenerator.GetInt32) 기반 비밀번호 생성
- 강도별 옵션: 대소문자+숫자+특수문자 강제 포함 (strong 기본)
- 패스프레이즈 모드: 48단어 사전 + 구분자 + 4자리 숫자
- 엔트로피 추정(log2) + 강도 레이블(보통/강함/매우강함/최강)

SubnetHandler.cs (신규, ~260줄, prefix=subnet):
- CIDR 형식(IP/prefix) 및 공백 구분(IP prefix) 파싱
- 서브넷 마스크 → CIDR 역변환, 이진 표현 표시
- range 서브커맨드: 192.168.1.10-50 형식 IP 범위 계산
- uint 비트 연산으로 네트워크·브로드캐스트·호스트 범위 계산

CleanHandler.cs (신규, ~260줄, prefix=clean):
- SHEmptyRecycleBin P/Invoke (shell32.dll, flags 0x07)
- temp/recycle/downloads/logs/all 서브커맨드
- 정리 전 용량 예상 표시, 개별 파일 삭제 오류 무시

BaseConvertHandler.cs (신규, ~230줄, prefix=base):
- 0x/0b/0o 프리픽스 자동 감지 파싱
- 2/8/10/16진수 동시 변환 + 4비트 그룹 이진 표시
- ASCII 모드: 숫자→문자, 문자→코드 양방향 변환
- base N to hex/bin/oct/dec 타겟 지정 변환

App.xaml.cs: 4개 핸들러 RegisterHandler 등록
docs/LAUNCHER_ROADMAP.md: Phase L9 완료 섹션 추가
빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 14:14:41 +09:00

20 KiB
Raw Blame History

AX Commander (런처) 고도화 계획

현재 상태 (v1.5.0)

핵심 기능 (44개 핸들러)

  • 퍼지 검색 + 한글 초성 검색 (FuzzyEngine)
  • 44개 프리픽스 명령 (계산기, 이모지, 웹검색, 스니펫, 클립보드, 프로세스 등)
  • 10가지 테마 + 커스텀 테마
  • 플러그인 시스템 (DLL + JSON 스킬)
  • AX Agent AI 대화 통합
  • 글로벌 핫키 (Alt+Space), 무지개 글로우 효과
  • 파일/앱 인덱싱, 북마크 검색, 사용 빈도 랭킹
  • 워크스페이스 프로파일 (창 레이아웃 저장/복원)
  • 클립보드 히스토리, 스니펫 확장
  • 스크린 캡처, 컬러 피커, JSON 도구

경쟁 서비스 비교 (2026년 3월 기준)

기능 AX Commander Raycast Alfred 5 Flow Launcher PowerToys
AI 대화 O (AX Agent) O (멀티모델) 워크플로우 X X
MCP 프로토콜 O X X X X
에이전트 코딩 O (Code 탭) O X X X
플러그인 DLL+JSON 1500+ 스토어 워크플로우 갤러리 200+ 모듈
클립보드 히스토리 O O (리치) 파워팩 플러그인 X
윈도우 관리 O (22 레이아웃) 70+ 레이아웃 X X FancyZones
파일 탐색기 통합 X X X X X
Everything 연동 O (es 프리픽스) X X O X
선택 텍스트 AI O (텍스트 액션 팝업) O (AI Commands) X X X
영구 독 UI O (독 바) X X X O (Command Palette Dock)
클라우드 동기화 X Pro Dropbox X X
다국어 5개국어 영어 영어 영어 다국어

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 항목별 전용 핫키 — 구현 설계

// 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 화면 텍스트 추출 — 구현 설계

// 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 인라인 편집 — 구현 설계

// QuickLookWindow.xaml에 편집 모드 토글 버튼 추가 (타이틀바 우상단 ✏ 아이콘)
// TextScrollViewer → TextBox (편집 모드에서만 활성)
// Ctrl+S → File.WriteAllText() + 저장 완료 토스트
// 수정 감지: TextBox.TextChanged → 타이틀에 "●" 마커
// Esc → 저장 안 함 확인(CustomMessageBox) 후 미리보기 모드 복귀
// 편집 가능 확장자: .txt, .md, .log, .cs, .py, .js, .ts, .json, .xml, .yaml 등

L5-5 배치 파일 이름 변경 — 구현 설계

// 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 → 클립보드 복사 중간