개요
Rust는 메모리 안전성과 C/C++ 수준 성능을 동시에 달성하는 시스템 프로그래밍 언어입니다. 가비지 컬렉터 없이 소유권(Ownership) 시스템으로 메모리를 관리하며, zero-cost abstractions을 통해 추상화 비용 없이 안전한 코드를 작성할 수 있습니다.
- 출시: 2015년 (1.0), Mozilla Research에서 시작 → 2021년 Rust Foundation 독립
- 설계자: Graydon Hoare
- 패러다임: 시스템, 함수형, 명령형
- 라이선스: MIT / Apache 2.0
- 웹사이트: https://rust-lang.org
- 패키지 레지스트리: https://crates.io (15만+ 크레이트)
핵심 개념
소유권 시스템 (Ownership)
Rust의 가장 독특한 특징. 컴파일 타임에 메모리 안전성을 보장:
| 규칙 | 설명 |
|---|---|
| 소유권 | 각 값은 하나의 소유자(owner)만 가짐 |
| 빌림(Borrowing) | &로 참조 대여, 동시에 여러 불변 참조 또는 하나의 가변 참조 |
| 생명주기(Lifetime) | 참조의 유효 범위를 컴파일러가 추적 |
| RAII | 스코프 벗어나면 자동 해제 (free/delete 불필요) |
- GC 없이도 메모리 누수, use-after-free, 데이터 레이스 방지
- 컴파일 타임 검증 → 런타임 오버헤드 제로
Zero-Cost Abstractions
- 제네릭, 이터레이터, 클로저 등 고수준 추상화를 사용해도 수작업 최적화와 동일한 성능
- “사용하지 않는 것에 대해 비용을 지불하지 않는다”
핵심 도구
| 도구 | 설명 |
|---|---|
| cargo | 빌드 시스템 + 패키지 매니저 (올인원) |
| rustc | 컴파일러 (LLVM 백엔드) |
| rustfmt | 코드 포맷터 |
| clippy | 린터 (관용적 Rust 코드 가이드) |
| rustup | 툴체인 관리자 |
# 프로젝트 생성 및 빌드
cargo new my_project
cargo build --release
cargo test
cargo runRust로 작성된 주요 프로젝트
| 프로젝트 | 설명 |
|---|---|
| sudo-rs | sudo/su의 Rust 재구현 (메모리 안전) |
| ripgrep (rg) | 초고속 텍스트 검색 |
| bat | cat 대체 (구문 강조) |
| fd | find 대체 |
| Deno | JavaScript/TypeScript 런타임 |
| SWC | 초고속 JS/TS 컴파일러 |
| Servo | 웹 브라우저 엔진 |
| rvLLM | LLM 추론 엔진 |
| Linux 커널 | 커널 드라이버 일부 Rust 도입 |
채택 확대 (2026)
- Linux 커널: Rust for Linux 공식 지원 (커널 모듈 개발 가능)
- Microsoft: Windows 커널 구성 요소 Rust 전환 추진
- Google: Android 플랫폼 코드에 Rust 적극 도입
- AWS: 인프라 도구 Rust 기반 개발 (Firecracker, Bottlerocket)
- CLI 도구: 기존 C/C++ 유틸리티의 Rust 재작성 트렌드
장단점
장점:
- 메모리 안전 + C/C++ 수준 성능
- 풍부한 타입 시스템 (
enum,Result,Option) - Cargo 생태계 (의존성 관리, 테스트, 문서 통합)
- 크로스 컴파일 지원 (WASM 포함)
- “가장 사랑받는 언어” (Stack Overflow 설문 연속 1위)
단점:
- 가파른 학습 곡선 (소유권, 라이프타임 개념)
- 컴파일 시간이 긴 편
- C/C++ 대비 작은 생태계
- 빠른 프로토타이핑에는 부적합
관련 항목
- 프로그래밍 언어 비교
- Go — 시스템 언어 대안
- Deno — Rust로 작성된 JS 런타임
- 패키지 매니저 비교
- DevOps