[맥북] 맥북에 Rust 개발 환경 구축하기
1. Rust 소개
Rust는 모질라 재단에서 2010년 7월 7일 처음 발표 후 2015년 5월 15일 안정 버전이 발표되었고 2021년 2월 부터 러스트 재단으로 분리되어 AWS, Google, Microsoft, Huawei, 모질라 재단이 초기 회원사로 참여하였다.
Rust 프로그래밍 언어는 디자인에서 고수준의 인간공학과 저수준의 제어를 조화를 이룰 수 있는 언어이다.
Rust 언어는 현대적인 시스템 프로그래밍 언어로 C/C++와 동등한 수준의 속도로 동작되며 안전성과 동시성을 목표로한다. "안전하지 않은" 코드를 사용하여 "안전한" 코드로 추상화할 수 있논 도구도 프로그램 언어차원에서 제공한다.
함수형 프로그래밍 언어로 부터 발전된 언어로 부터 발전된 타입 시스템을 도입하였고 클래스 대신 다른 언어에서의 인터페이스와 비슷한 트레이트(Trait)라는 개념을 기반으로 다형성을 달성한다. 타입이 강제되는 매크로를 사용하여 언어를 확장하는 것이 가능하며 현대적인 모듈 시스템을 통해 쉽계 모듈화될 수 있다.
Rust 언어는 절차지향 언어, 함수지향 언어, 객체지향 언어 패러다임을 모두를 가지는 다중 패러다임 언어이다. 또한 다음과 같은 고수준의 기능을 포함한다.
- 타입 추론: 타입을 알려주는 지역 변수 선언은 선택적이다.
- 안전한 태스크 기반의 동시성: Rust의 가벼운 태스크들은 메모리를 공유하지 않고 메시지를 통해 통신한다.
- 고차(Higher-order) 함수: 효율적이고 유연한 클로저는 반복과 제어 구조를 분리하여 제공한다.
- 패턴 매칭과 대수적 자료구조: Rust의 열거형에서 패턴 메칭은 프로그램 논리를 코드화하는 함축적이고 표현적인 방법이다.
- 다형성: 타입-인자의 함수와 타입, 타입 클래스, 그리고 객체재향 스타일의 인터페이스를 가진다.
Rust 언어의 특징으로 안정성, 속도, 병렬 프로그래밍, 함수형 프로그래밍, 시스템 프로그래밍이 있다. 온라인 상에서 표준 라이브러리 기반의 코드를 실행할 수 있다.
2. Rust 설치
Rust 컴파일러는 rustup 이라는 Rust 버전 및 관련 도구를 관리하기 위한 커멘드 라인 도구를 사용하여 Rust를 다운로드한다.
$curl https://sh.rustup.rs -sSf | sh
이 명령어는 스크립트를 다운로드하고 rustup 도구 설치를 시작하고 가장 최신의 Rust 안정화 버전을 설치한다.
이 명령어를 실행하면 Rust 언어의 공식적인 컴파일러와 패키지 관리자 Cargo를 다운로드하고 설치한다. $HOME 디렉토리에 Rusup 홈 디렉토리($HOME/.rustup), Cargo 홈 디렉토리($HOEM/.cargo), cargo, rustc, rustup 실행파일은 $HOME/.cargo/bin 디렉토리에 설치된다.
아래와 같이 설치 옵션이 화면에 출력된다. 디폴트 설치를 선택하면 'cargo', 'clippy', 'rust-doc', 'rust-std', 'rustc', 'rustfmt', 'cargo', 컴포넌트를 설치한다. rustc 버전 1.58.1 이 설치되었다.
터미널을 재 실행시키면 시스템의 PATH 환경 변수에 $HOME/.cargo/bin 디렉토리가 추기된다. 터미널을 재 실행시키지 않고 환경 변수를 설졍하기 위해서 다음 명령어를 실행힌다.
$source $HOME/.cargo/env
다음과 같이 설치된 실행 파일의 버전을 확인할 수 있다.(2022년 2월 22일 기준)
$cargo --version
cargo 1.58.0 (f01b232bc 2022-01-19)
$rustup --version
rustup 1.24.3 (ce5817a94 2021-05-31)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.58.1 (db9d1b20b 2022-01-20)`
$rustc --version
rustc 1.58.1 (db9d1b20b 2022-01-20)
Reference
Rust Programming Language - HTML type Book (English)
Rust Programming Language - HTML type Book (Korean)