Learning
토픽 134 / 192·프로그래밍 패러다임

Rust / 메모리 안전 언어 (Memory-Safe Language)

Rust / 메모리 안전 언어 (Memory-Safe Language)

컴파일 타임에 메모리 안전성을 보장하는 시스템 프로그래밍 언어 및 패러다임, GC 없이 안전한 메모리 관리 실현

특징: 소유권 시스템(Ownership), 빌림 검사(Borrow Checker), 제로 코스트 추상화, GC 없음, NSA/CISA 메모리 안전 언어 권고(2022)

동작원리

  • 소유권 이전(Move): 값은 하나의 소유자만 보유, 대입 시 소유권 이전, 이전 변수 사용 불가
  • 빌림(Borrow): 불변 빌림(&, 다수 허용) / 가변 빌림(&mut, 단일만 허용), 동시 가변·불변 빌림 금지
  • 수명(Lifetime): 참조의 유효 범위를 명시, 댕글링 포인터 방지, 컴파일러 자동 추론
  • 컴파일 타임 검증: 런타임 오버헤드 없이 메모리 버그(UAF, 이중 해제, 버퍼 오버플로) 원천 차단

Rust 핵심 개념: Trait(인터페이스), Enum+패턴매칭, Result/Option(에러 처리), async/await, unsafe 블록(제한적 허용)

적용 분야: OS 커널(Linux 6.1+), 브라우저(Firefox/Servo), 클라우드(AWS Firecracker), 임베디드, WebAssembly

비교

연관: 시스템 프로그래밍, 메모리 안전, WebAssembly, 프로그래밍 패러다임, 보안