피드로 돌아가기
Built Gova, a declarative GUI framework for Go
Dev.toDev.to
Frontend

Electron 없는 Go 기반 Native GUI 프레임워크 Gova 개발 및 23MB 경량 바이너리 달성

Built Gova, a declarative GUI framework for Go

Naman vyas2026년 4월 22일4intermediate

Context

기존 Go GUI 프레임워크의 제한적인 멘탈 모델과 Electron 및 Webview 기반 앱의 무거운 런타임 오버헤드 해결 필요. 타입 안전성이 보장된 Props 체계와 리팩토링에 강한 Reactive State 관리 모델의 부재를 극복하고자 함.

Technical Solution

  • Fyne 렌더링 엔진 상단에 Declarative API 레이어를 설계하여 Toolkit 재작성 비용 최소화
  • Go Struct 기반 Component 설계 및 Typed Prop 도입을 통한 컴파일 타임 UI 검증 구현
  • Call site 기반의 State, Signal, Store 시스템을 구축하여 Hook 규칙 및 String Key 의존성 제거
  • macOS 환경에서 cgo를 통한 Native API 직접 호출로 NSAlert, NSOpenPanel 등 실제 플랫폼 위젯 구현
  • Windows 및 Linux 환경에서는 Fyne Fallback 메커니즘을 적용하여 코드 이식성 확보
  • PersistedState를 활용한 Hot Reload 시 UI 상태 유지 아키텍처 설계

1. GUI 프레임워크 선택 시 런타임 오버헤드(Webview 등)와 바이너리 크기 비교

2. UI 상태 관리 시 String Key 대신 Call site 기반 식별자 도입 검토

3. 플랫폼 특화 기능 구현 시 Native API 직접 호출과 Fallback 구조의 적절한 배치 고려

원문 읽기