한국어
Appearance
한국어
Appearance
이 문서는 WSL Dashboard의 아키텍처 설계, 기술 선택 및 핵심 기능의 기반 구현 로직을 심층적으로 다루며, 개발자와 고급 사용자에게 기술적 심층 관점을 제공합니다.
WSL Dashboard는 고전적인 반응형 UI 주도 + 비동기 백엔드 작업 아키텍처를 채택하고, Rust 언어의 타입 시스템과 소유권 모델을 활용하여 메모리 안전성과 고성능 동시성을 보장합니다.
앱은 wsl.exe --list --verbose를 호출하고 그 출력을 파싱(UTF-16 인코딩 처리)하여 인스턴스 상태를 실시간으로 얻습니다.
마이그레이션 기능은 WSL의 가져오기/내보내기 메커니즘을 활용하지만, 높은 수준으로 추상화되고 원자적으로 처리됩니다.
네트워크 기능은 단순한 netsh interface portproxy 호출이 아닙니다.
wsl hostname -I 결과를 파싱하여 호스트와 인스턴스 간의 가상 네트워크 IP를 자동으로 매핑합니다.usbipd-win의 명령줄 인터페이스를 활용합니다.
앱은 Windows 네이티브 API(GetProcessMemoryInfo 등)를 호출하여 자체 리소스 사용량을 모니터링합니다.
| 지표 | 목표/실측 | 최적화 수단 |
|---|---|---|
| 시작 속도 | < 500ms | Slint 인터페이스 사전 컴파일로 런타임 파싱 감소. |
| 기본 메모리(트레이) | ~10MB | 백그라운드 폴링 빈도 최소화, 필요 시 렌더링 캐시 해제. |
| CPU 점유율(정지) | < 0.1% | Windows 이벤트 구동 모델 사용, 빈 루프 폴링 방지. |
| 렌더링 프레임률 | 60 FPS | Skia GPU 가속, 서브픽셀 수준 안티앨리어싱 렌더링. |
UI의 부드러움을 보장하기 위해 모든 시간이 걸리는 작업(VHDX 내보내기 등)은 비동기 작업으로 배포됩니다:
Command 메시지로 캡슐화합니다.tokio::sync::mpsc를 통해 백엔드 작업 처리기로 전송합니다.~\.wsldashboard에만 저장되며 클라우드 동기화를 전혀 수행하지 않아 사용자 프라이버시를 보호합니다.