Rust 언어는 2006년 Mozilla 재단 소속 개발자인 Graydon Hoare가 개발하였고 Mozilla 재단이 지원하는 오픈소스 프로그래밍 언어로 "안전성", "속도", "동시성"의 3대 요소를 개발 목표로 한다.
시스템 프로그래밍 분야에서 주로 사용되는 C/C++ 언어를 대체할 수 있는 것을 목표로 개발되고 있다.
공식 사이트: https://www.rust-lang.org/
Rust Programming Language
A language empowering everyone to build reliable and efficient software.
www.rust-lang.org
2017년말 웹 브라우저 Firefox 버전 57를 Rust로 개발하였다.
Rust 개발 목표
- 안전성: 보안 위협에 직결되는 메모리 관리와 Null 안전성 등 언어 자체의 안전성을 유지
- 속도: C/C++와 동등한 속도
- 동시성: 표준 라이브러리도 스레드 안전은 고려
Rust 적용 현황
- 브라우저를 포함하여 안드로이드, 리눅스 커널 개발에서도 Rust가 쓰이기 시작
- 마이크로소프트는 2019년 11월에 원도우의 일부를 Rust로 구현하였다고 발표
- 구글은 2021년 4월 안드로이드 운영체제 개발에 Rust를 이용할 것을 발표
Rust 특징
- C/C++와 같이 컴파일러 언어
- Package Management System: Cargo (cargo 명령어)
- Cargo는 패키지 관리 및 빌드 시스템 역할을 수행
- 유니코드를 처리할 수 있으며 문자열 처리를 위한 다양한 라이브러리를 갖추고 있어 멀티 바이트 어너을 문제 없이 처리
- 오픈 소스 (https://github.com/rust-lang): Rust는 Rust 코드로 작성되어 있음
- 정적 타입 시스템: 변수 타입이 무엇인지 프로그램 실행전에 명확하게 명시되어야 하는 것으로 프로그래머는 변수와 함수의 인수, 반환 값의 형태를 자세히 지정해아 한다.
- Rust에서 타입 추론 기능이 있어 변수에 숫자나 문자열 같은 명확한 데이터 형태가 대입되면 자동으로 변수의 타입을 추론하기 때문에 자료형의 지정을 생략해도 된다.
- 소유권 시스템과 라이프타임(Lifefile) 이라는 메커니즘을 이용하여 메모리를 관리한다.
'Rust' 카테고리의 다른 글
| [Rust] 구구단 만들기 (0) | 2024.02.29 |
|---|---|
| [Rust] Rust로 FizzBuzz 문제 풀기 (0) | 2023.11.06 |
| [Rust] 간단한 프로그램 작성하기 (0) | 2023.10.14 |
| [Rust] 개발 환경 구축 (1) | 2023.10.12 |
| [Rust] 간단한 프로그램 작성 (Hello World!) (0) | 2022.02.22 |