[Phase L13] 시스템 정보·계산 도구 핸들러 4종 추가

DnsQueryHandler.cs (신규, ~200줄, prefix=dns):
- A/AAAA: .NET Dns.GetHostAddressesAsync() 직접 호출
- MX/TXT/NS/CNAME: nslookup 서브프로세스 + 출력 파싱
- PTR: Dns.GetHostEntryAsync()로 역방향 조회
- 사내 모드: 내부 IP(192.168/10/172.16-31) 허용, 외부 차단
- Enter → 비동기 실행, 결과 클립보드 복사 + 알림

PathHandler.cs (신규, ~180줄, prefix=path):
- Environment.GetEnvironmentVariable("PATH", Process/User/Machine)
- Directory.Exists 기반 경로 존재 여부 아이콘 구분
- which: .exe/.cmd/.bat/.ps1/.com 확장자 순서 탐색
- DistinctBy로 중복 경로 제거 (대소문자 무시)

DriveHandler.cs (신규, ~170줄, prefix=drive):
- DriveInfo.GetDrives() + IsReady 체크 + try/catch 방어
- █░ 시각적 사용량 바 (MakeBar 12~20칸 가변)
- TB/GB/MB/KB 자동 단위 포맷
- large 서브커맨드: UsedSpace 내림차순 정렬

AgeHandler.cs (신규, ~230줄, prefix=age):
- YYYYMMDD / YYYY-MM-DD / YYYY.MM.DD 형식 파싱
- 만 나이(생일 미경과 시 -1) + 한국식(연도 차이 +1)
- NextBirthday: 올해 생일 지났으면 내년으로 계산
- christmas/newyear 특수 키워드 Dictionary<string, Func>
- "next monday" 형식 다음 요일 D-day 파싱

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

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-04 14:50:39 +09:00
parent 315848f9bc
commit e4e5bf7a7a
6 changed files with 992 additions and 0 deletions

View File

@@ -257,6 +257,16 @@ public partial class App : System.Windows.Application
// L12-4: 시작 프로그램 조회 (prefix=startup)
commandResolver.RegisterHandler(new StartupHandler());
// ─── Phase L13 핸들러 ─────────────────────────────────────────────────
// L13-1: DNS 레코드 조회 (prefix=dns)
commandResolver.RegisterHandler(new DnsQueryHandler());
// L13-2: PATH 환경변수 뷰어 (prefix=path)
commandResolver.RegisterHandler(new PathHandler());
// L13-3: 드라이브 정보 (prefix=drive)
commandResolver.RegisterHandler(new DriveHandler());
// L13-4: 나이·D-day 계산기 (prefix=age)
commandResolver.RegisterHandler(new AgeHandler());
// ─── 플러그인 로드 ────────────────────────────────────────────────────
var pluginHost = new PluginHost(settings, commandResolver);
pluginHost.LoadAll();