본문 바로가기

Rust

[Rust] Let's Start

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