기술 개요
Wails v3 코드베이스의 상위 수준 아키텍처와 로드맵
Wails v3 기술 문서에 오신 것을 환영합니다
이 섹션에서는 커뮤니티 지침이나 풀 리퀘스트를 여는 방법을 다루는 것이 아닙니다. 대신 코드베이스의 구조를 빠르게 파악하고 자신 있게 개발을 시작할 수 있도록 Wails v3가 어떻게 구축되는지 자세히 살펴봅니다.
런타임을 패치하거나, CLI를 확장하거나, 새 템플릿을 만들거나, 단순히 내부 구조를 이해하려는 경우 모두 이어지는 페이지에서 필요한 기술적 맥락을 확인할 수 있습니다.
상위 수준 아키텍처
모든 Wails 앱의 핵심은 네이티브 실행 파일로 컴파일되는 Go 코드입니다. 이 코드는 애플리케이션 로직, 시스템 통합 및 성능이 중요한 작업을 담당합니다.
UI는 표준 웹 기술(React, Vue, Svelte, Vanilla 등)로 작성되며, 경량 시스템 WebView(Linux/macOS에서는 WebKit, Windows에서는 WebView2)로 렌더링됩니다.
복사 없이 메모리에서 작동하는 브리지를 통해 자동 타입 변환, 이벤트 전파 및 오류 전달을 지원하는 Go⇄JavaScript 호출이 가능합니다.
wails3은 프로젝트 생성, 실시간 리로드 개발 서버, 애셋 번들링, 크로스 컴파일 및 패키징(deb, rpm, AppImage, msi, dmg 등)을 조율합니다.
아키텍처 개요
Wails v3 – 엔드투엔드 흐름
[엔드투엔드 흐름 다이어그램 자리 표시자]
다이어그램은 다음과 같은 엔드투엔드 흐름을 보여 줍니다:
- CLI는 생성, 개발 서버, 컴파일 및 패키징을 제어합니다.\
- 바인딩 시스템은 웹 프런트엔드가 Go 백엔드를 호출할 수 있게 하는 연결 코드를 생성합니다.\
- 개발 중에는 애셋 서버가 프레임워크 개발 서버로 프록시하며, 프로덕션에서는 임베드된 파일을 제공합니다.\
- 런타임 시 데스크톱 런타임은 창과 OS API를 관리하고, 브리지는 Go와 JavaScript 사이에서 메시지를 전달합니다.
이 문서에서 다루는 내용
| 주제 | 중요한 이유 |
|---|---|
| 코드베이스 구조 | /v3 디렉터리 구성과 모듈 간 상호작용을 보여 주는 맵입니다. |
| 런타임 내부 구조 | 창 관리, 시스템 API, 메시지 프로세서 및 플랫폼 호환 계층입니다. |
| 애셋 및 개발 서버 | 개발 환경에서 웹 애셋을 제공하고 프로덕션 환경에서 임베드하는 방식입니다. |
| 빌드 및 패키징 파이프라인 | Taskfile 기반 워크플로, 크로스 플랫폼 컴파일 및 설치 프로그램 생성입니다. |
| 바인딩 시스템 | 타입 안전한 Go⇄TS 바인딩을 생성하는 정적 분석 파이프라인입니다. |
| 템플릿 시스템 | wails3 init -t <framework>을 구동하는 생성기 아키텍처입니다. |
| 테스트 및 CI | 단위/통합 테스트 하네스, GitHub Actions 및 레이스 탐지기 지침입니다. |
| Wails 확장 | 서비스, 템플릿 또는 CLI 하위 명령 추가입니다. |
이어지는 각 페이지에서는 구체적인 코드 예제, 다이어그램 및 관련 소스 파일 참조와 함께 이러한 영역을 자세히 살펴봅니다.
즐겁게 살펴보세요. Wails v3 내부 구조의 세계에 오신 것을 환영합니다!