Rust (프로그래밍 언어)
Rust 프로그래밍 언어는 2010년부터 모질라 재단의 주도로 개발되는 시스템 프로그래밍에 특화된 프로그래밍 언어다. 현재는 모질라 재단이 Rust 재단을 따로 만들어 마이크로소프트 같은 다른 IT 대기업들의 지원을 받아 개발하도록 하였다.
특징[편집 | 원본 편집]
이 언어의 가장 큰 특징은 RAM 메모리 영역 할당과 해제를 컴파일러 단계에서 코드 스코프 별로 자동화하여 메모리 누수를 원천적으로 봉쇄한다는 것이다.[1] 클래스가 없이 구조체만이 존재하며 거기에 Trait라 하여 일종의 OOP의 인터페이스처럼 구성되어 생성자에서 메모리를 할당받으면 소멸자 호출시 해제되는 함수들을 붙일 수 있고, mut 접두어를 선언하지 않은 변수에 Trait 초기화를 걸어주면 그 이후부턴 상수 비슷하게 취급되어 변경이 어려우며, 일반적인 프로그래밍 언어에서 기본적으로 값을 복사하여 대입하는 등호 구문이 Rust에서는 RAM 영역을 할당받은 Trait라면 기본적으로 복사 없는 이동으로 처리되어 C언어에서 프로그래머들의 골치를 썩이는 허상 포인터 문제조차 원천적인 봉쇄가 가능하다. 이것 때문에 메모리 누수가 절대 있어서는 안 되는 시스템 수준의 소프트웨어 개발에서 강점을 가진다. 그 외에도 함수형 프로그래밍 패러다임 장려 등 현대적인 프로그래밍 관련 컴퓨터과학 이론들을 많이 접목했다. Cargo라고, node.js의 npm 같은 패키지 관리자를 이용해 앱을 개발하는 것도 최신 앱 개발 트렌드를 따른 결과다.
모질라 재단은 이 언어를 활용해 파이어폭스 웹 브라우저의 엔진인 Gecko를 대체할 Servo 프로젝트도 함께 진행했으나, 2020년 코로나19의 유행으로 운영이 어려워지자 리눅스 재단에 프로젝트를 인계하였다가 전염병 확산이 소강된 2023년 6월에 다시 프로젝트에 참여하여 마일스톤을 재개할 것을 선언하였다. 또한 리눅스에도 Rust가 일부 코드에 사용되기 시작하면서 시스템 소프트웨어에서 Rust의 도입이 본격적으로 시작되었다. 마이크로소프트도 윈도우 12에서 앱 개발 언어로써 쓸 수 있도록 래핑 라이브러리를 제공할 예정이다.
다만 이 때문에 그 C언어보다도 학습 난이도가 어렵다. 애초의 이 언어의 개발 목표가 C언어와 C++ 언어의 단점을 메운다는 목적이기 때문에 C언어에서 쓰는 바이트 수나 포인터 같은 개념들과 C언어로 프로그램을 짤 때 실수할 수 있는 부분을 다 안다는 입문 조건을 요구한다. Python 같은 비교적 쉬운 언어를 배운 경험만 믿고 어설프게 덤볐다간 let과 let mut의 구별을 어려워하며 mut 접두사 없으면 변수를 다루는 것조차 못하는 막장 코딩이 강림할 가능성이 매우 매우 크다. 그러므로 C언어부터 배운 뒤, 그 상태에서 변수 사용을 최대한 지양하는 방향으로 프로그래밍 스타일을 바꾸기 위해 불변성과 순수 함수 개념을 사용하기 위해 함수형 프로그래밍의 원리까지 알고 Rust를 배우면 좋다.
문법[편집 | 원본 편집]
Rust로 진행되는 프로젝트[편집 | 원본 편집]
- Servo: 모질라 파이어폭스의 차세대 엔진으로 기획되었던 웹 브라우저 엔진
- 이더리움 클래식: Rust에 C++가 섞여서 개발되고 있다.
- Bevy Engine: Rust를 게임 개발 언어로 사용하는 게임 엔진 프로젝트
- 구글 퓨시아: 구글이 Rust를 사용하여 개발 중인 운영체제
외부 링크[편집 | 원본 편집]
- ↑ 다만 성능 하락을 유발하는 쓰레기 수집 기능은 없다.