2021년 Stack Overflow 개발자 설문 조사에 따르면 Rust는 몇 년간 계속해서 가장 인기 있는 언어이다. 스타트업에서 대기업에 이르는 다양한 유형의 조직에서 Rust를 많이 사용하고 있다. 빌드 도구에서 웹앱 작성, 서버 작업, 임베디드 디바이스 만들기까지 그 가능성은 무궁무진하다.
Rust는 최근 사용도가 매우 높아지고 있다. (아직은 감이 안 오지만) 효율적이고 안전한 소프트웨어를 개발할 수 있는 오픈소스 시스템 프로그래밍 언어라고 한다. 메모리를 관리하기 쉽고 광범위한 애플리케이션에도 아주 적합하다고 한다.
Rust의 이점은 다음과 같다.
- Type safe: The compiler assures that no operation will be applied to a variable of a wrong type.
- Memory safe: Rust pointers (known as references) always refer to valid memory.
- Data race free: Rust's borrow checker guarantees thread-safety by ensuring that multiple parts of a program can't mutate the same value at the same time.
- Zero-cost abstractions: Rust allows the use of high-level concepts, like iteration, interfaces, and functional programming, with minimal to no performance costs. The abstractions perform as well, as if you wrote the underlying code by hand.
- Minimal runtime: Rust has a very minimal and optional runtime. The language also has no garbage collector to manage memory efficiently. In this way Rust is most similar to languages like C and C++.
- Targets bare metal: Rust can target embedded and "bare metal" programming, making it suitable to write an operating system kernel or device drivers.
즉, Rust를 광범위한 애플리케이션에 적용할 때
1. 타입 안전: 컴파일러가 잘못된 타입의 변수에 작업이 적용되지 않도록 한다.
2. 메모리 안전: Rust포인터(참조)는 항상 유효한 메모리를 참조한다.
3. 데이터 race 없음: Rust의 borrow checker는 프로그램의 여러 부분이 동시에 같은 값을 변경할 수 없도록해서 쓰레드 안전성을 보장한다.
4. 제로코스트 추상화: Rust를 사용하면 최소한의 성능 비용 또는 성능 비용 없이 반복, 인터페이스, 함수 같은 상위 수준의 개념을 사용할 수 있다. 또한 추상화는 기본 코드를 직접 작성하는 것처럼 수행된다.
5. 최소 런타임: Rust에는 매우 최소한의 선택적인 런타임이 있다. 또한 메모리를 효율적으로 관리하기 위한 garbage collector가 없다.
6. 베어 메탈 대상: Rust는 임베디드 및 “베어 메탈” 프로그래밍을 대상으로 지정하여 운영체제 커널 또는 디바이스 드라이버 작성에 적합하도록 한다. 여기서 베어 메탈이라는 것은 하드웨어 상에 어떤 소프트웨어도 설치되어 있지 않은 상태를 뜻이다. 즉, 베어메탈 서버는 가상화를 위한 하이퍼바이저 OS 없이 물리 서버를 그대로 제공하는 것을 말한다. 따라서 하드웨어에 대한 직접 제어 및 OS 설정까지 가능합니다.
이 6가지의 장점 때문에 많은 개발자들이 사용하고 있다.
---
C와 C++과 가장 유사한 언어라고 할 수 있다.
직접 개발을 해보지 않아서 아직 이론으로만 다가오지만, 분명 체감할 것이라고 한다.
'Rust' 카테고리의 다른 글
[Rust] VSCODE에서 Rust 개발 환경 구축하기(윈도우) (0) | 2022.04.13 |
---|---|
Rust 웹에서 실행하기(feat. Rust 플레이그라운드) (0) | 2022.04.12 |
[Rust] Rust의 기능과 제한 사항 (0) | 2022.04.07 |
Rust를 배워보자 (0) | 2022.03.29 |
댓글