-
Day 2: 기초 문법 (변수, 스코프, 데이터 타입)RUST 20일 과정 2025. 1. 6. 13:35
Day 2: 기초 문법 (변수, 스코프, 데이터 타입) Day 2: 기초 문법 (변수, 스코프, 데이터 타입)
1. 수업 개요
- 주제: Rust의 변수 선언 방식, 스코프(생존 범위), 기본 데이터 타입을 익힌다.
- 학습 목표:
- Rust에서의 변수 선언과 사용 방법(불변 변수와 가변 변수)을 이해한다.
- Shadowing 개념을 이해하고, C 언어 대비 특징을 파악한다.
- Rust의 기본 데이터 타입(정수형, 실수형, 문자형, bool 등)을 사용할 수 있다.
2. 이론
변수 선언:
let
과let mut
- 불변 변수(
let
) - 기본적으로 Rust에서는 변수 재할당이 불가능하다.
- 예시:
let x = 5; // x = 6; // 에러 발생 (재할당 불가)
- 가변 변수(
let mut
)mut
키워드로 선언된 변수는 재할당이 가능하다.- 예시:
let mut y = 10; y = 20; // OK
Shadowing(섀도잉)
- 같은 이름의 변수를 새로 선언해서, 기존 변수를 “가리는(Shadow)” 개념
- 기존 변수와 구분되어 새로운 스코프 범위에서만 유효
- 예시:
let a = 5; let a = a + 1; { let a = a * 2; println!("스코프 내부 a: {}", a); // 12 } println!("스코프 외부 a: {}", a); // 6
스코프와 변수 생존 범위
- 스코프: 변수가 유효한 코드 블록의 범위
- Rust에서는 블록(
{ }
)이 끝나면 해당 스코프 안에서 선언된 변수는 해제된다.
데이터 타입
- 정수형:
i8
,i16
,i32
,i64
,i128
,isize
/u8
,u16
, … - 실수형:
f32
,f64
- bool:
true
,false
- char: 유니코드 문자(4바이트)
- 예시:
let int_num: i32 = 42; let float_num: f64 = 3.14; let is_rust_fun: bool = true; let letter: char = 'R';
타입 변환(Casting)
- Rust에서는 타입 변환이 명시적으로 필요하다. (암묵적 형변환 불가)
- 예시:
let a: i32 = 10; let b: u32 = a as u32; // 명시적인 형변환
3. 실습
변수 선언 연습
새 프로젝트를 만들거나(예:
cargo new day2_practice
) 혹은 기존 프로젝트에main.rs
를 새로 작성해보자.Shadowing 확인
fn main() { let a = 3; println!("a: {}", a); let a = a + 2; println!("a + 2: {}", a); { let a = a * 2; println!("(스코프 내부) a * 2: {}", a); } println!("(스코프 외부) a: {}", a); }
데이터 타입 실습
- 정수형, 실수형, bool, char 변수를 각각 선언하고,
println!
으로 출력해본다. - 서로 다른 정수형끼리 캐스팅할 때(
as
키워드) 어떤 일이 일어나는지 실험
4. 마무리 및 과제
오늘 배운 내용 정리
- Rust의 변수 선언 방식(
let
,let mut
), Shadowing - 스코프 개념과 변수 생존 범위
- Rust의 기본 데이터 타입과 명시적 형변환
과제(실습 문제)
- 다음 코드를 작성해 보고 결과를 분석해보자.
a + b
의 값을 저장하는 정수형 변수, 그리고 이를 실수로 바꾸어 출력하는 코드를 작성.- 실습한 프로젝트(또는 main.rs)를 GitHub에 올리기(가능하다면).
let mut x = 5; println!("초기 x: {}", x); x = x + 1; println!("x에 1 더하기: {}", x); let x = x * 2; println!("shadowing x * 2: {}", x);
학습 팁
- Rust의 변수는 기본적으로 불변이라는 점이 큰 차이이므로, 의도적으로 가변 변수(
let mut
) 또는 Shadowing을 활용해보며 감을 익히자. - 타입이 다른 변수 간 연산 시 꼭 명시적 변환이 필요한 점도 기억하자.
5. 수업 진행 예시 타임라인 (총 50분 수업 기준)
- 10분: 이론 설명: 변수 개념,
let
/let mut
, Shadowing, 스코프, 데이터 타입 - 5분: 질의응답: C언어와의 비교 (함께 얘기해보기)
- 20분: 실습:
- 간단한 예제 코드 직접 작성 & 출력 결과 확인
- Shadowing과 스코프 블록 실습
- 10분: 실습 코드 공유 및 디버깅, 에러 메시지 분석
- 5분: 마무리, 과제 안내
정리: Rust 언어에서 변수는 기본적으로 불변이라는 점이 C 언어와 가장 다른 부분 중 하나이며, Shadowing을 통해 이름은 같지만 새로운 변수를 선언해 기존 변수를 가릴 수 있다는 것이 흥미로운 특징입니다.
'RUST 20일 과정' 카테고리의 다른 글
Day 5: 함수와 모듈 기초 (0) 2025.01.06 Day 4: 기본 제어문 (if, loop, while, for) (0) 2025.01.06 Day 3: Ownership & Borrowing (0) 2025.01.06 Day 1: Rust 소개 & 개발환경 설정 (2) 2025.01.06 ChatGPT o1의 힘을 빌어 20일 과정의 RUST 강의 자료를 제작합니다 (0) 2025.01.06