115 lines
3.8 KiB
Markdown
115 lines
3.8 KiB
Markdown
# 프로젝트 구조 가이드
|
|
|
|
## 현재 구조 (표준 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/**: 보안 권한 설정
|
|
|
|
## 권장 사항
|
|
|
|
1. **프론트엔드 모듈화**: CSS와 JS를 분리하여 관리
|
|
2. **Rust 코드 모듈화**: 기능별로 파일 분리 (commands, utils 등)
|
|
3. **.gitignore**: target/, node_modules/, gen/ 등 빌드 결과물 제외
|
|
4. **문서화**: README.md에 프로젝트 설명 및 실행 방법 작성
|
|
|