IMCAT.DEV
로그인 가입
Rust 입문 문법

Rust 기본 문법

Rust 기본 문법 — 초급

Rust 기본 문법

1. 도입 (왜 배워야 하는가)

Rust는 메모리 안전성과 성능을 동시에 제공하는 현대적인 시스템 프로그래밍 언어입니다. 특히, 안전하고 효율적인 소프트웨어를 개발하는 데 강력한 도구가 됩니다. Rust의 기본 문법을 이해하지 못하면, 코드 작성 시 오류가 발생하거나 효율성이 떨어지는 문제를 겪을 수 있습니다. 예를 들어, 메모리 관리가 필요한 상황에서 Rust의 소유권(ownership) 개념을 이해하지 못하면 불필요한 메모리 누수나 데이터 경합(race condition) 문제를 일으킬 수 있습니다. 따라서 기본 문법을 확실히 익히는 것이 매우 중요합니다.

2. 핵심 개념 설명

Rust의 기본 문법을 이해하기 위해 알아야 할 핵심 개념은 다음과 같습니다.

개념설명
변수(Variables)값을 저장하는 메모리 공간. immutable과 mutable로 나눌 수 있음.
데이터 타입(Data Types)값의 종류를 정의. 기본 데이터 타입으로는 정수, 부동소수점, 불리언, 문자열 등이 있음.
제어 구조(Control Structures)조건문(if, match)과 반복문(for, while) 등 흐름 제어를 담당.

이 개념들은 마치 요리의 기본 재료와 레시피입니다. 요리를 잘 하려면 재료의 성질과 조리 방법을 알아야 하듯이, 프로그래밍에서도 기본 문법을 잘 이해해야 합니다.

3. 기본 코드 예제

아래는 Rust에서 변수와 데이터 타입을 사용하는 기본 예제입니다.

fn main() {
    let x: i32 = 5; // 정수형 변수 x를 선언하고 5로 초기화
    let y: f64 = 3.14; // 부동소수점형 변수 y를 선언하고 3.14로 초기화
    let is_active: bool = true; // 불리언형 변수 is_active를 선언하고 true로 초기화
    let greeting: &str = "안녕하세요"; // 문자열형 변수 greeting을 선언하고 초기화

    println!("x: {}, y: {}, is_active: {}, greeting: {}", x, y, is_active, greeting);
}

실행 결과

x: 5, y: 3.14, is_active: true, greeting: 안녕하세요

코드 한 줄씩 동작 설명

  1. fn main() { - 프로그램의 진입점인 메인 함수를 정의합니다.
  2. let x: i32 = 5; - 32비트 정수형 변수 x를 선언하고 5로 초기화합니다.
  3. let y: f64 = 3.14; - 64비트 부동소수점형 변수 y를 선언하고 3.14로 초기화합니다.
  4. let is_active: bool = true; - 불리언형 변수 is_active를 선언하고 true로 초기화합니다.
  5. let greeting: &str = "안녕하세요"; - 문자열형 변수 greeting을 선언하고 초기화합니다.
  6. println!(...) - 변수들의 값을 콘솔에 출력합니다.
  7. 4. 실전 활용 예제

  8. 쇼핑몰에서 장바구니를 구현할 때: 사용자가 선택한 상품을 저장하기 위해 변수를 사용합니다.
  9.    let cart_items: [&str; 3] = ["사과", "바나나", "오렌지"];
       println!("장바구니에 담긴 상품: {:?}", cart_items);
  10. 간단한 계산기 기능 구현: 사용자로부터 입력받은 두 수를 더하는 프로그램을 작성할 수 있습니다.
  11.    use std::io;
    
       fn main() {
           let mut input = String::new();
           println!("두 숫자를 입력하세요: ");
           io::stdin().read_line(&mut input).expect("Failed to read line");
           let numbers: Vec<i32> = input.trim().split_whitespace()
               .map(|s| s.parse().unwrap())
               .collect();
           let sum = numbers[0] + numbers[1];
           println!("두 숫자의 합: {}", sum);
       }

    5. 흔한 실수와 주의사항

  12. 변수의 스코프(Scope) 이해 부족:
  13. - 잘못된 코드:

         {
             let x = 5;
         }
         println!("{}", x); // 오류 발생: x는 스코프 밖에 존재하지 않음

    - 올바른 코드:

         let x = 5;
         {
             println!("{}", x); // x는 이 스코프 내에 존재함
         }
  14. 데이터 타입 불일치:
  15. - 잘못된 코드:

         let x: i32 = "5"; // 오류 발생: i32와 문자열 타입이 다름

    - 올바른 코드:

         let x: i32 = "5".parse().unwrap(); // 문자열을 정수로 변환

    6. 정리

    • Rust의 기본 문법은 변수, 데이터 타입, 제어 구조 등으로 구성됩니다.
    • Rust는 메모리 안전성을 제공하므로, 기본 문법을 잘 이해하면 안전하고 효율적인 코드를 작성할 수 있습니다.
    • 다음에 학습하면 좋은 주제는 소유권(Ownership), 구조체(Structs), 열거형(Enums)입니다.