0Pricing
Learn Rust Coding · 강의

let과 가변성

바인딩과 가변성

let과 가변성은(는) CoddyKit의 무료 Learn Rust Coding 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn Rust Coding 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.

let으로 값 바인딩하기

Rust에서는 let 키워드로 변수를 만듭니다. 이는 이름을 값에 바인딩합니다.

기본적으로 모든 바인딩은 불변입니다. 값을 한 번 지정하면 변경할 수 없습니다.

fn main() {
    let x = 5;
    println!("The value of x is: {}", x);
}

기본적으로 불변

Rust는 의도적으로 변수를 불변으로 만듭니다. 이를 통해 실수로 값이 변경되는 것을 막고 코드를 더 쉽게 이해할 수 있습니다.

불변 바인딩에 다시 값을 할당하려고 하면 실행 중 충돌이 아니라 컴파일 오류가 발생합니다.

  • let x = 5; 다음에 x = 6;을 작성하면 컴파일되지 않습니다.
fn main() {
    let x = 5;
    // x = 6; // this would cause a compile error
    println!("x stays {}", x);
}

변수를 가변으로 만들기

값을 변경해야 한다면 mut 키워드를 추가합니다. 그러면 해당 바인딩이 가변임을 표시합니다.

이제 원하는 만큼 여러 번 값을 다시 할당할 수 있습니다.

fn main() {
    let mut count = 0;
    count = count + 1;
    count += 1;
    println!("count is {}", count);
}

타입 추론

Rust는 일반적으로 변수의 값에서 변수의 타입을 알아냅니다. 이를 타입 추론이라고 합니다.

let x = 5;를 작성하면 x의 타입이 자동으로 i32가 됩니다.

fn main() {
    let n = 42;      // inferred as i32
    let pi = 3.14;   // inferred as f64
    println!("{} and {}", n, pi);
}

타입 주석

콜론과 타입 이름을 사용하여 타입을 명시적으로 지정할 수도 있습니다. 이를 타입 주석이라고 합니다.

컴파일러가 타입을 추론할 수 없을 때나 코드의 의미를 명확하게 하고 싶을 때 주석이 유용합니다.

fn main() {
    let age: u32 = 30;
    let price: f64 = 9.99;
    println!("age {} price {}", age, price);
}

상수

const는 항상 불변이며 반드시 타입 주석을 지정해야 합니다. 값은 컴파일 시점에 알고 있어야 합니다.

관례상 상수에는 SCREAMING_SNAKE_CASE를 사용합니다.

fn main() {
    const MAX_POINTS: u32 = 100_000;
    println!("Max is {}", MAX_POINTS);
}

const와 let 비교

const와 let의 주요 차이점은 다음과 같습니다.

  • const에는 절대로 mut를 사용할 수 없습니다.
  • const에는 타입 주석이 필요합니다.
  • const는 컴파일 시점의 상수 표현식이어야 합니다.
  • let의 값은 실행 중에 계산할 수 있습니다.
fn main() {
    const SECONDS_PER_HOUR: u32 = 60 * 60;
    let hours = 3;
    println!("{} seconds", SECONDS_PER_HOUR * hours);
}

반복문에서 값 변경하기

가변 변수는 시간이 지나면서 값이 누적되는 반복문에서 흔히 사용됩니다.

여기서는 mut 누산기를 사용하여 숫자를 더합니다.

fn main() {
    let mut total = 0;
    for i in 1..=5 {
        total += i;
    }
    println!("Sum is {}", total);
}

사용하지 않는 값에 밑줄 사용하기

값을 바인딩했지만 전혀 사용하지 않으면 Rust가 경고를 표시합니다. 이름 앞에 밑줄을 붙이면 경고를 숨길 수 있습니다.

  • let _unused = 10;은 이 사용하지 않음이 의도된 것임을 컴파일러에 알립니다.
fn main() {
    let _temp = 99;
    let used = 1;
    println!("{}", used);
}

여러 바인딩

각각의 let을 사용하여 여러 변수를 서로 다른 줄에 선언할 수 있습니다.

각 바인딩은 mut로 표시하지 않는 한 서로 독립적인 불변 바인딩입니다.

fn main() {
    let name = "Rust";
    let year = 2010;
    let mut version = 1;
    version += 1;
    println!("{} born {} v{}", name, year, version);
}

불변성이 도움이 되는 이유

불변성은 안전성 기능입니다. 컴파일러가 값이 변경되지 않는다는 것을 알면 더 강력한 보장을 제공하고 여러 종류의 버그를 방지할 수 있습니다.

정말 필요한 경우에만 mut를 사용하여 값 변경을 허용하세요.

fn main() {
    let config = "production";
    // config is guaranteed not to change
    println!("Running in {}", config);
}

빠른 확인

Rust 변수를 변경 가능하게 만드는 키워드는 무엇인가요?

복습

Rust의 바인딩 기초를 배웠습니다.

  • let은 이름을 값에 바인딩하며 기본적으로 불변입니다.
  • mut는 바인딩을 가변으로 만듭니다.
  • Rust는 타입을 추론하지만 :을 사용하여 주석을 추가할 수 있습니다.
  • const는 컴파일 시점에 결정되고 항상 불변이며 타입이 필요합니다.
fn main() {
    let mut score: u32 = 0;
    const BONUS: u32 = 10;
    score += BONUS;
    println!("Final score: {}", score);
}

자주 묻는 질문

“let과 가변성” 강의는 무료인가요?

네 — “let과 가변성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn Rust Coding 강의 전체를 잠금 해제할 수 있습니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.

“let과 가변성”에서 뭘 배우나요?

바인딩과 가변성 브라우저에서 직접 실행하는 실습 코드로 Learn Rust Coding을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn Rust Coding을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn Rust Coding은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“let과 가변성” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn Rust Coding 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn Rust Coding 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. let과 가변성
  2. 스칼라 타입
  3. 복합 타입
  4. 셰도잉
← Learn Rust Coding(으)로 돌아가기