All posts

Rust 초급 1편: 설치와 Cargo로 첫 프로그램 만들기

Rust를 처음 배우는 사람을 위한 12편 연재의 시작. Windows·macOS·Linux 설치부터 Cargo 프로젝트 생성, 코드 수정과 실행, 오류 해결과 연습 문제까지 따라 해 봅니다.

Hello, Rust!가 표시된 노트북 옆의 주황색 게와 Cargo 상자로 Rust 개발의 첫걸음을 표현한 일러스트

Rust를 처음 배우면 코드보다 먼저 만나는 단어가 있습니다. rustup, rustc, Cargo입니다. 셋의 역할을 구분하고 작은 프로그램 하나를 실행해 보면 개발을 시작할 준비가 됩니다.

이 연재는 Rust를 처음 접하는 사람을 위한 12편짜리 튜토리얼입니다. 터미널에서 명령을 입력하고 텍스트 파일을 편집할 수 있으면 따라올 수 있습니다. 앞선 프로그래밍 경험은 도움이 되지만, Rust 문법을 안다고 가정하지는 않습니다.

이번 편에서는 터미널에 학습 시작 메시지를 출력하는 프로그램을 만듭니다. 외부 라이브러리나 계정은 필요하지 않습니다.

이번 편에서 할 일

  • 운영체제에 맞게 Rust 개발 도구를 설치합니다.
  • Cargo로 프로젝트를 만들고 파일 구성을 살펴봅니다.
  • main.rs를 수정하고 컴파일한 프로그램을 실행합니다.
  • cargo check, cargo build, cargo run의 차이를 확인합니다.

설치 시간은 운영체제와 네트워크 환경에 따라 다릅니다. 설치를 마친 뒤의 실습은 작은 프로젝트 하나로 진행합니다.

먼저 구분할 도구 세 가지

rustup은 Rust 도구 모음을 설치하고 관리합니다. rustc는 Rust 소스 코드를 컴파일합니다. Cargo는 프로젝트 생성, 빌드, 실행, 의존성 관리를 맡습니다.

이 연재에서는 Cargo를 통해 컴파일과 실행을 진행합니다. 개발할 때 rustc를 직접 호출할 필요는 없습니다. rustup으로 공식 설치를 진행하면 Cargo도 함께 설치됩니다. 공식 Cargo 안내

명령은 터미널에서 입력하고, Rust 코드는 편집기에서 파일에 작성합니다. 아래 코드 블록에 셸 프롬프트 기호는 넣지 않았으므로 명령만 그대로 입력하면 됩니다.

1. Rust 설치하기

운영체제에 해당하는 절차 하나를 선택하세요. 이미 설치했다면 버전 확인 단계로 넘어갑니다. 이 글은 최신 stable 도구 모음과 Rust 2024 Edition을 기준으로 설명합니다. 버전 번호는 설치 시점에 따라 달라질 수 있습니다.

Windows

Rust 공식 설치 페이지에서 Windows용 rustup 설치 파일을 내려받아 실행합니다.

설치 과정에서 Visual Studio 관련 구성 요소를 안내받을 수 있습니다. Rust의 기본 Windows 개발 환경에서 프로그램을 연결하는 링커와 라이브러리가 필요하기 때문입니다. 안내에 따라 C++ 빌드 도구 등 필요한 구성 요소를 설치하세요. 자세한 항목은 rustup의 Windows MSVC 안내를 참고하면 됩니다.

설치가 끝나면 기존 PowerShell 창을 닫고 새 창을 엽니다. WSL을 사용한다면 WSL 터미널에서는 아래 Linux 절차를 따릅니다. Windows와 WSL은 별도 개발 환경입니다.

macOS와 Linux

아래는 공식 문서에서 안내하는 rustup 설치 명령입니다. 인터넷에서 받은 스크립트를 실행하므로 주소가 공식 배포 주소인지 확인하고 실행하세요.

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

기본 설치를 진행한 뒤 새 터미널을 엽니다. macOS에서 빌드 도구가 없다면 다음 명령으로 Command Line Tools를 설치합니다.

xcode-select --install

Ubuntu 계열 Linux에서 링커나 C 빌드 도구가 없다면 다음 패키지가 필요할 수 있습니다. 다른 배포판은 해당 배포판의 패키지 관리 방법을 따르세요.

sudo apt update
sudo apt install build-essential

설치와 운영체제별 빌드 도구 조건은 Rust 공식 설치 문서에 설명되어 있습니다.

설치 확인

새 터미널에서 다음 명령을 하나씩 실행합니다.

rustup --version
rustc --version
cargo --version

