C/C++처럼 빠르면서도, 메모리 관련 버그를 컴파일 단계에서 막아주는 언어가 있다면? 그게 바로 러스트(Rust)입니다. 개발자들이 "가장 사랑하는 언어" 설문에서 해마다 1위를 차지하는 데는 이유가 있습니다.

소유권이라는 독특한 개념

러스트의 핵심은 소유권(ownership)입니다. 가비지 컬렉터 없이도 메모리를 안전하게 관리하기 위해, 어떤 값을 누가 소유하고 언제 해제되는지를 컴파일러가 엄격히 추적합니다. 덕분에 흔한 메모리 오류(널 포인터, 데이터 경쟁)가 원천 차단됩니다.

첫 코드

fn main() {
    let name = String::from("Rust");
    greet(&name);            // 빌려주기(참조)
    println!("{name} 계속 사용 가능"); // 소유권을 안 넘겼으니 OK
}

fn greet(s: &String) {
    println!("{s} 세계에 오신 걸 환영합니다!");
}

누가 배우면 좋은가

  • 운영체제, 게임 엔진, 임베디드처럼 성능이 절대적인 분야.
  • 웹어셈블리(WASM)로 브라우저에서 고성능 코드를 돌리고 싶을 때.
  • C/C++의 성능은 원하지만 그 위험성은 피하고 싶은 사람.

배우는 난이도는 솔직히 높습니다. 컴파일러가 까다롭게 거절하는 경험을 많이 하게 되지만, 그 과정을 통과하면 "한 번 컴파일되면 잘 돌아간다"는 신뢰를 얻습니다. 미래를 보고 투자할 가치가 충분한 언어입니다.

왜 어렵지만 배울 가치가 있나

러스트의 학습 곡선이 가파른 건 사실입니다. 소유권·빌림·수명(lifetime) 개념이 처음엔 낯설고, 컴파일러가 깐깐하게 거절하는 경험을 많이 하게 됩니다. 하지만 그 과정을 통과하면 '컴파일만 되면 런타임에 잘 돌아간다'는 강한 신뢰를 얻습니다. 메모리 버그로 새벽에 깨는 일이 줄어드는 셈이죠.

어디서 시작할까

공식 문서인 'The Rust Programming Book'이 잘 만들어져 있어 입문 교재로 충분합니다. 작은 CLI 도구를 하나 만들어 보며 소유권 개념을 몸으로 익히는 것을 추천합니다. 웹 백엔드라면 Axum, 시스템 도구라면 표준 라이브러리만으로도 많은 것을 할 수 있습니다. 급하게 마스터하려 하지 말고, 컴파일러와 대화한다는 마음으로 천천히 가면 됩니다.