본문 바로가기

좋아하는것_부자되는매직TV

Rust 란 무엇인가? 첫공부!

반응형

 

Rust 란 무엇인가?

Rust는 현대적이고 안전한 시스템 프로그래밍 언어로, 메모리 안전성과 병행성을 강조하는 특징을 가지고 있다고 하네요.
Mozilla에서 개발된 이 언어는 C나 C++과 같은 저수준 언어의 성능을 유지하면서도 메모리 안전성과 스레드 안전성을 보장한다고 하고요.

홈페이지는 아래와 같습니다.

Rust Programming Language (rust-lang.org)

이러한 Rust의 특징은 시스템 프로그래밍, 웹 개발, 임베디드 시스템 등 다양한 분야에서 널리 사용되고 있다고 하니 개발자로써 한번 써봐야겠죠? 

 

Rust Programming Language

A language empowering everyone to build reliable and efficient software.

www.rust-lang.org

Rust 의 특징 정리


안전성

Rust는 메모리 안전성을 보장하는데, 이는 프로그램이 잘못된 메모리 접근으로 인한 버그를 방지합니다.
또한, Rust 컴파일러는 컴파일 시간에 다양한 에러를 검출하여 개발자가 이를 미리 수정할 수 있도록 돕습니다.

생산성

뛰어난 에러 메시지와 간결한 문법을 통해 Rust는 생산성을 향상시킵니다.
Rust 컴파일러는 친절한 에러 메시지를 제공하여 개발자가 빠르게 오류를 해결할 수 있도록 돕습니다.
또한, 강력한 타입 추론 시스템을 통해 코드를 더욱 간결하게 작성할 수 있습니다.

생태계


Rust는 활발한 개발자 커뮤니티를 가지고 있습니다.
Crate라 불리는 패키지 레지스트리를 통해 다양한 라이브러리를 사용할 수 있으며, 이는 개발 생산성을 높여줍니다.
또한, Rust의 범용성은 다양한 분야에서 사용될 수 있음을 보여줍니다.

다시말해서 Rust Crate는 Rust 언어에서 사용되는 라이브러리 또는 패키지를 가리킵니다.
이러한 Crate들은 Rust 커뮤니티에 의해 만들어지며, 다양한 기능을 제공합니다.
이것들은 크게 두 가지 범주로 나뉩니다

표준 라이브러리 (std) 크레이트와 외부 크레이트.

표준 라이브러리 크레이트는 Rust 프로그래밍 언어의 기본 기능을 제공하며, 외부 크레이트는 개발자들이 Rust로 다양한 프로젝트를 빌드할 때 사용할 수 있는 다양한 기능을 제공합니다.

Rust의 크레이트는 crates.io라는 공식 저장소에서 찾을 수 있습니다. 거기에서는 수천 개의 크레이트가 제공되며, 이는 Rust 생태계의 풍부함을 보여줍니다.

https://crates.io/

 

crates.io: Rust Package Registry

 

crates.io

병행성

Rust는 안전하고 효율적인 병행 프로그래밍을 지원한다고 하는데요
소유권 시스템과 함께 사용되는 스레드 안전성을 보장하는 기능들은 멀티스레드 환경에서 안전하게 프로그램을 작성할 수 있도록 돕는다고 하네요.

또한, Rust의 '고양이의 발자국'(?) 철학을 따라, 데이터 경합 문제를 사전에 방지하여 병행성을 쉽게 다룰 수 있습니다. 
참고로, 고양이의 발자국 철학은 Rust 커뮤니티에서 사용되는 개념인데요.
동시성 프로그래밍에 대한 접근 방식을 설명합니다.
이 철학은 "Rust의 소유권 시스템과 타입 시스템은 고양이의 발자국처럼 작동해야 한다"라는 의미를 담고 있다고 하네요.

고양이 발자국

고양이의 발자국은 다음과 같은 특징을 갖습니다:


쉬운 이동성(Easy Mobility)
고양이는 유연하고 민첩하게 움직일 수 있습니다.
마찬가지로, Rust 코드도 데이터를 쉽게 이동하고 복사할 수 있어야 합니다.
Rust의 소유권 시스템은 데이터의 이동성을 강조하며, 이를 통해 불필요한 복사와 메모리 누수를 방지합니다.

데이터 경합 회피(Avoidance of Data Races)
고양이는 다른 고양이나 개와 격렬한 경합을 피합니다.
Rust도 다중 스레드 환경에서 데이터 경합을 피하기 위해 안전한 병행성을 지원합니다.
이를 통해 Rust 코드는 안전하게 다중 스레드 환경에서 실행될 수 있습니다.

자원 보호(Protection of Resources)
고양이는 자신의 영역을 지키고 보호합니다.
마찬가지로, Rust는 소유권 시스템을 통해 메모리 및 자원에 대한 접근을 제어하고 보호합니다.
이를 통해 런타임 에러와 메모리 누수를 방지하며 안전한 프로그래밍 환경을 제공합니다.

다시말해서 고양이의 발자국 철학은 Rust의 핵심 원칙 중 하나로, 안전하고 효율적인 병행 프로그래밍을 위한 기반을 제공합니다.
Rust 코드가 고양이처럼 유연하고 안전하게 동작할 수 있도록 설계되어 있다고 하네요.

 

Rust Linux에서 설치하기 

$ curl https://sh.rustup.rs -sSf | sh

기본으로 설치해본다. (1번선택)

위와 같이 Rust is installed now. Great! 가 나오면 정상 설치된것임

아래와 같이 설치버전을 확인해 볼 수 있습니다.

$ rustc --version

그럼, hello world 를 찍어볼까요?

fn main() {
 println!("Hello world!");
}

컴파일은 아래와 같이 하면된다.

$ rustc ./hello_world.rs

Rust에 대한 간단한 내용이였고요..
시작이 반이다라는 말을 항상 떠올리며, rust 에 익숙해질 때까지 달려야(?) 겠습니다.

맺음말

Rust는 안전성, 병행성, 생산성 등의 면에서 우수한 프로그래밍 언어라고 하고요.
현대적인 소프트웨어 시스템을 개발하고자 하는 개발자들에게 매우 유용한 도구라고 하니 저도 한번 사용해 보려고 합니다. 
아직은 생소한 문법과 낮설음이 있지만요..^^;

300x250