Rust (프로그래밍 언어)
IT 위키
러스트(Rust)는 모질라 재단이 2010년에 개발을 시작한 시스템 프로그래밍 언어로, 메모리 안전성과 성능, 병행성(concurrency)을 중점으로 설계된 언어이다.
1 개요[편집 | 원본 편집]
러스트는 메모리 안전성을 보장하기 위해 소유권(ownership)과 대출(borrowing) 시스템을 채택하고 있으며, 이로 인해 런타임 검사 없이 안전한 메모리 관리를 수행할 수 있다. 또한 병렬 처리 환경에서 경합 데이터(race condition)를 컴파일 시점에 방지할 수 있는 특징이 있다.
2 특징[편집 | 원본 편집]
- 메모리 안전성 : 컴파일러가 소유권과 대출 규칙을 검사하여 널 포인터, 댕글링 포인터, 데이터 레이스 등을 사전에 방지
- 제로 비용 추상화(Zero-cost Abstraction) : 고수준 언어 기능이 런타임 오버헤드 없이 C 수준의 성능 제공
- 병행성 지원 : 스레드 간 안전한 데이터 공유 보장
- 패키지 매니저 : Cargo라는 빌드 도구와 패키지 관리자를 기본 제공
- 크로스 플랫폼 : Windows, macOS, Linux 뿐 아니라 WASM(WebAssembly), 임베디드 타겟도 지원
3 역사[편집 | 원본 편집]
- 2010년: Graydon Hoare가 프로젝트 시작
- 2015년: 러스트 1.0 안정 버전 배포
- 매년 이뤄지는 정기 릴리스와 커뮤니티 주도로 새로운 기능 추가
4 장단점[편집 | 원본 편집]
4.1 장점[편집 | 원본 편집]
- 안정성과 성능이 동시에 뛰어남
- 병렬 처리 관련 버그를 안전하게 방지
- 풍부한 생태계와 활발한 커뮤니티
4.2 단점[편집 | 원본 편집]
- 학습 곡선이 가파름 (특히 소유권·대출 시스템)
- 초반 개발 속도가 느릴 수 있음
- 일부 영역은 아직 C++ 등 기존 언어 생태계에 비해 라이브러리가 부족할 수 있음
5 활용 분야[편집 | 원본 편집]
- 시스템/임베디드 프로그래밍
- 웹 서버 백엔드 (예: Actix, Rocket 프레임워크)
- CLI 도구 개발
- WebAssembly 기반 웹 애플리케이션
- 블록체인, 네트워크 서비스, 데이터베이스
6 주요 생태계[편집 | 원본 편집]
- Cargo – 공식 빌드 도구 및 패키지 매니저
- Crates.io – 러스트 패키지 저장소
- Rustup – 버전 관리 도구
- Rust Analyzer, rls – 언어 서버 및 개발 도구
7 컴파일러[편집 | 원본 편집]
- rustc – 기본 컴파일러, LLVM 기반
- mrustc – 러스트 전용 컴파일러 대체 구현
8 같이 보기[편집 | 원본 편집]
9 참고 문헌[편집 | 원본 편집]
- Hoare, G., Rust 언어 설계 문서 (2012–2015)
- The Rust Programming Language. Steve Klabnik & Carol Nichols, No Starch Press
- Rust 공식 문서 및 RFC