본문 바로가기
Rust

Rust 프로그래밍 언어 소개

by KK1 2024. 1. 6.

게임 Rust 아닙니다!!!

 

Rust는 Mozila 재단에서 시작, 현재는 Rust 재단에서 개발 및 배포를 담당하고 있는 언어입니다.

리눅스 커널에서 사용할 수 있는 2번째 언어 (첫번째는 C)

Google은 Android OS내 Rust 도입, 보안 취약점 해결한 사례가 있고

MS에서도 제품내 일부 코드를 Rust로 대체 중이라고 합니다.

 

이처럼 글로벌 IT 대기업에서도 이제는 활용하기 시작중인 언어이고

 

Rust만의 특징으로는 다음과 같습니다.

 

표현식 기반 언어

메모리 소유권과 참조

열거형과 패턴 매칭

제네릭, 트레이트, 라이프타임

쉽고 고성능 동시성 프로그래밍

 

과 같은 특징을 가지고 있어서 인기를 끌고 있습니다.

 

Modern C++ 사용자라면 어느정도 쉽게 이해되는 부분들도 있지만, Python, JavaScript 등 스크립트 기반 언어 사용자들에겐 생소한 부분이 있을 수 있는 언어이지만 여러가지로 강력한 언어입니다.

 

주요 핵심인 메모리 소유권!

fn main() {
    let s1 = String::from("hello");
    let s2 = s1;  // s1의 문자열 소유권은 s2로 이동
}

s1에서 문자열을 생성하고 s1은 hello라는 문자열의 시작 주소 포인터를 가지고 있다고 보면 됩니다.

그걸 s2에 대입하게되면 이동(move) 연산이 동작하여 s1은 더이상 hello 문자열을 가지고 있지 않게 됩니다.

 

이때 s1을 그 아래 코드에서 출력하려고하면 소유권을 잃었다는 컴파일 에러가 발생합니다.

메모리 소유권에 의해 컴파일 타임에 이 부분에 이상이 있다면 컴파일 에러를 내다보니 사람이 실수 할 수 있는 부분을 프로그래밍 언어에서 막아주게됩니다.

 

이러한 강점이 바로 Rust의 안정성의 핵심이 됩니다.

 

점점 많은 분야에서 Rust를 활용하려고 하고 있고 앞으로가 기대되는 언어입니다.

반응형

'Rust' 카테고리의 다른 글

JetBrains 오픈소스 Rust 플러그인  (0) 2023.07.15

댓글