rustup과 cargo의 차이
| 구분 | rustup | cargo |
|---|---|---|
| 목적 | 툴체인 관리 | 프로젝트 관리 |
| 설치 | Rust 자체 | rustup이 설치 |
| 주요 대상 | rustc, std | crate, build |
| 버전 관리 | ✅ | ❌ |
| 빌드 | ❌ | ✅ |
| 실행 | ❌ | ✅ |
rust(rustup, mac & linux) 설치
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
설치 버전 확인
rustc --version
cargo --version
rustup --version
path 등록
source $HOME/.cargo/env
생성 방법
1) main.rs 직접 생성
mkdir ~/projects
cd ~/projects
mkdir hello_world
cd hello_world
Rust 파일은 항상 .rs 확장자로 끝납니다. 파일 이름에 두 개 이상의 단어를 사용하는 경우, 밑줄()로 구분하는 것이 관례
fn main() { println!("Hello World"); }
main함수는 모든 실행 가능한 Rust 프로그램에서 항상 가장 먼저 실행되는 코드다.rustfmt특정 스타일로 코드를 포맷하는 자동 포맷터 도구를 사용 할 수 있다.
rustc 사용
컴파일
rustc main.rs
- C언어와 동일하게 컴파일 결과가 동일 파일에 동일 이름으로 생성됨.
실행
./main
2) Cargo 사용
- Cargo는 Rust의 빌드 시스템이자 패키지 관리자
- 간단한 프로그램의 경우 컴파일만으로
rustc충분하지만, 프로젝트 규모가 커질수록cargo가 필요하다.
cd ../
rm -rf hello_world
# 프로젝트를 생성
cargo new hello_world
cd hello_world
폴더 구조 : 기본 생성 폴더 구조
hello_world
├── Cargo.toml
└── src
└── main.rsCargo.toml : 설정 파일
[package]
name = "hello_world"
version = "0.1.0"
edition = "2024"
[dependencies]빌드 & 실행
cargo build
./target/debug/hello_world
- 프로젝트를 구축
- 실행
빌드 후 폴더 구조
hello_world
├── Cargo.lock
├── Cargo.toml
├── src
│ └── main.rs
└── target
├── CACHEDIR.TAG
└── debug
├── build
├── deps
├── examples
├── hello_world
├── hello_world.d
└── incremental
빌드 & 실행 한 번에 하기
cargo run- 프로젝트를 빌드하고 실행
체크
cargo check- 바이너리 파일을 생성하지 않고도 프로젝트를 빌드하여 오류를 확인
- 코드를 작성하는 동안 지속적으로 컴파일 여부를 확인하는 경우,
git add를 사용하면 프로젝트 컴파일 상태를 더 빠르게 확인할 수 있다.
VSCode 확장
rust-analyzer
Rust 코드의 의미를 해석하는 엔진
컴파일러(
rustc)와 Cargo 구조를 이해해서자동 완성
타입 추론
에러/경고 미리 표시
정의로 이동 (Go to Definition)
사용처 찾기
인라인 타입 힌트
문서 보기 (
///doc, std 문서)
CodeLLDB
실행 · 디버깅 담당 (눈 + 손)
Rust 프로그램을 중단점(breakpoint) 찍고 실행
변수 값, 스택 트레이스, 메모리 상태 확인
cargo run,cargo test를 디버거 모드로 실행로직이 틀렸을 때
panic 원인 추적
unsafe 코드 디버깅
멀티 스레드 동작 확인
Even Better TOML
Cargo.toml 편집 담당 (문법 + 가독성)
Cargo.toml전용 TOML 편집기문법 하이라이트
키 자동완성
구조 깨졌을 때 에러 표시
포맷 안정성
Dependi (구 crates 계열)
의존성 버전 관리 담당 (감시자)
Cargo.toml의 의존성 옆에:최신 버전
업데이트 가능 여부
경고 표시
클릭으로 버전 수정