[ Rust ] 초급 문법 : 18. 패키지와 크레이트 (cargo, extern crate) – 프로젝트 관리 및 외부 라이브러리 사용
초급 문법 : 18. 패키지와 크레이트 (cargo, extern crate) – 프로젝트 관리 및 외부 라이브러리 사용
📦 1단계: "패키지"와 "크레이트"란?
용어 | 설명 |
패키지(Package) | 하나 이상의 **크레이트(Crate)**를 포함할 수 있는 프로젝트 단위입니다. 보통 하나의 프로젝트는 하나의 크레이트를 가지고 있어요. |
크레이트(Crate) | 실제로 컴파일되는 코드 단위입니다. |
라이브러리 크레이트 | 다른 크레이트에서 가져다 쓸 수 있는 공용 코드 모음입니다. |
바이너리 크레이트 | main 함수가 있고 실행 가능한 프로그램입니다. |
우리는 보통 cargo라는 도구를 사용해서 패키지를 만들고, 크레이트를 관리하고, 실행하고, 외부 라이브러리를 추가합니다.
🛠 2단계: VS Code로 새 패키지(프로젝트) 만들기
📁 새 프로젝트 만들기
우선 새 프로젝트를 만들어야 합니다.
1️⃣ 터미널 열기
- VS Code를 실행하고, Ctrl + ~ (물결표) 키를 눌러 터미널을 엽니다.
- 또는 메뉴에서 [터미널] → [새 터미널] 선택하세요.
- 터미널이 이미 열려 있으면, 열려 있는 터미널을 이용하세요.
2️⃣ 새 Rust 프로젝트 생성
- 새로운 Rust 프로젝트를 만들 폴더로 이동 (예: C:\RustProjects)
cd C:\RustProjects
- 터미널에 아래 명령을 입력하고 Enter 키를 누릅니다.
- rust_crate 라는 폴더가 생성됩니다.
cargo new rust_crate
3️⃣ 프로젝트 열기
- VS Code에서 [파일] → [폴더 열기] 선택 후 rust_crate 폴더를 엽니다.
4️⃣ 메인 파일 열기
- 왼쪽 src 폴더에서 main.rs 파일을 클릭하여 엽니다.
📂 3단계: 기본 프로젝트 구조 이해하기
rust_crate 폴더 구조는 다음과 같습니다:
rust_crate/
├── Cargo.toml ← 패키지 정보 (이 파일이 매우 중요!)
└── src/
└── main.rs ← main 함수가 있는 실행 코드
- Cargo.toml은 패키지 이름, 버전, 외부 크레이트 정보를 적는 파일입니다.
- src/main.rs는 프로그램이 시작되는 곳입니다.
✅ 4단계: 실행해보기
Ctrl + S 를 눌러 파일을 저장합니다. (또는 메뉴 -> 파일 -> 저장)
Ctrl + ~ (물결표) 키를 눌러 터미널을 엽니다.
터미널에서 다음을 실행합니다.
cargo run
출력:
Hello, world!
📚 5단계: 외부 크레이트 사용하기 – 예제: rand (랜덤 숫자 생성)
우리는 rand라는 외부 크레이트(라이브러리)를 추가해보겠습니다.
5-1️⃣ Cargo.toml 수정
[dependencies]
rand = "0.8"
이 파일은 프로젝트에 어떤 외부 크레이트를 사용할지 알려줍니다.
5-2️⃣ src/main.rs 수정
use rand::Rng;
fn main() {
let mut rng = rand::thread_rng();
let number = rng.gen_range(1..=100);
println!("Random number: {}", number);
}
5-3️⃣ 실행
Ctrl + S 를 눌러 파일을 저장합니다. (또는 메뉴 -> 파일 -> 저장)
터미널에서 다음을 실행합니다.
cargo run
결과 예시:
Random number: 73
📘 6단계: 요약 정리
단계 | 설명 |
cargo new 프로젝트이름 | 새로운 프로젝트(패키지)를 만든다 |
Cargo.toml | 프로젝트 정보 + 외부 크레이트 의존성 정의 |
cargo run | 프로젝트 실행 |
use 크레이트::모듈 | 외부 크레이트를 Rust 코드에서 사용 |
extern crate | 현재는 거의 사용되지 않음 (이전 버전 문법, 생략 가능) |
🎯 연습용 예제 (직접 해보세요!)
use rand::Rng;
fn main() {
let secret_number = rand::thread_rng().gen_range(1..=10);
println!("Secret number is: {}", secret_number);
}
이상으로 패키지와 크레이트에 대해 알아보았습니다.
[ Rust ] 러스트 프로그래밍 언어 관련 글 목록입니다.
러스트 컴퓨터 프로그래밍 언어를 아이들에게 알려주기 위해 글을 작성하고 있습니다.가능한 쉽고 자세하게 그리고 잘 따라할 수 있도록 작성해 보려고 합니다.글이 작성되는 대로 계속 추가하
hb-love-each-other.tistory.com
한국 러스트 사용자 그룹
rust-kr.org
Rust Programming Language
A language empowering everyone to build reliable and efficient software.
www.rust-lang.org