[Rust 시리즈 2편] Rust 설치와 첫 실행

English version

1편에서 러닝 맥락과 로드맵을 확인했다면, 이제는 실제로 컴퓨터에 Rust를 설치해 작동 방식을 눈으로 확인할 차례입니다. 2편에서는 rustup으로 툴체인을 설치하고, cargo 명령으로 프로젝트를 만들고 실행하는 흐름을 다룹니다. Rust는 설치부터 빌드까지 모두 CLI 기반으로 진행되므로, 처음부터 명령어 흐름을 몸에 익히면 이후 장애물을 줄일 수 있습니다.

이번 글에서 새로 나오는 용어

  1. rustup: Rust 컴파일러와 관련 도구를 설치·업데이트하는 공식 설치 관리자
  2. toolchain: stable, beta, nightly처럼 버전 세트를 묶어 부르는 이름으로, rustc, cargo, 표준 라이브러리가 함께 들어 있습니다.
  3. Cargo manifest: 프로젝트 루트의 Cargo.toml 파일로, 패키지 이름·버전·의존성을 정의하는 설정 파일

핵심 개념

  • Rust 설치는 rustup 스크립트 하나로 진행되며, 기본적으로 stable toolchain과 cargo, rustc가 함께 준비됩니다.
  • 프로젝트 생성부터 빌드·실행·테스트까지는 모두 cargo 명령 하나로 이어지며, cargo new가 프로젝트 스캐폴딩을 만들어 줍니다.
  • Cargo.tomlsrc/main.rs 구조를 이해하면 이후 어떤 예제를 보더라도 어디에 코드를 넣어야 하는지 바로 파악할 수 있습니다.
  • cargo run은 빌드와 실행을 한꺼번에 수행하고, cargo build는 빌드만 수행합니다. cargo check는 실제 실행 파일을 만들지 않고 컴파일 검사를 빠르게 돌립니다.

코드로 따라하기

1. rustup 설치

이 글은 Mac 기준으로 설명하지만, Rust 자체는 Windows와 Linux에서도 거의 같은 흐름으로 설치할 수 있습니다. 다른 운영체제를 쓰는 경우에는 Rust 공식 문서의 설치 안내를 함께 참고하면 됩니다.

Mac에서는 두 가지 설치 경로를 생각할 수 있습니다.

  • 공식 설치 스크립트: Rust 공식 문서에서 가장 자주 안내하는 방식
  • Homebrew + rustup: Homebrew를 이미 쓰고 있다면 익숙한 방식

핵심은 어느 경로를 택하더라도 최종적으로 rustup이 toolchain을 관리하게 만드는 것입니다. 처음 시작할 때는 brew install rust까지 같이 하지 말고, rustup만 설치해 사용하는 편이 충돌이 적습니다.

공식 스크립트를 쓰고 싶다면 macOS 또는 Linux 터미널에서 아래 명령을 실행합니다. (Windows는 PowerShell에서도 거의 같은 흐름으로 설치할 수 있습니다.)

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Homebrew를 선호한다면 아래처럼 설치해도 됩니다.

brew install rustup
rustup default stable

이 방식은 Homebrew로 rustup만 설치하고, 실제 Rust toolchain(rustc, cargo)은 rustup이 내려받아 관리하게 만드는 흐름입니다. brew install rust까지 같이 하면 PATH 충돌이나 관리 주체가 애매해질 수 있으니, 특별한 이유가 없다면 처음에는 피하는 편이 좋습니다.

설치 과정에서 기본 toolchain을 묻는다면 stable을 그대로 선택하면 됩니다. 설치가 끝나면 터미널을 새로 열고 다음 명령으로 버전을 확인합니다.

rustc --version
cargo --version

2. 첫 프로젝트 생성

연습 폴더를 하나 정한 뒤 cargo new hello-rust를 실행합니다.

cargo new hello-rust
cd hello-rust

생성된 구조는 아래처럼 단순합니다.

hello-rust/
├── Cargo.toml
└── src/
    └── main.rs

