개발자가 가장 배우고 싶은 언어 Rust 배우기 - Rust란?

프로필 사진mingke

Rust Logo

목차

인트로

개발을 처음 시작했을 때 하루하루 배우고 알아가는게 너무 즐거웠습니다. 작고 간단한 것이라도 만들었을 때 큰 성취감이 들었는데요. 요즘 뭔가 그때의 열정을 잃어버린 듯한 기분이 들었습니다. 그래서 뇌에 뭔가 새로운 자극을 주기 위해 고민을 하다가, 2024년에 개발자들이 가장 배우고 싶은 언어 Rust를 한 번 배워봐야겠다 생각했습니다. Hello World까지하고 느낀점은 ‘뇌에 자극을 주기 참 좋은 선택이다’. Rust 진도를 더 나가기 전에 Rust에 대해서 간략히 정리해보고 가려고 합니다.

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

Rust란

Rust는 성능, 안전성, 그리고 병렬 처리를 중점으로 하는 프로그래밍 언어입니다. 특히 메모리 안전성과 쓰레드 안전성에 중점으로 개발되었습니다. Mozilla Research에서 개발되었으며 최초 개발 시작은 2006년이라고 합니다. 1.0 버젼은 2015년 5월에 릴리즈 되었습니다. 2024년 2월 5일 기준 1.75.0 입니다. 앞서 언급했듯, 스택오버플로우 서베이에 따르면 요즘 개발자들이 가장 배우고 싶어하는 언어입니다.

Rust 장점

  • 메모리 안정성: Rust는 컴파일 시점에 메모리 안전성을 검증합니다.소유권(ownership)과 차용(borrowing) 시스템을 통해 이루어집니다. Python개발자에게 굉장히 생소한 개념이기에 흥미를 아주 자극하는 것 같습니다.
    • 한 번에 하나의 mutable reference만 허용해서 race condition을 방지합니다. 이 개념은 rust문서에도 Hello World 바로 다음에 나오는 것보니 아주 중요한 개념 같습니다.
  • 교차플랫폼: Rust컴파일러는 OS에 관계없이 지원되고, 아키텍쳐도 x86, ARM 등 여러 아키텍쳐에서 모두 지원됩니다.
  • 병렬 처리와 동시성: 소유권 덕분에 병렬 프로그래밍 시 안전성을 제공합니다. Rust는 컴파일 시점에 데이터 경쟁이나 다른 병렬 처리 에러를 탐지할 수 있어, 멀티스레딩 프로그래밍이 더 안전하고 쉬워집니다.
  • 성능: C++ 과 비슷한 수준의 높은 성능을 제공합니다. Python과 다르게 저수준 프로그래밍 언어이기 때문에 속도가 매우 빠릅니다.

Rust 단점

  • 진입장벽과 러닝커브: 저수준의 언어들이 그러하듯 다소 직관적이지 않고 어렵고 생소한 개념때문에 진입하기 어렵고, 하더라도 배우는데 오래걸립니다. k8s배울때가 생각네요.
  • 제한적인 생태계: 파이썬에 비하면 라이브러리 지원이 한 참 부족합니다. 개발자들이 가장 배우고 싶어하는 언어이고 성장하고 있기 때문에 시간이 지나면서 해결될 것으로 보여집니다.
  • 컴파일 속도: Rust 컴파일러는 성능 최적화와 안전성 검사를 위해 상대적으로 컴파일 속도가 느립니다. 저의 컴퓨터 문제일 수 있는데 처음 hello world 실행에 20초가 걸렸다???

Rust를 배워서 하고 싶은 것

FastAPI를 많이 쓰는 개발자로서 Pydantic과도 친숙해졌는데요. Pydantic은 Rust로 개발된 라이브러리입니다. FastAPI는 최근에 Ruff로 linter를 변경했는데요. 이 또한 Rust로 개발된 라이브러리입니다. Rust를 배워서 해보고 싶은건 Rust로 간단하더라도 유용한 Python라이브러리를 만들어 보는 것입니다. 그리고 CLI도 만들어 보려고 합니다.

참고

Loading...
Loading...
Loading...
Loading...