각 도구의 버전 정보가 나오면 명령을 사용할 수 있는 상태입니다. 다만 실제 컴파일 환경까지 준비됐는지는 뒤의 cargo run으로 확인합니다.

명령을 찾을 수 없다는 메시지가 나오면 터미널을 새로 열었는지 먼저 확인하세요. 그래도 같다면 설치가 완료됐는지, Cargo 실행 경로가 PATH에 들어갔는지 확인합니다. 같은 설치 명령을 반복하기 전에 기존 설치 상태부터 살펴보는 편이 좋습니다.

2. Cargo로 프로젝트 만들기

프로젝트를 보관할 폴더로 이동한 뒤 다음 명령을 실행합니다. Windows PowerShell에서도 같은 명령을 사용할 수 있습니다.

cargo new rust_starter
cd rust_starter

첫 명령은 rust_starter 폴더와 실행 프로그램의 기본 구성을 만듭니다. 두 번째 명령은 방금 만든 프로젝트 폴더로 이동합니다. 이후 Cargo 명령은 이 폴더 안에서 실행합니다.

편집기로 rust_starter 폴더를 열면 우선 두 파일을 살펴볼 수 있습니다.

rust_starter/
  Cargo.toml
  src/
    main.rs

Cargo.toml은 패키지 이름, 버전, 에디션, 의존성을 적는 설정 파일입니다. src/main.rs는 실행 프로그램의 시작 코드를 담습니다. 환경에 따라 Git 관련 파일도 함께 만들어질 수 있습니다.

Cargo.toml에서 name은 rust_starter, edition은 최신 Cargo 기준으로 2024인 것을 확인하세요. 에디션은 Rust 문법과 호환성 규칙을 선택하는 설정입니다. 컴파일러의 버전 번호와는 다릅니다. 이번 실습에서는 Cargo가 생성한 설정을 그대로 사용합니다.

3. 첫 프로그램 실행하기

먼저 생성된 코드를 바꾸지 않고 실행해 봅니다.

cargo run

터미널에는 빌드 관련 안내와 함께 다음 줄이 표시됩니다.

Hello, world!

이 문장이 보이면 Cargo가 컴파일러와 링커를 사용해 실행 파일을 만들고, 실행까지 마친 것입니다. 빌드 시간이나 부가 안내 문구는 환경마다 다를 수 있습니다.

4. 학습 시작 메시지로 바꾸기

src/main.rs의 내용을 다음 코드로 바꾼 뒤 저장합니다.

fn main() {
    println!("Hello, Rust!");
    println!("오늘은 Rust 초급 1편을 공부합니다.");
    println!("목표: 코드를 수정하고 직접 실행하기");
}

다시 실행합니다.

cargo run

우리가 작성한 프로그램의 출력은 다음과 같습니다. Cargo의 빌드 안내는 여기에 포함하지 않았습니다.

Hello, Rust!
오늘은 Rust 초급 1편을 공부합니다.
목표: 코드를 수정하고 직접 실행하기

fn은 함수를 정의할 때 쓰는 키워드입니다. main은 이 실행 프로그램이 시작되는 함수의 이름입니다. 중괄호 안의 코드가 위에서 아래로 실행됩니다.

println!은 전달한 내용을 출력하고 줄을 바꾸는 매크로입니다. 이름 끝의 느낌표는 일반 함수 호출과 구분되는 표시입니다. 지금은 이 문법을 그대로 사용하면 됩니다.

큰따옴표 안에 출력할 문자열을 적고, 각 println! 문장 끝에는 세미콜론을 붙였습니다. Rust 문자열은 한글도 담을 수 있습니다. 편집기에서는 파일을 UTF-8로 저장하세요.

5. 검사·빌드·실행 구분하기

같은 프로젝트에서 다음 세 명령을 차례로 실행해 보세요.

cargo check
cargo build
cargo run

cargo check는 실행 파일을 만드는 최종 단계 없이 코드를 검사하므로 수정 중 오류를 확인할 때 유용합니다. cargo build는 실행 파일을 만들지만 실행하지 않습니다. cargo run은 필요한 빌드를 수행하고 프로그램을 실행합니다.

Cargo는 변경되지 않은 부분의 빌드 결과를 재사용합니다. 따라서 코드 변경 없이 다시 실행하면 첫 실행보다 짧게 끝날 수 있습니다. Cargo의 빌드·실행 설명

빌드한 뒤에는 target 폴더와 Cargo.lock 파일이 보일 수 있습니다. target은 빌드 산출물을 담는 폴더이고, Cargo.lock은 의존성 버전을 고정하는 데 쓰입니다. 이번에는 둘 다 직접 편집하지 않습니다.

6. 컴파일 오류를 한 번 경험해 보기

첫 번째 출력문에서 닫는 큰따옴표를 지워 보세요.