Cargo.toml에는 패키지 이름, 버전, 의존성 같은 프로젝트 메타데이터가 들어 있고, src/main.rs에는 기본 main 함수가 들어 있습니다.

3. 빌드와 실행

프로젝트 루트에서 다음 명령을 순서대로 실행합니다.

cargo build
cargo run
  • cargo buildtarget/debug 폴더에 실행 파일을 만듭니다.
  • cargo run은 빌드가 필요하면 빌드 후, 바로 실행까지 진행합니다.
  • cargo check는 실행 파일을 만들지 않고 코드가 컴파일 가능한지만 빠르게 확인합니다.

코드를 조금 바꿔 보면서 빌드 과정을 체감해 봅니다.

fn main() {
    let name = "Mathbong";
    println!("안녕하세요, {}!", name);
}

수정 후 cargo run을 다시 실행하면 변경 사항이 반영된 출력을 바로 확인할 수 있습니다.

4. 빠른 검증: cargo check

문법이나 타입 오류만 확인하고 싶다면 cargo check를 사용합니다. 실행 파일을 만들지 않아 더 빠르게 피드백을 받을 수 있습니다.

cargo check

왜 중요한가

  • Rust 학습에서 막히는 첫 지점은 설치와 빌드 체인을 이해하지 못한 상태에서 코드를 붙여넣는 상황입니다. 2편에서 환경을 안정적으로 구성하면 이후 예제를 따라 하는 속도가 크게 빨라집니다.
  • Cargo는 Rust 생태계의 표준 빌드 시스템이기 때문에, 명령어 몇 개만 익혀도 패키지 추가, 테스트, 릴리스 빌드까지 같은 흐름에서 처리할 수 있습니다.
  • cargo check 같은 도구는 컴파일 피드백을 빠르게 받도록 도와 주어, ownership이나 타입 오류를 실험할 때 시간을 절약합니다.

CodeSandbox로 이어서 실습하기

아래 샌드박스는 CodeSandbox의 Rust starter입니다. 이번 글의 핵심 코드를 src/main.rs에 옮기고, cargo checkcargo run 결과를 나란히 보면서 컴파일 메시지와 실행 출력을 비교해 보세요.

Live Practice

Rust Practice Sandbox

CodeSandbox

Run the starter project in CodeSandbox, compare it with the lesson code, and keep experimenting.

Rust startercargoterminal
  1. starter를 fork한 뒤 src/main.rs를 연다
  2. 본문 예제를 붙여 넣고 cargo check와 cargo run을 차례로 실행한다
  3. 타입, 값, 참조 흐름을 바꿔 컴파일 피드백과 출력 차이를 비교한다

Rust 실습은 브라우저 미리보기보다 터미널 피드백이 더 중요합니다. 여러 파일 구조나 추가 crate가 필요한 예제는 파일 배치를 조금 더 손봐야 할 수 있습니다.

실습

  1. rustup show를 실행해 현재 활성화된 toolchain을 확인하고, rustup toolchain list 결과를 기록해 둡니다.
  2. cargo new playground --vcs none으로 버전 관리 없이 새 프로젝트를 만든 뒤, main.rs에 다른 메시지를 출력하도록 수정하고 cargo run 결과를 캡처합니다.
  3. cargo checkcargo build가 걸리는 시간을 비교해 보고, 언제 어떤 명령을 쓰는 게 적절한지 한 문장으로 정리합니다.
  4. 옵션: cargo fmt -- --help를 실행해 코드 포매터가 포함돼 있다는 사실만 확인해 둡니다. 실제 사용은 7편 이후에 다시 다룹니다.

마무리

이제 Rust 개발 환경이 준비됐고, cargo new, cargo build, cargo run, cargo check의 기본 루틴을 직접 경험했습니다. 다음 글에서는 letmut로 변수를 선언하고, 스칼라·튜플·배열 같은 기본 자료형을 어떻게 다루는지 살펴보겠습니다.

💬 댓글

이 글에 대한 의견을 남겨주세요