이론은 충분해. Rust 한테 뭔가 시켜보자. 생성-빌드-실행 루프 전체가 cargo 명령 세 개야.
cargo new
cargo new hello-rust 가 완전한 프로젝트를 깔아줘: Cargo.toml 매니페스트, 작동하는 hello-world 가 든 src/main.rs, 그리고 git 저장소까지. Rust 프로젝트를 손으로 조립하지 마 — cargo 가 해줘.
프로젝트의 모양
Cargo.toml 은 매니페스트야 (이름, 버전, edition, 의존성). src/main.rs 는 진입점이고 — 그 안의 fn main() 에서 실행이 시작돼. 소스는 src/ 밑에 살고; 빌드 결과물은 target/ 에 떨어져 (얜 gitignore 해).
main 과 println!
실행 파일마다 fn main() 이 딱 하나 있어. println! 은 한 줄을 출력해 — 그리고 그 ! 가 중요해: 함수가 아니라 매크로 라는 표시거든. 매크로는 함수가 못 하는 걸 해, 포맷 문자열을 컴파일 타임에 검사하는 것처럼. 잘못된 placeholder 를 쓰면 컴파일이 안 돼. (매크로는 나중에 트랙 하나 통째로 받아.)
cargo run = 빌드 + 실행 한 방. 개발 중엔 cargo run, 최적화 바이너리는 cargo build --release, 그냥 "컴파일 되나?" 만 알고 싶을 땐 풀 빌드 안 기다리고 cargo check.네가 살게 될 루프
src/main.rs 편집하고, cargo run 돌리고, 출력 (또는 컴파일러 에러) 을 읽고, 반복. 그게 Rust 개발의 심장박동이야. 나머지 전부 — 테스트, 의존성, 문서 — 다 같은 cargo 현관문에 매달려 있어.