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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.