RUST

김제민·2024년 12월 25일

Rust

목록 보기
1/3

Rust: 안전하고 강력한 시스템 프로그래밍 언어

Rust란 무엇인가요?

Rust는 안전성, 속도, 그리고 동시성에 중점을 둔 시스템 프로그래밍 언어입니다. C와 유사한 성능을 제공하면서도 메모리 안전성을 컴파일 단계에서 보장합니다. 2006년 Mozilla에서 시작되었으며, 현재는 커뮤니티 주도로 활발히 개발되고 있습니다.

Rust의 주요 장점

  • 메모리 안전성: 가비지 컬렉터 없이도 메모리 관련 문제를 방지합니다.
  • 고성능: 네이티브 바이너리를 생성하며, 런타임 오버헤드가 거의 없습니다.
  • 동시성: 안전한 멀티스레드 프로그래밍을 지원합니다.
  • 커뮤니티 지원: Rust는 매년 가장 사랑받는 프로그래밍 언어 중 하나로 선정되고 있습니다.

Rust의 주요 개념

1. 소유권(Ownership)

Rust의 소유권 시스템은 메모리 안전성을 보장하는 핵심입니다.

  • 소유자: 각 값은 하나의 소유자만 가질 수 있습니다.
  • 이동(Move): 소유권은 변수 대입 시 이동됩니다.
  • 대여(Borrowing): 소유권 없이 값을 참조할 수 있습니다.
    • 가변 대여: 값을 변경하려면 &mut를 사용해야 합니다.

예제:

fn main() {
    let s1 = String::from("Hello");
    let s2 = s1; // 소유권 이동

    // println!("{}", s1); // 컴파일 에러

    let s3 = s2.clone(); // 복사
    println!("{}", s3);
}

2. 라이프타임(Lifetime)

모든 참조는 유효한 생명 주기(Lifetime)를 가져야 합니다.

3. 에러 처리

Rust는 두 가지 주요 에러 처리 방식을 제공합니다:

  • Result: 복구 가능한 에러를 처리.
  • panic!: 복구 불가능한 에러를 처리.

예제:

use std::fs::File;

fn main() {
    let result = File::open("test.txt");

    match result {
        Ok(file) => println!("파일 열기 성공: {:?}", file),
        Err(e) => println!("파일 열기 실패: {}", e),
    }
}

Rust 설치 및 환경 설정

1. Rust 설치

  1. Rust 공식 설치 페이지: Rust 설치 링크
  2. 터미널에서 아래 명령 실행:
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  3. 설치 확인:
    rustc --version

2. 패키지 관리 도구: Cargo

  • 새 프로젝트 생성: cargo new my_project
  • 빌드: cargo build
  • 실행: cargo run
  • 테스트: cargo test

3. 추천 개발 환경


Rust 코드 예제

Hello, World!

fn main() {
    println!("Hello, World!");
}

소유권과 대여

fn main() {
    let s1 = String::from("Rust");
    borrow_example(&s1);
    println!("소유권은 여전히 유지됨: {}", s1);
}

fn borrow_example(s: &String) {
    println!("대여된 값: {}", s);
}

Traits (인터페이스)

trait Describe {
    fn describe(&self) -> String;
}

struct Dog;

impl Describe for Dog {
    fn describe(&self) -> String {
        String::from("I'm a Dog!")
    }
}

fn main() {
    let dog = Dog;
    println!("{}", dog.describe());
}

학습 자료

공식 문서 및 자료

강의 및 커뮤니티


결론

Rust는 안전하고 강력하며, 성능까지 잡은 언어입니다. C/C++의 대안으로 각광받는 Rust

profile
꿈꾸는 자

0개의 댓글