본문 바로가기
08.개발&프로그래밍/4.Rust(러스트)

3장: Rust 기초 문법 이해하기

by JWJ Family 2025. 7. 28.
728x90

Rust는 “안전성·성능·생산성” 세 마리 토끼를 잡은 언어입니다. 오늘은 그 첫 관문인 Rust 변수Rust 데이터 타입, 그리고 Rust 연산자를 마스터해 보죠. 이 3가지만 익혀도 Rust 선언과 간단한 함수 호출 정도는 거뜬히 구현할 수 있습니다.


3-1. 변수와 가변성(let vs let mut)

불변이 기본, 필요할 때만 mut !

Rust 변수는 기본적으로 불변(immutable)이며 let x = 5;처럼 선언합니다. 값을 바꿔야 할 땐 mut 키워드를 넣어 let mut x = 5;처럼 가변성을 명시합니다. 이는 “이 변수는 어디선가 변경될 수 있다”는 의도를 코드에 문서화하여 버그를 예방하지요.

섀도잉(Shadowing)

같은 이름을 다시 let으로 선언해 값을 “겹쳐쓰기” 하면 새로운 타입·값을 안전하게 덮어쓸 수 있습니다.

let spaces = "   ";   // &str
let spaces = spaces.len(); // 이제 spaces는 usize
println!("공백 길이 = {spaces}");

실습: 가변 변수 데모

let mut counter = 0;
counter += 1; // += 는 복합 대입 연산자
println!("counter = {counter}");

 


3-2. 데이터 타입(숫자·불리언·문자·문자열)

① 스칼라(Scalar) 타입

  • 정수-타입: i8 .. i128, u8 .. u128 – 부호·크기별 선택.
  • 부동소수: f32, f64 – 기본은 f64.
  • 불리언: booltrue/false 값.
  • 문자: char – 유니코드 스칼라 값 한 글자.

② 문자열(String) 타입

Rust에는 고정 길이 &str(문자열 슬라이스) 와 가변 길이 String(힙 할당) 두 종류가 있습니다.

let s_slice: &str = "Rust";
let mut s_owned = String::from("Rust");
s_owned.push('🦀');

③ 리터럴과 가독성

숫자 리터럴 사이에 밑줄을 넣어 1_000 -> 1000 처럼 읽기 좋게 쓸 수 있습니다.


3-3. 기본 연산자 사용법

산술 · 대입 연산자

+ - * / % 는 숫자 산술, += *= 등은 복합 대입에 쓰입니다. 부동소수 연산은 IEEE-754 규격(f32/f64)을 따릅니다.

비교 연산자

<  >  <=  >=  ==  !=

모두 bool 값을 반환하며, 문자열과 char도 사전식으로 비교됩니다.

논리 연산자

&&   ||   !

&&||는 단락(short-circuit) 평가를 지원해 왼쪽 피연산자 값으로 결과가 이미 결정되면 오른쪽을 평가하지 않습니다.

연산자 우선순위 & 괄호

수학적 우선순위 (*// > +/-)를 따르며, 헷갈릴 땐 괄호를 사용해 명확히 하세요.


3-4. 실습: 모든 개념을 합친 미니 계산기

fn main() {
    // 1) 변수·가변성
    let mut total: i32 = 0;
    // 2) 숫자·문자열·연산자 사용
    let input = "15";
    total += input.parse::().unwrap();   // 문자열 → 숫자
    total *= 2;                               // 곱셈
    // 3) 불리언 비교
    let is_even: bool = total % 2 == 0;
    println!("total = {total}, 짝수인가? {is_even}");
}

출력 결과

total = 30, 짝수인가? true

3-5. 오늘 배운 것 정리

  • Rust 변수는 기본 불변, 변경 시 let mut 사용
  • 스칼라 4종(정수·부동소수·불리언·문자) + 문자열 2종(&str/String)
  • 산술·복합 대입·비교·논리 연산자와 단락 평가

다음 4장에서는 Rust if / Rust else 조건문, Rust loop·Rust while·Rust for 반복문, 그리고 강력한 Rust match 패턴 매칭으로 코드의 묘미를 느껴보겠습니다. 고지가 코앞입니다!

반응형