fn main() {
    println!("Hello, Rust!);
}

위 코드는 의도적으로 잘못 작성한 예제입니다. 저장한 뒤 cargo check를 실행하면 문자열이 끝나지 않았다는 취지의 오류가 나옵니다. 정확한 진단 문구와 표시 위치는 컴파일러 버전에 따라 달라질 수 있습니다.

오류를 만나면 세 가지를 차례로 확인합니다. 어떤 파일인지, 어느 줄인지, 무엇이 잘못됐다고 설명하는지입니다. 이번에는 문자열을 닫는 따옴표가 빠졌습니다. 다음처럼 고칩니다.

fn main() {
    println!("Hello, Rust!");
}

cargo check가 통과하면 앞서 작성한 학습 시작 메시지 세 줄을 복구하고 cargo run을 실행하세요. 코드가 잘못된 상태와 수정된 상태를 직접 비교하는 것이 이번 단계의 목적입니다.

따라 하다가 막혔을 때

Cargo.toml을 찾을 수 없다고 나옵니다

현재 위치가 프로젝트 폴더인지 확인하세요. cargo new를 실행한 상위 폴더에 그대로 있다면 cd rust_starter로 이동해야 합니다. 명령을 실행하는 폴더 안에 Cargo.toml이 있어야 합니다.

파일을 수정했는데 출력이 그대로입니다

파일을 저장했는지, 다른 rust_starter 프로젝트를 실행하고 있지 않은지 확인하세요. 이번 예제에서 수정할 파일은 프로젝트의 src/main.rs입니다.

링커 관련 오류가 나옵니다

Rust 문법 오류와 구분해서 살펴보세요. Windows는 MSVC 빌드 도구, macOS는 Command Line Tools, Linux는 배포판의 C 컴파일러와 링커 설치 상태를 확인합니다. 설치가 필요하다면 앞의 운영체제별 안내로 돌아갑니다.

연습: 나만의 시작 화면 만들기

src/main.rs를 수정해 아래 세 줄을 출력해 보세요. 이번에는 변수나 입력 기능을 사용하지 않고 println!만 사용합니다.

나의 첫 Rust 프로그램
학습자: 민수
다음 목표: 변수와 자료형 배우기

이름은 자신의 이름이나 별명으로 바꿔도 됩니다. 코드를 저장한 뒤 cargo check와 cargo run을 실행하세요. 세 줄이 원하는 순서로 나오면 완료입니다.

연습 해설

fn main() {
    println!("나의 첫 Rust 프로그램");
    println!("학습자: 민수");
    println!("다음 목표: 변수와 자료형 배우기");
}

문장을 한 줄 더 추가하려면 중괄호 안에 println!을 하나 더 작성하면 됩니다. 여기서는 fn main의 괄호와 중괄호를 유지하고 출력할 문자열만 바꾸는 연습을 했습니다.

다음 편으로 넘어가기 전

터미널에서 Rust 도구의 버전을 확인하고, Cargo로 프로젝트를 만들고, src/main.rs를 수정해 출력 결과를 바꿀 수 있으면 이번 편의 목표를 달성했습니다.

다음 2편에서는 값을 코드에 보관하는 방법을 배웁니다. let으로 변수를 만들고 숫자와 문자열을 출력하면서, 바꿀 수 있는 값과 바꿀 수 없는 값을 구분하겠습니다.

Rust 초급 시리즈 전체 목차

  1. 설치와 Cargo로 첫 프로그램 만들기
  2. 변수·자료형·문자열로 학습 기록 만들기
  3. 함수·조건문·반복문으로 학습 기록 계산하기
  4. String으로 이해하는 소유권과 이동
  5. 참조와 빌림으로 문자열 읽고 수정하기
  6. 구조체와 메서드로 학습 할 일 만들기
  7. 열거형과 패턴 매칭으로 학습 상태 표현하기
  8. Option·Result로 빈 값과 오류 처리하기
  9. 벡터·해시맵·문자열로 학습 기록 모으기
  10. 모듈과 외부 크레이트로 코드 정리하기
  11. 테스트와 디버깅으로 목표 계산 검증하기
  12. 파일을 검색하는 CLI 프로젝트 완성하기

시리즈 모아보기

참고 문서와 확인 범위

설치 안내는 2026년 11월 11일 공식 문서를 확인해 작성했습니다. 학습 시작 메시지 세 줄을 출력하는 핵심 예제는 Rust Playground의 stable 환경과 2024 Edition으로 실행해 본문의 예상 출력과 일치하는 것을 확인했습니다. 운영체제별 설치 절차를 모두 직접 재현한 것은 아닙니다.

Discussion

No comments yet