Go 언어와 웹 기술을 활용해 크로스 플랫폼 데스크톱 애플리케이션을 구축하는 프레임워크인 Wails(웨일스)가 v3 베타 버전을 출시하며 개발자들의 주목을 받고 있습니다. 초기 Wails는 Go 백엔드와 HTML/CSS/JS, React(리액트), Vue(뷰) 등 웹 프론트엔드를 결합하여 macOS, Windows, Linux(리눅스)용 단일 바이너리 앱을 만드는 가벼운 Electron(일렉트론) 대체제로 인기를 얻었습니다. 이번 v3에서는 단순한 GUI 래퍼를 넘어, 더욱 복잡하고 기능이 풍부한 데스크톱 앱을 만들기 위한 애플리케이션 구조 자체를 대폭 재설계했습니다.
Wails v3는 기존의 암묵적인 컨텍스트 중심 구조에서 벗어나, 애플리케이션(Application), 윈도우(Window), 서비스(Service)를 명시적인 객체와 생명주기(lifecycle)로 다루도록 변경했습니다. 특히 멀티 윈도우를 기본 기능으로 지원하여, 에디터, 인스펙터, 환경설정, 도구 창처럼 여러 개의 창을 사용하는 앱을 별도의 우회 방식 없이 구현할 수 있게 되었습니다. 또한, 기존 바인딩(binding) 대신 Go 서비스(Service)를 도입해 백엔드 기능과 프론트엔드에 노출되는 API의 경계를 명확히 했으며, Go 소스를 정적 분석하여 TypeScript(타입스크립트) 바인딩을 생성함으로써 더욱 풍부한 프론트엔드 API를 제공합니다. 서비스가 Go API뿐만 아니라 프론트엔드 에셋(asset)과 스크립트까지 함께 제공할 수 있어, 향후 설치형 플러그인(plugin) 구조를 만들 수 있는 기반도 추가되었습니다. 빌드 과정 역시 Taskfile(태스크파일) 기반으로 공개되어 개발자가 직접 확인, 확장, 디버깅할 수 있게 바뀌었으며, 네이티브 창 없이 백엔드 로직만 실행하는 서버 빌드(Server Build)도 지원해 데스크톱 UI와 백엔드 로직을 분리해 활용할 수 있습니다.
Wails v3의 출시는 Go 개발자들이 데스크톱 애플리케이션 개발에 더욱 적극적으로 참여할 수 있는 중요한 전환점이 될 것입니다. Electron과 같은 기존 프레임워크의 대안을 찾던 개발자들에게 Wails는 더 가볍고 성능 좋은 대안을 제시하며, 특히 Go 언어의 강력한 백엔드 처리 능력과 웹 기술의 유연한 UI 개발 강점을 동시에 활용할 수 있게 합니다. 멀티 윈도우 지원과 명확한 서비스 구조는 복잡한 비즈니스 애플리케이션이나 개발 도구를 만드는 데 큰 이점을 제공하며, 향후 플러그인 시스템의 발전 가능성은 생태계 확장에 기여할 것으로 보입니다. 다만, v3는 아직 베타 단계이므로 운영 환경 배포 전 충분한 테스트가 필요하며, v2에서 v3로의 마이그레이션(migration)은 실질적인 포팅(porting) 작업으로 간주해야 합니다.