본문 바로가기
Rust

00 Installation

by curious week 2026. 1. 14.

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.rs

Cargo.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의 의존성 옆에:

    • 최신 버전

    • 업데이트 가능 여부

    • 경고 표시

  • 클릭으로 버전 수정