Rust와 소유권(Ownership) 시스템
1. 러스트(Rust) 소개
메모리 안전성과 성능을 동시에 잡기 위해 설계된 시스템 프로그래밍 언어입니다. C++의 성능과 높은 안전성을 목표로 합니다.
- 특징: 소유권(Ownership) 모델, 가비지 컬렉터(GC) 없음, 무비용 추상화(Zero-cost Abstraction).
- 장점: 런타임 에러를 컴파일 타임에 잡아주어 매우 안정적인 코드를 작성할 수 있습니다.
- 활용 분야: 운영체제 핵심부, 고성능 서버 엔진, 웹어셈블리(Wasm), 블록체인.
2. 러스트 도구 설치 (rustup)
가장 권장되는 방식은 rustup을 사용하는 것입니다.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
설치 후 빌드 도구이자 패키지 매니저인 cargo 명령어를 사용할 수 있게 됩니다.
3. Hello, Rust!
fn main() {
// !가 붙은 것은 매크로를 의미합니다.
println!("Hello, Rustacean LLC!");
}
4. 핵심 개념: 소유권 (Ownership)
러스트가 GC 없이 메모리를 안전하게 관리하는 방식인 소유권의 3가지 규칙:
- 각각의 값은 해당 값의 소유자(owner) 라고 불리는 변수를 가지고 있다.
- 한 시점에 소유자는 단 하나 뿐이다.
- 소유자가 스코프(Scope)를 벗어나면, 값은 버려진다(dropped).