윈도우 네이티브 앱 개발, Microsoft는 왜 이렇게 만들었을까?
저자는 윈도우 네이티브 앱 개발의 복잡성(Complexity)과 Microsoft의 미흡한 지원(Poor Support)을 지적하며, Electron과 같은 대안을 제시함.
WinUI 3, .NET, MSIX 등 최신 기술 스택(Tech Stack)의 문제점을 분석하고, Win32 API와의 호환성(Compatibility) 문제를 핵심으로 짚음.
.NET 4.8.1 고정(Fixed), 코드 서명 인증서(Code Signing Certificate) 비용 등 배포 관련 문제점을 언급하며, Microsoft의 개발자 지원 부족(Lack of Developer Support)을 비판함.
커뮤니티에서는 Microsoft의 개발 방향성 부재(Lack of Direction)를 지적하며, Tauri, Avalonia 등 크로스 플랫폼 프레임워크(Cross-Platform Framework)의 대안적 가치를 강조함.
WinUI 3와 Win32 API의 불편한 동거
저자는 WinUI 3를 사용하여 윈도우 앱을 개발하면서, Win32 API에 의존해야 하는 상황을 지적한다. 특히, 최신 API가 제공하지 않는 기능을 구현하기 위해 P/Invoke(Platform Invoke)를 사용해야 하는 점을 문제 삼았다. 예를 들어, 디스플레이 정보 열거, 창 스타일 설정, 전역 핫키(Global Hotkey) 설정 등 기본적인 기능 구현에 Win32 API가 필수적이다. 이러한 상황은 최신 프레임워크를 사용하더라도 레거시 API(Legacy API)에 대한 지식이 여전히 필요함을 의미한다. 윈도우 개발 생태계의 고질적인 문제점이다.
.NET 배포 문제와 개발 환경의 혼란
저자는 .NET 런타임 배포와 관련된 문제점을 지적하며, 프레임워크 종속 배포(Framework-Dependent Deployment)의 어려움을 강조한다. 윈도우 11 최신 버전에서도 .NET 4.8.1이 기본으로 설치되어, 최신 .NET 버전을 사용하려면 별도의 설치 과정이 필요하다. 또한, MSIX 패키징(Packaging)을 위한 코드 서명 인증서 비용이 높고, 비 미국 거주자의 경우 인증서 획득 과정이 복잡하다는 점을 지적한다. 이러한 문제들은 개발자들이 윈도우 앱 개발을 꺼리게 만드는 요인으로 작용한다.
Microsoft의 개발 방향성에 대한 의문
저자는 Microsoft가 윈도우 앱 개발에 대한 장기적인 비전(Long-term Vision)을 제시하지 못하고 있다고 비판한다. WinUI 3, UWP, WinRT 등 새로운 기술이 등장했지만, 기존 기술과의 호환성 문제, 부족한 문서화, 그리고 Microsoft 내부 앱에서도 웹 기술을 사용하는 현실은 Microsoft가 윈도우 네이티브 앱 개발에 충분한 투자를 하지 않음(Lack of Investment)을 시사한다. 이러한 상황은 개발자들이 Electron, Tauri와 같은 크로스 플랫폼 프레임워크(Cross-Platform Framework)로 눈을 돌리게 만드는 요인으로 작용한다.
Electron과 Tauri의 부상: 대안 기술의 부상
커뮤니티에서는 윈도우 네이티브 앱 개발의 어려움 때문에 Electron, Tauri와 같은 크로스 플랫폼 프레임워크(Cross-Platform Framework)를 대안으로 제시한다. 특히, Tauri는 Electron보다 가볍고, 시스템 웹뷰를 사용하여 보안성을 강화할 수 있다는 장점이 있다. 또한, 윈도우 시스템 웹뷰는 4주마다 업데이트되는 반면, .NET은 4.8.1 버전에 고정되어 있다는 점을 지적하며, Microsoft의 기술 지원 부족(Lack of Technical Support)을 비판한다. 이러한 상황은 개발자들이 더 나은 개발 경험을 제공하는 기술을 선택하게 만든다.