반응형

Rust 언어 소개

1. Rust 소개

  • Rust는 시스템 프로그래밍 언어로, 메모리 안전성을 보장하면서도 성능이 뛰어난 언어입니다. 주요 특징은 다음과 같습니다.
    • 메모리 안전성: 소유권 시스템(Ownership)과 빌림(Borrowing) 메커니즘을 사용하여 메모리 오류 방지
    • 고성능: C, C++과 비슷한 성능을 제공
    • 병렬성: 안전한 스레드 동기화 지원

2. Rust 설치

Rust는 공식 설치 도구인 rustup을 통해 설치할 수 있습니다.


설치 명령어

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

설치 후, Rust 버전을 확인하려면 다음 명령어를 사용합니다.

rustc --version

3. Rust의 기본 문법

3.1 Hello, World!

Rust 프로그램의 기본 구조는 다음과 같습니다.

fn main() {
    println!("Hello, world!");
}
  • fn main(): 프로그램의 진입점
  • println!(): 매크로를 사용하여 문자열 출력

3.2 변수와 상수

Rust에서 변수는 기본적으로 변경 가능 여부에 따라 letconst로 선언됩니다.

let mut x = 5;  // 변경 가능 변수
x = 10;

const MAX_POINTS: u32 = 100_000;  // 변경 불가능한 상수

3.3 데이터 타입

Rust는 정적 타입 언어로, 변수 선언 시 타입을 지정할 수 있습니다.

let int_num: i32 = -10;
let float_num: f64 = 3.14;
let is_active: bool = true;
let letter: char = 'A';

3.4 제어문

조건문

let number = 10;
if number > 5 {
    println!("큰 숫자입니다.");
} else {
    println!("작은 숫자입니다.");
}

반복문

for i in 0..5 {
    println!("반복: {}", i);
}

4. 함수와 소유권

4.1 함수 정의

fn add(a: i32, b: i32) -> i32 {
    a + b  // 마지막 표현식의 결과가 반환됨
}

4.2 소유권과 빌림

  • Rust의 주요 개념인 소유권(Ownership)과 빌림(Borrowing)은 메모리 안정성을 보장합니다.

소유권 이동

fn main() {
    let s = String::from("hello");
    take_ownership(s);
    // s는 여기서 사용할 수 없음
}

fn take_ownership(some_string: String) {
    println!("{}", some_string);
}

참조(&)를 통한 빌림

fn main() {
    let s = String::from("hello");
    print_string(&s);
    println!("{}", s); // s는 여전히 사용 가능
}

fn print_string(some_string: &String) {
    println!("{}", some_string);
}

5. 구조체와 열거형

5.1 구조체

struct User {
    name: String,
    age: u32,
}

fn main() {
    let user1 = User {
        name: String::from("Alice"),
        age: 30,
    };
    println!("사용자: {} ({}세)", user1.name, user1.age);
}

5.2 열거형

enum Direction {
    Up,
    Down,
    Left,
    Right,
}

fn main() {
    let dir = Direction::Up;
    match dir {
        Direction::Up => println!("위로 이동"),
        Direction::Down => println!("아래로 이동"),
        Direction::Left => println!("왼쪽으로 이동"),
        Direction::Right => println!("오른쪽으로 이동"),
    }
}

6. 정리

Rust는 강력한 메모리 관리 기능과 높은 성능을 제공하는 언어로, 시스템 프로그래밍, 웹 개발, 임베디드 프로그래밍 등 다양한 분야에서 활용됩니다. 기본 문법과 개념을 익히면 더욱 깊이 있는 활용이 가능합니다.

728x90
반응형

+ Recent posts