Wails: 일렉트론을 제치고 데스크톱급 앱을 선점하려는 Go 언어의 승부수

원제 · Wails: Golang's Bet On Desktop Grade Apps To Beat Electron

7:023분 읽기Better Stack2026. 07. 25.컴퓨터/소프트웨어 · AI/미래기술

핵심 요약

Wails는 Chromium을 배제하여 번들 크기를 52MB로 줄이고 Go 언어 중심의 개발 환경을 제공하지만, 네이티브 API 접근 시 Objective-C 코드를 직접 작성해야 하는 생태계적 한계가 존재한다.

하이라이트

  • Wails는 Rust 대신 Go 언어를 백엔드로 사용하며 Chromium을 포함하지 않는 데스크톱 애플리케이션 프레임워크다.

  • 설치 파일 번들 크기는 Wails가 52MB, Tauri가 57MB, Electron이 324MB다.

  • 일반 실행 시간은 Electron이 350ms로 가장 빠르고 Wails 395ms, Tauri 410ms 순이다.

  • 콜드 스타트 실행 시간은 Electron 1,890ms, Tauri 2,049ms, Wails 2,337ms를 기록한다.

  • Go 코드를 수정하면 TypeScript 타입 정의 파일이 자동으로 재생성되며 애플리케이션이 실시간으로 재컴파일된다.

타임라인

  1. Wails의 핵심 구조와 동작 방식

    Tauri와 유사한 구조를 취하면서 백엔드 런타임으로 Rust 대신 Go를 채택한다. 자체 브라우저를 내장하는 Electron과 달리 OS 자체 웹뷰를 활용하므로 결과물 크기가 작다. 이를 통해 Mac과 Windows 환경에서 모두 동작하는 데스크톱 앱을 컴파일한다.

    • Wails는 Go 언어 기반 백엔드와 웹 기술 프론트엔드를 결합한 크로스 플랫폼 데스크톱 프레임워크다.
    • 운영체제의 네이티브 렌더링 엔진을 재사용하여 번들 용량을 절감한다.
  2. 프로젝트 구조 및 백엔드-프론트엔드 연동

    프론트엔드 폴더 내부에는 표준 React 코드가 위치하며 Go에서 정의된 API를 호출한다. 개발 서버 실행 중 Go 함수를 수정하거나 삭제하면 TypeScript 정의 파일에 즉시 반영되어 컴파일 에러를 발생시킨다. 앱 창 크기, 배경색, OS 전용 옵션 등은 main.go 파일에서 관리한다.

    • Go 파일의 백엔드 API 변경사항은 TypeScript 타입으로 자동 변환된다.
    • 개발 모드 실행 시 백엔드 코드 수정에 따라 앱이 자동으로 재컴파일 및 렌더링된다.
  3. 3대 데스크톱 프레임워크 성능 및 번들 비교

    Wails(52MB)와 Tauri(57MB)는 Chromium을 번들에 담지 않아 Electron(324MB) 대비 6배 이상 작은 용량을 보여준다. 반면 실행 속도 테스트 10회 평균 결과에서는 Electron이 일반 실행 350ms, 캐시 초기화 실행 1,890ms로 가장 빠른 반응 속도를 기록한다. 화면 녹화 시에는 Mac의 CaptureKit을 직접 활용하는 Wails와 Tauri가 브릿지 오버헤드가 발생하는 Electron보다 뛰어난 런타임 성능을 낸다.

    • 번들 용량은 Wails가 52MB로 가장 작고, Electron은 324MB에 달한다.
    • 시작 속도와 콜드 스타트 모두 Electron이 미세하게 우위를 보인다.
  4. 개발자 경험과 네이티브 API 확장성의 차이

    Tauri는 커뮤니티 Crate 생태계가 잘 갖춰져 있어 순수 Rust 코드로 Mac의 ScreenCaptureKit에 접근할 수 있다. 반면 Wails는 관련 라이브러리의 부재로 인해 Cgo를 활용해 약 450줄의 Objective-C 코드를 직접 작성해야 하는 번거로움이 발생한다. 주력 언어 선호도에 따라 프레임워크 선택이 갈리지만, 시스템 하드웨어 제어 비중이 높은 경우 Crate 생태계가 성숙한 Tauri가 유리하다.

    • Go의 Cgo 기능을 통해 .m 파일에 Objective-C 코드를 작성하고 C 함수로 노출하여 사용한다.
    • Rust 생태계에 비해 Go의 네이티브 프레임워크 래핑 라이브러리 지원은 부족한 편이다.

설명

You already write Go, so why bundle a whole Chromium to ship a desktop app? Wails builds cross-platform desktop apps on the system webview, 52 MB against Electron's 324. The catch is the developer experience: where Tauri leans on Rust crates, Go can leave you hand-writing Objective-C. Worth it if you're choosing a desktop stack. 🔗 Relevant Links https://wails.io https://github.com/wailsapp/wails ❤️ More about us Radically better observability stack: https://betterstack.com/ Written tutorials: https://betterstack.com/community/ Example projects: https://github.com/BetterStackHQ 📱 Socials Twitter: https://twitter.com/betterstackhq Instagram: https://www.instagram.com/betterstackhq/ TikTok: https://www.tiktok.com/@betterstack LinkedIn: https://www.linkedin.com/company/betterstack 📌 Chapters: 0:00 What is Wails? 0:33 How Wails works (Go + native webview) 1:06 Demo: the screen recorder app 1:29 Project structure: main.go and the frontend 1:57 React frontend and auto-generated bindings 2:50 Live reload with wails dev 3:24 Bundle size: Wails vs Tauri vs Electron 4:07 Startup time 4:36 Runtime performance 5:07 Developer experience 5:37 Writing Objective-C with CGo 6:07 Verdict: Wails or Tauri? 6:40 Outro

커뮤니티 글

모든 글 보기
이 영상에 대해 글쓰기