3.8 KiB
3.8 KiB
프로젝트 구조 가이드
현재 구조 (표준 Tauri 구조)
ndd-drive/
├── src/ # 프론트엔드 소스 코드
│ └── index.html # 메인 HTML 파일
│
├── src-tauri/ # Rust 백엔드 (Tauri)
│ ├── src/ # Rust 소스 파일
│ │ ├── main.rs # 진입점
│ │ └── lib.rs # 라이브러리 진입점
│ ├── Cargo.toml # Rust 의존성 관리
│ ├── tauri.conf.json # Tauri 설정
│ ├── build.rs # 빌드 스크립트
│ ├── icons/ # 앱 아이콘
│ ├── capabilities/ # Tauri 권한 설정
│ ├── gen/ # 자동 생성 파일 (gitignore)
│ └── target/ # 빌드 결과물 (gitignore)
│
├── package.json # Node.js 의존성 및 스크립트
├── node_modules/ # Node.js 패키지 (gitignore)
└── package-lock.json # 패키지 잠금 파일
개선된 구조 제안
옵션 1: 현재 구조 유지 + 모듈화 (추천)
ndd-drive/
├── src/ # 프론트엔드
│ ├── index.html
│ ├── css/
│ │ ├── main.css
│ │ └── components/
│ ├── js/
│ │ ├── main.js
│ │ ├── components/
│ │ └── utils/
│ ├── assets/
│ │ ├── images/
│ │ └── fonts/
│ └── components/ # 재사용 가능한 컴포넌트
│
├── src-tauri/ # Rust 백엔드
│ ├── src/
│ │ ├── main.rs
│ │ ├── lib.rs
│ │ ├── commands/ # Tauri 커맨드 (프론트엔드에서 호출)
│ │ │ └── mod.rs
│ │ ├── utils/ # 유틸리티 함수
│ │ │ └── mod.rs
│ │ └── models/ # 데이터 모델
│ │ └── mod.rs
│ ├── Cargo.toml
│ ├── tauri.conf.json
│ ├── build.rs
│ ├── icons/
│ └── capabilities/
│
├── package.json
└── README.md
옵션 2: 프론트엔드 프레임워크 사용 시 (React/Vue 등)
ndd-drive/
├── src/ # 프론트엔드 (프레임워크)
│ ├── index.html
│ ├── main.jsx / main.tsx
│ ├── App.jsx / App.tsx
│ ├── components/
│ ├── pages/
│ ├── hooks/ # React hooks 또는 Vue composables
│ ├── utils/
│ ├── styles/
│ └── assets/
│
├── src-tauri/ # Rust 백엔드 (동일)
│ └── ...
│
├── public/ # 정적 파일
├── package.json
└── vite.config.js / webpack.config.js
각 디렉토리 설명
/src - 프론트엔드
- index.html: 앱의 진입점 HTML
- css/: 스타일시트 파일
- js/: JavaScript 파일
- assets/: 이미지, 폰트 등 정적 리소스
- components/: 재사용 가능한 UI 컴포넌트
/src-tauri - Rust 백엔드
- src/main.rs: Rust 프로그램 진입점
- src/lib.rs: 라이브러리 진입점 (Tauri 앱 설정)
- src/commands/: Tauri 커맨드 (프론트엔드에서 호출 가능한 Rust 함수)
- src/utils/: 공통 유틸리티 함수
- src/models/: 데이터 구조 및 모델
- tauri.conf.json: Tauri 앱 설정 (윈도우 크기, 권한 등)
- capabilities/: 보안 권한 설정
권장 사항
- 프론트엔드 모듈화: CSS와 JS를 분리하여 관리
- Rust 코드 모듈화: 기능별로 파일 분리 (commands, utils 등)
- .gitignore: target/, node_modules/, gen/ 등 빌드 결과물 제외
- 문서화: README.md에 프로젝트 설명 및 실행 방법 작성