기여하기

이 문서 편집

문서를 번역하거나 컴퓨터에서 전체 프로젝트를 여세요.

작업을 제출하기 전까지는 아무것도 게시되지 않습니다.

기술 개요

Wails v3 코드베이스의 상위 수준 아키텍처와 로드맵

Wails v3 기술 문서에 오신 것을 환영합니다

이 섹션에서는 커뮤니티 지침이나 풀 리퀘스트를 여는 방법을 다루는 것이 아닙니다. 대신 코드베이스의 구조를 빠르게 파악하고 자신 있게 개발을 시작할 수 있도록 Wails v3가 어떻게 구축되는지 자세히 살펴봅니다.

런타임을 패치하거나, CLI를 확장하거나, 새 템플릿을 만들거나, 단순히 내부 구조를 이해하려는 경우 모두 이어지는 페이지에서 필요한 기술적 맥락을 확인할 수 있습니다.


상위 수준 아키텍처

Go 백엔드

모든 Wails 앱의 핵심은 네이티브 실행 파일로 컴파일되는 Go 코드입니다. 이 코드는 애플리케이션 로직, 시스템 통합 및 성능이 중요한 작업을 담당합니다.

웹 프런트엔드

UI는 표준 웹 기술(React, Vue, Svelte, Vanilla 등)로 작성되며, 경량 시스템 WebView(Linux/macOS에서는 WebKit, Windows에서는 WebView2)로 렌더링됩니다.

브리지 계층

복사 없이 메모리에서 작동하는 브리지를 통해 자동 타입 변환, 이벤트 전파 및 오류 전달을 지원하는 Go⇄JavaScript 호출이 가능합니다.

CLI 및 도구

wails3은 프로젝트 생성, 실시간 리로드 개발 서버, 애셋 번들링, 크로스 컴파일 및 패키징(deb, rpm, AppImage, msi, dmg 등)을 조율합니다.


아키텍처 개요

Wails v3 – 엔드투엔드 흐름

[엔드투엔드 흐름 다이어그램 자리 표시자]

다이어그램은 다음과 같은 엔드투엔드 흐름을 보여 줍니다:

  1. CLI는 생성, 개발 서버, 컴파일 및 패키징을 제어합니다.\
  2. 바인딩 시스템은 웹 프런트엔드가 Go 백엔드를 호출할 수 있게 하는 연결 코드를 생성합니다.\
  3. 개발 중에는 애셋 서버가 프레임워크 개발 서버로 프록시하며, 프로덕션에서는 임베드된 파일을 제공합니다.\
  4. 런타임 시 데스크톱 런타임은 창과 OS API를 관리하고, 브리지는 Go와 JavaScript 사이에서 메시지를 전달합니다.

이 문서에서 다루는 내용

주제 중요한 이유
코드베이스 구조 /v3 디렉터리 구성과 모듈 간 상호작용을 보여 주는 맵입니다.
런타임 내부 구조 창 관리, 시스템 API, 메시지 프로세서 및 플랫폼 호환 계층입니다.
애셋 및 개발 서버 개발 환경에서 웹 애셋을 제공하고 프로덕션 환경에서 임베드하는 방식입니다.
빌드 및 패키징 파이프라인 Taskfile 기반 워크플로, 크로스 플랫폼 컴파일 및 설치 프로그램 생성입니다.
바인딩 시스템 타입 안전한 Go⇄TS 바인딩을 생성하는 정적 분석 파이프라인입니다.
템플릿 시스템 wails3 init -t <framework>을 구동하는 생성기 아키텍처입니다.
테스트 및 CI 단위/통합 테스트 하네스, GitHub Actions 및 레이스 탐지기 지침입니다.
Wails 확장 서비스, 템플릿 또는 CLI 하위 명령 추가입니다.

이어지는 각 페이지에서는 구체적인 코드 예제, 다이어그램 및 관련 소스 파일 참조와 함께 이러한 영역을 자세히 살펴봅니다.


즐겁게 살펴보세요. Wails v3 내부 구조의 세계에 오신 것을 환영합니다!

페이지 편집

마지막 업데이트: