Cargo는 Rust의 패키지 관리자이자 빌드 시스템입니다. Cargo를 사용하면 Rust 프로젝트를 관리하고, 외부 라이브러리를 추가하고, 프로젝트를 빌드하고, 테스트를 실행하는 등의 작업을 간편하게 수행할 수 있습니다. 아래에 Cargo에 대한 설명과 기본적인 사용 방법을 단계별로 설명하겠습니다.
Cargo의 주요 기능
- 프로젝트 생성: 새로운 Rust 프로젝트를 초기화합니다.
- 빌드: 프로젝트를 컴파일합니다.
- 의존성 관리: 외부 라이브러리를 추가하고 관리합니다.
- 테스트: 프로젝트의 테스트를 실행합니다.
- 배포: 프로젝트를 패키징하고 배포합니다.
Cargo 설치 확인
Rust를 설치할 때 Cargo도 함께 설치됩니다. 다음 명령어로 Cargo가 설치되었는지 확인할 수 있습니다:
cargo --version
Cargo 사용 방법
1. 새로운 프로젝트 생성
새로운 Rust 프로젝트를 생성하려면 cargo new
명령어를 사용합니다. 프로젝트 이름으로 hello_cargo
를 예로 들겠습니다:
cargo new hello_cargo
이 명령어는 다음과 같은 디렉토리 구조를 가진 새로운 프로젝트를 생성합니다:
hello_cargo
├── Cargo.toml
└── src
└── main.rs
- Cargo.toml: 프로젝트의 메타데이터와 의존성을 정의하는 파일입니다.
- src/main.rs: 프로젝트의 기본 Rust 코드 파일입니다.
2. 프로젝트 빌드
프로젝트 디렉토리로 이동한 후 cargo build
명령어를 사용하여 프로젝트를 빌드합니다:
cd hello_cargo
cargo build
이 명령어는 target/debug
디렉토리에 빌드된 실행 파일을 생성합니다. 디버그 모드로 빌드되며, 최적화가 적용되지 않습니다.
3. 프로젝트 실행
빌드된 프로젝트를 실행하려면 cargo run
명령어를 사용합니다:
cargo run
이 명령어는 프로젝트를 빌드하고, 빌드된 실행 파일을 실행합니다. 기본 코드에서는 "Hello, world!" 메시지가 출력됩니다.
4. 릴리즈 모드로 빌드
프로덕션 환경에서 사용할 최적화된 빌드를 생성하려면 cargo build --release
명령어를 사용합니다:
cargo build --release
이 명령어는 target/release
디렉토리에 최적화된 실행 파일을 생성합니다.
5. 의존성 추가
프로젝트에 외부 라이브러리를 추가하려면 Cargo.toml
파일에 의존성을 추가해야 합니다. 예를 들어, rand
라이브러리를 추가하려면 Cargo.toml
파일을 열고 다음을 추가합니다:
[dependencies]
rand = "0.8"
그런 다음 cargo build
명령어를 실행하여 새로운 의존성을 다운로드하고 빌드합니다:
cargo build
6. 테스트 실행
Rust에서는 테스트를 작성하고 실행하는 기능을 기본으로 제공합니다. 테스트를 실행하려면 cargo test
명령어를 사용합니다:
cargo test
이 명령어는 프로젝트의 모든 테스트를 실행하고 결과를 출력합니다.
예제: 간단한 프로젝트 생성 및 실행
1. 프로젝트 생성
cargo new hello_cargo
cd hello_cargo
2. src/main.rs
파일 수정
fn main() {
println!("Hello, Cargo!");
}
3. 프로젝트 빌드 및 실행
cargo build
cargo run
이 명령어를 실행하면 "Hello, Cargo!" 메시지가 출력됩니다.
4. Cargo.toml
파일에 의존성 추가
[dependencies]
rand = "0.8"
5. src/main.rs
파일 수정하여 rand
라이브러리 사용
use rand::Rng;
fn main() {
let mut rng = rand::thread_rng();
let n: u32 = rng.gen_range(0..10);
println!("Random number: {}", n);
}
6. 프로젝트 빌드 및 실행
cargo build
cargo run
이 명령어를 실행하면 0에서 9 사이의 랜덤한 숫자가 출력됩니다.
이와 같이, Cargo를 사용하면 Rust 프로젝트를 쉽게 생성하고 관리할 수 있습니다. Cargo는 의존성 관리, 빌드 시스템, 테스트 실행 등 다양한 기능을 제공하여 개발을 편리하게 해줍니다.
'언어 > Rust' 카테고리의 다른 글
[ Rust ] 러스트는 어떤 언어인가? (0) | 2024.08.27 |
---|---|
[ Rust ] Result Type을 사용해서 반환값 처리하기 (0) | 2024.06.07 |
[ Rust ] 가변변수/불변변수 선언하고 사용하기 (0) | 2024.06.07 |
[ Rust ] 숫자 맞치기 게임 작성하고 실행하기 (0) | 2024.06.07 |
[ Rust ] 설치하고 첫번째 프로그램 작성 및 실행 (0) | 2024.04.21 |