1. 프로젝트 초기화
Rust 프로젝트를 시작하려면 Cargo라는 빌드 시스템 및 패키지 관리 도구를 사용합니다. 새로운 프로젝트를 시작하려면 아래 명령어를 사용합니다:
cargo new 프로젝트_이름
이 명령어를 실행하면 기본 디렉토리 구조와 Cargo.toml 파일이 생성됩니다.
2. 디렉토리 구조
기본적으로 생성되는 디렉토리 구조는 다음과 같습니다:
프로젝트_이름/
├── Cargo.toml
└── src/
└── main.rs
- Cargo.toml: 프로젝트의 메타데이터와 의존성을 관리하는 파일입니다.
- src/main.rs: 프로젝트의 메인 소스 파일입니다. 러스트 애플리케이션의 진입점입니다.
3. Cargo.toml 파일
Cargo.toml 파일은 프로젝트의 이름, 버전, 의존성 등을 명시합니다. 예시:
[package]
name = "프로젝트_이름"
version = "0.1.0"
edition = "2021"
[dependencies]
4. src 디렉토리
모든 소스 코드는 src 디렉토리에 위치합니다. 작은 프로젝트는 src/main.rs 파일만으로 충분할 수 있지만, 규모가 커지면 모듈을 나누어 관리합니다.
모듈화 예시
src/lib.rs 파일을 추가하여 라이브러리 형태로 프로젝트를 구성할 수 있습니다.
프로젝트_이름/
├── Cargo.toml
└── src/
├── main.rs
└── lib.rs
main.rs와 lib.rs를 함께 사용하는 예시:
src/main.rs:
프로젝트_이름/
├── Cargo.toml
└── src/
├── main.rs
└── lib.rs
src/lib.rs:
fn main() {
println!("Hello, world!");
프로젝트_이름::some_function();
}
5. 빌드 및 실행
- 빌드: cargo build
- 실행: cargo run
- 테스트: cargo test
6. 추가 디렉토리
프로젝트가 커짐에 따라 다음과 같은 디렉토리를 추가할 수 있습니다:
- tests/: 통합 테스트 파일
- benches/: 벤치마킹 코드
- examples/: 예제 코드
예시 구조:
프로젝트_이름/
├── Cargo.toml
├── benches/
├── examples/
├── src/
│ ├── main.rs
│ └── lib.rs
└── tests/
7. 모듈과 경로
러스트에서는 모듈 시스템을 통해 코드를 구성합니다. 모듈 파일 구조 예시:
src/
├── main.rs
├── lib.rs
├── module_a.rs
└── module_b/
└── mod.rs
lib.rs에서 모듈을 선언하는 방법:
pub mod module_a;
pub mod module_b;
module_b/mod.rs:
pub fn function_in_b() {
println!("Function in module B");
}
위 구조에 따라 module_a와 module_b의 함수를 사용할 수 있습니다.
fn main() {
module_a::function_in_a();
module_b::function_in_b();
}
러스트 프로젝트 구조는 프로젝트의 복잡성과 요구사항에 따라 다를 수 있지만, 위의 기본적인 구조를 바탕으로 확장하면 됩니다.