For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ko/docs/desktop/tech-stack.md (or send Accept: text/markdown).
Desktop 기술 스택
Tauri 셸 내부의 기술과 각각의 역할.
시작하기 전에
Desktop 앱은 의도적으로 얇습니다: Rust 코어가 네이티브 창을 소유하고 webview가 웹 앱을 로드합니다. 아래의 모든 것은 이미 체크아웃에 고정되어 있습니다 — 이 페이지는 각 부분의 역할을 설명하여 이후 가이드가 이해되도록 합니다.
제품 UI, 인증, 청구, AI는 모두 창이 로드하는 웹 코드베이스에 있습니다. Desktop 전용 체크아웃에는 셸만 포함되어 있습니다 — 이 스택이 의도적으로 작은 이유입니다.
Tauri 2 + 시스템 webview
Tauri 2는 운영 체제 고유의 webview — Windows의 WebView2, macOS의 WebKit, Linux의 WebKitGTK — 로 앱을 렌더링하므로 셸이 작게 유지되고 번들된 브라우저 런타임이 없습니다. frontendDist는 apps/desktop/ui — 웹 앱이 로드되는 동안 표시되는 부트 페이지 — 를 가리키므로 콜드 스타트에서 빈 창이 렌더링되지 않습니다.
Rust + TypeScript
셸의 동작은 Rust — src-tauri/src, 에디션 2021, 최소 Rust 1.90 — 이며 cargo가 빌드합니다. TypeScript로 작성된 작은 Node 스크립트가 릴리스 프리플라이트와 업데이터 매니페스트를 처리합니다.
플러그인을 통한 네이티브 기능
창 상태, 단일 인스턴스, 딥링크, 전역 단축키, 트레이, 로그인 시 시작, 업데이터, 외부 링크 열기, 대화 상자, 프로세스 제어는 모두 tauri-plugin-* 크레이트에서 옵니다 — 셸은 자체 IPC 명령을 추가하지 않습니다. 네이티브 기능 추가는 다른 플러그인을 등록하거나 이미 있는 플러그인을 연결하는 것을 의미합니다.
tauri.conf.json + capabilities
번들 식별자 com.supastack.desktop, 창 목록, 플러그인 옵션, 업데이터 엔드포인트는 src-tauri/tauri.conf.json에 있습니다. webview 권한은 src-tauri/capabilities/default.json에 있습니다 — 현재 core:default와 시스템 브라우저 링크용 opener:allow-open-url — 네이티브 기능이 필요할 때만 확장됩니다.
검증 도구
cargo test는 Rust 로직 — URL 확인, 내비게이션 게이트, 딥링크 매핑, 업데이터 채널, 줌, 창 기본 설정 — 을 다루고, node --check는 부트 페이지를 검증하고 check:release-config는 릴리스 빌드를 게이트합니다. CI는 세 운영 체제 모두를 빌드합니다.
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop check:release-config