아마존 사이언스 블로그 소식에 의하면 기존 Javascript 코드 레이어로 구성한 Prime Video 서비스를 Rust, WebAssembly로 전환하여 안정성과 속도를 향상했다고 한다.1
또한, theregister.com의 기사에 의하면 마이크로소프트는 Windows커널을 Rust로 작성하고 있다고 한다. Microsoft is rewriting core Windows libraries in the Rust programming language, and the more memory-safe code is already reaching developers.2
이처럼 Rust는 차세대 시스템 프로그래밍 언어로 위치를 굳건히 다져가고 있다. 위의 이미지는 Rust를 학습하는 데 필요한 추천 서적을 소개한 것이다.
동영상 강좌로는 유튜브에 연재 중인 ‘mithradates, Easy Rust Korean / Rust in a Month of Lunches 한국어판‘을 추천한다. rust는 ‘소유권(ownership)’과 같은 기존 프로그램언어에서 쉽게 볼 수 없는 개념이 존재한다. 이 때문에 학습하는 데 어렵게 느껴질 수 있는데 위의 서적 2권은 이 점을 고려해 효율적으로 rust를 배울 수 있는 콘셉트로 만들어졌다.
서적 간략 소개
- 쿠지라 히코우즈쿠에, 만들면서 배우는 러스트 프로그래밍, 양현, 위키북스, 2023
- 구매링크 : 알라딘
- 책소개 : 러스트 코드와 파이썬 코드를 비교하면서도 효율적으로 러스트를 배울 수 있는 콘셉트로 만들어졌다. 다양한 소스 코드를 수록해 러스트를 조금 더 쉽게 배울 수 있도록 했으며, 독자가 파이썬을 알고 있다고 가정하므로 중복 설명이나 불필요한 예제를 생략해 러스트의 매력에 더 집중할 수 있게 했다. 또한 러스트를 배움으로써 파이썬의 장점을 재발견하고, 파이썬이 뒤에서 어떻게 작동하는지 이해하는 데에도 큰 도움이 될 것이다.
- 짐 블랜디,제이슨 오렌도프,리어노라 틴달, 프로그래밍 러스트, 조성만, 제이펍, 2023
- 구매링크 : 알라딘
- 책소개 : 러스트 프로그래밍 공식 가이드보다 더 친절하게, 한층 더 고급 기능까지 다룬다. 이 책은 메모리 안전성과 신뢰할 만한 동시성에 예측 가능한 성능을 더한 러스트의 기능이 어떤 식으로 메모리 소모량과 프로세서 사용량의 제어권을 프로그래머에게 제공하는지 보여 준다. 경험이 많은 시스템 프로그래머라면 이 실용적인 가이드를 통해서 러스트로 성능과 안전성 사이의 간극을 성공적으로 메우는 법을 배울 수 있을 것이다.
OutputDebugString 예제
Windows 프로그래밍에서 DebugView++에 문자열을 보낼 때 Win32 API OutputDebugString 함수를 사용하는 데 이를 rust에서 사용하는 예제이다.
// [dependencies]
// winsafe = { version = "0.0.18", features = ["shell"] }
#[cfg(debug_assertions)]
use winsafe::OutputDebugString;
fn main() {
let mut a = 1;
let mut b = 1;
println!("{:>8}", a);
println!("{:>8}", b);
for _ in 0..30 {
println!("{:>8}", a + b);
let tmp = a;
a = b;
b = tmp + b;
#[cfg(debug_assertions)]
{
let debug = format!("Debug : {:>8} : {:>8}", a.to_string(), b.to_string());
OutputDebugString(&debug);
}
}
}