Rust (프로그래밍 언어)

IT 위키
인공무능 (토론 | 기여)님의 2025년 6월 15일 (일) 06:52 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

러스트(Rust)는 모질라 재단이 2010년에 개발을 시작한 시스템 프로그래밍 언어로, 메모리 안전성과 성능, 병행성(concurrency)을 중점으로 설계된 언어이다.

개요

러스트는 메모리 안전성을 보장하기 위해 소유권(ownership)과 대출(borrowing) 시스템을 채택하고 있으며, 이로 인해 런타임 검사 없이 안전한 메모리 관리를 수행할 수 있다. 또한 병렬 처리 환경에서 경합 데이터(race condition)를 컴파일 시점에 방지할 수 있는 특징이 있다.

특징

  • 메모리 안전성 : 컴파일러가 소유권과 대출 규칙을 검사하여 널 포인터, 댕글링 포인터, 데이터 레이스 등을 사전에 방지
  • 제로 비용 추상화(Zero-cost Abstraction) : 고수준 언어 기능이 런타임 오버헤드 없이 C 수준의 성능 제공
  • 병행성 지원 : 스레드 간 안전한 데이터 공유 보장
  • 패키지 매니저 : Cargo라는 빌드 도구와 패키지 관리자를 기본 제공
  • 크로스 플랫폼 : Windows, macOS, Linux 뿐 아니라 WASM(WebAssembly), 임베디드 타겟도 지원

역사

  • 2010년: Graydon Hoare가 프로젝트 시작
  • 2015년: 러스트 1.0 안정 버전 배포
  • 매년 이뤄지는 정기 릴리스와 커뮤니티 주도로 새로운 기능 추가

장단점

장점

  • 안정성과 성능이 동시에 뛰어남
  • 병렬 처리 관련 버그를 안전하게 방지
  • 풍부한 생태계와 활발한 커뮤니티

단점

  • 학습 곡선이 가파름 (특히 소유권·대출 시스템)
  • 초반 개발 속도가 느릴 수 있음
  • 일부 영역은 아직 C++ 등 기존 언어 생태계에 비해 라이브러리가 부족할 수 있음

활용 분야

  • 시스템/임베디드 프로그래밍
  • 웹 서버 백엔드 (예: Actix, Rocket 프레임워크)
  • CLI 도구 개발
  • WebAssembly 기반 웹 애플리케이션
  • 블록체인, 네트워크 서비스, 데이터베이스

주요 생태계

  • Cargo – 공식 빌드 도구 및 패키지 매니저
  • Crates.io – 러스트 패키지 저장소
  • Rustup – 버전 관리 도구
  • Rust Analyzer, rls – 언어 서버 및 개발 도구

컴파일러

  • rustc – 기본 컴파일러, LLVM 기반
  • mrustc – 러스트 전용 컴파일러 대체 구현

같이 보기

참고 문헌

  • Hoare, G., Rust 언어 설계 문서 (2012–2015)
  • The Rust Programming Language. Steve Klabnik & Carol Nichols, No Starch Press
  • Rust 공식 문서 및 RFC

각주