WebView2로 Windows 앱에 웹 인터페이스 삽입하기
마이크로소프트 코퍼레이션의 Microsoft Edge WebView2는 하이브리드 UI를 가능하게 하기 위해 네이티브 Windows 애플리케이션에 웹 인터페이스를 삽입하는 개발자 컨트롤입니다. 호스트 프로세스 내에서 HTML, CSS 및 JavaScript를 표시하며 호스트와 웹 콘텐츠 간의 메시지 교환을 허용합니다. 배포 선택 사항에는 호환성 제어를 위한 자동 런타임 업데이트 또는 고정 버전 배포가 포함됩니다. 이 도구는 네이티브 Win32 또는 .NET 워크플로 내에서 웹 자산을 재사용하려는 Windows 데스크톱 개발자를 대상으로 합니다.
런타임은 Microsoft Edge (Chromium) 엔진을 사용하며 별도의 프로세스로 실행됩니다
컨트롤은 Microsoft Edge 브라우저와 별개의 Chromium 기반 런타임을 실행하며, Microsoft Edge (Chromium) 렌더링 엔진을 사용하여 현대 웹 콘텐츠를 렌더링합니다. msedgewebview2.exe 프로세스는 WebView2 런타임을 나타내며, 컨트롤은 일반적으로 관리자 프로세스, GPU 프로세스 및 웹 구성 요소에 대한 개별 렌더러 프로세스를 포함하는 다중 프로세스 아키텍처를 따릅니다. 이 프로세스 분리는 Chromium의 격리 모델에 매핑됩니다.
컨트롤이 통합되는 개발 스택 및 워크플로우
WebView2는 데스크탑 개발 스택을 목표로 하며 네이티브 툴체인과 통합됩니다. 지원되는 호스트 및 프레임워크는 다음과 같습니다:
- Win32 C/C++
- .NET (WPF 및 WinForms)
- WinUI
팀이 계획해야 할 성능 및 배포 절충안
사용자들이 때때로 타사 애플리케이션에서 msedgewebview2.exe 인스턴스와 관련된 높은 메모리 및 CPU 사용량을 보고하기 때문에, 개발자는 무거운 웹 모듈의 프로파일링 및 격리를 계획해야 합니다. 렌더러 프로세스를 프로파일링하고 리소스 집약적인 위젯을 별도의 WebView 인스턴스에 배치하면 경쟁을 줄일 수 있습니다. 런타임은 전체 브라우저와는 구별되는 구성 요소이므로, 이를 제거하면 종속 애플리케이션이 UI를 렌더링하지 못할 수 있습니다. 테스트 및 배포 중에 런타임을 배포 가능한 아티팩트로 취급하십시오.
WebView2는 하이브리드 Windows 데스크톱 개발을 위한 실용적인 선택입니다
WebView2는 네이티브 프로세스 내에 웹 기반 인터페이스를 포함해야 하는 Windows 데스크톱 개발자에게 실용적인 옵션입니다. msedgewebview2.exe 인스턴스가 일부 배포에서 메모리 및 CPU 사용량을 증가시킬 수 있으므로 트레이드오프를 기대하십시오. 배포 중 렌더러 프로파일링 및 운영 모니터링을 위한 테스트 예산을 책정하는 팀은 하이브리드 UI 전략을 프로덕션 데스크톱 애플리케이션에 배포할 때 가장 많은 이점을 얻을 것입니다.