Go(고) 언어를 활용해 macOS, Windows, Linux 등 다양한 운영체제(OS)에서 작동하는 데스크톱 애플리케이션을 만들 수 있는 새로운 오픈소스 프레임워크 'MyGo'가 공개되어 개발자들의 주목을 받고 있습니다. MyGo는 Go 언어로 직접 UI를 그리거나, OS에 내장된 웹뷰(WebView) 기반의 웹 UI를 활용하는 두 가지 방식을 모두 지원하며, 심지어 한 앱이나 창 안에서 이 두 방식을 혼합하여 사용할 수도 있습니다.
MyGo의 가장 큰 특징 중 하나는 웹 UI를 구현할 때 macOS의 WKWebView, Windows의 WebView2, Linux의 WebKitGTK 등 각 OS의 기본 웹뷰를 사용한다는 점입니다. 이 덕분에 별도의 브라우저 엔진을 앱에 포함할 필요가 없어 앱의 용량을 줄이고 성능을 최적화할 수 있습니다. 또한, Go UI만 사용하는 경우에는 HTML, JavaScript, WebView 없이 오직 Go 언어만으로 개발이 가능하며, 플렉스박스(Flexbox)와 그리드(Grid) 레이아웃, IME 텍스트 입력, 가상화 목록, SVG 아이콘, 애니메이션, 스크린리더 등 현대적인 UI 기능을 폭넓게 지원합니다. 코드 편집기, 차이점(diff) 뷰어, 리치 텍스트 편집기, 마크다운(Markdown) 표시 기능 등도 기본 제공되어 개발 편의성을 높였습니다.
MyGo는 웹 프런트엔드에서 Go 서비스 호출, 채널 스트리밍, 타입이 있는 이벤트 처리를 지원하며, Go 코드에서 타입스크립트(TypeScript) 클라이언트를 생성할 수 있어 백엔드와 프런트엔드 간의 연동을 간소화합니다. 또한, 창, 메뉴, 트레이(Tray), 알림, 전역 단축키, 딥 링크(Deep Link), 파일 연결 등 데스크톱 앱에 필요한 다양한 OS 수준의 API를 제공합니다. UI를 띄우지 않고도 클릭, 입력, 화면 상태 등을 자동 검증할 수 있는 테스트 기능과 cgo 없이 크로스 컴파일(cross-compile)이 가능하다는 점은 개발 생산성을 크게 향상시킬 수 있습니다. 설치 패키지 생성, 코드 서명, 공증, 서명된 자동 업데이트 및 델타 업데이트(변경분만 받는 업데이트) 지원까지 포함하여, MyGo는 Go 개발자들이 완성도 높은 데스크톱 앱을 효율적으로 구축할 수 있는 강력한 도구가 될 것으로 기대됩니다.