문서로 돌아가기
배포
Tauri v2 개발 가이드
Tauri v2를 위한 프로젝트 레이아웃, 명령, 기능 기반 권한.
•
10분 읽기
•PlanToCode는 데스크톱 애플리케이션에 Tauri v2를 사용합니다. 이 가이드는 프로젝트 구조, 명령 시스템, 기능 기반 권한, 개발 워크플로우를 다룹니다.
프로젝트 레이아웃
데스크톱 애플리케이션은 표준 Tauri v2 관례를 따릅니다:
- desktop/src/: 컴포넌트, 훅, 프로바이더가 있는 React 프론트엔드
- desktop/src-tauri/: 명령, 작업, 서비스가 있는 Rust 백엔드
- desktop/src-tauri/src/lib.rs: 애플리케이션 진입점
- desktop/src-tauri/src/commands/: Tauri 명령 핸들러 (~35개 모듈)
- desktop/src-tauri/capabilities/: 권한 정의
- desktop/src-tauri/tauri.conf.json: Tauri 구성
Tauri 구성
tauri.conf.json이 애플리케이션을 구성합니다:
- 앱 메타데이터를 위한 productName, version, identifier
- 프론트엔드를 위한 build.beforeDevCommand와 beforeBuildCommand
- 설치 프로그램을 위한 bundle 설정 (DMG, NSIS, AppImage)
- Content Security Policy를 위한 security.csp
- 공식 플러그인을 위한 plugins 구성
기능 기반 권한
Tauri v2는 앱이 액세스할 수 있는 것을 제어하기 위해 기능을 사용합니다:
- default.json: 모든 윈도우를 위한 기본 권한
- desktop-default.json: 데스크톱 특화 권한
- plantocode-api.json: PlanToCode 명령을 위한 커스텀 권한
- 권한이 액세스 허용: 파일 시스템, 셸, http, 다이얼로그, 알림
Tauri 플러그인
PlanToCode는 여러 공식 Tauri 플러그인을 사용합니다:
- tauri-plugin-http: API 호출을 위한 HTTP 클라이언트
- tauri-plugin-dialog: 네이티브 파일/폴더 선택기
- tauri-plugin-shell: 셸 명령 실행
- tauri-plugin-store: 영속적 키-값 저장소
- tauri-plugin-notification: 데스크톱 알림
- tauri-plugin-updater: 인앱 업데이트
- tauri-plugin-single-instance: 단일 인스턴스 적용
애플리케이션 상태
Tauri의 상태 시스템을 통해 관리되는 Rust 상태:
- AppState 구조체가 공유 상태 보유
- 서버 URL과 기능 플래그를 위한 RuntimeConfig
- 보안 자격 증명 저장을 위한 TokenManager
- AI 모델 구성을 위한 ConfigCache
명령 생성하기
Tauri 명령이 Rust 함수를 프론트엔드에 노출합니다:
- async 함수에 #[tauri::command] 속성 사용
- 오류 처리를 위해 Result<T, String> 반환
- State<AppState> 매개변수를 통해 상태 액세스
- lib.rs invoke_handler에 등록
단일 인스턴스
앱이 데이터 충돌을 방지하기 위해 단일 인스턴스를 적용합니다:
- tauri-plugin-single-instance가 감지 처리
- 두 번째 실행은 기존 윈도우에 포커스
- 딥 링크가 실행 중인 인스턴스로 전달
개발 워크플로우
개발을 위한 일반 명령:
pnpm tauri dev: 핫 리로드와 함께 개발 시작pnpm tauri build: 프로덕션 릴리스 빌드cargo test: Rust 테스트 실행cargo clippy: Rust 코드 린트
모바일 고려사항
Tauri v2는 모바일을 지원하지만, PlanToCode는 네이티브 Swift를 사용합니다:
- 네이티브 경험을 위해 SwiftUI로 빌드된 iOS 앱
- 데스크톱과 모바일 간 공유 API 계약
- WebSocket 릴레이를 통한 디바이스 연결
배포
각 플랫폼을 위한 빌드 아티팩트:
- macOS: 유니버설 바이너리가 있는 .dmg (Intel + Apple Silicon)
- Windows: NSIS 설치 프로그램과 MSIX 패키지
- Linux: 광범위한 호환성을 위한 AppImage