Rust
Rust는 모질라 리서치에서 개발한 범용 프로그래밍 언어이며, 2006년 개발자 그레이든 호아레의 개인 프로젝트로 시작했습니다. 2010년 처음으로 일반에 공개한 후 2012년 1월 첫 번째 알파버전 0.1이 발표했습니다.
러스트의 특징을 살펴보자면,
1. Rust는 low Level에 속하는 언어입니다.
2. 소유권(Ownership)라는 개념을 사용하여 메모리를 관리합니다.
3. GC(가비지 컬렉션)이 없다!!.
4. C언어의 보안 및 버그의 대부분은 메모리 오염에서 일어난다고 합니다. Rust는 메모리 버그를 해소하는 목적으로 만들어진 언어 입니다.
Rust의 장래성
- 사람들이 가장 많이 사용하는 coumunicate application인 Discord도 rust를 사용했으며, Ms는 윈도우 커널의 C++ 부분을 Rust로 마이그레이션 하는 작업을 진행하고 있다고 합니다.
- 개인적으로 이러한 이유로 10년~20년 뒤에는 c언어를 대체하는 언어가 될 수 있을지도 모른다는 생각이 들었습니다.
- webassembly 코드로 변환할 수 있다. 웹 화면에서 아주 복잡한 그래픽 작업에 사용하면 고성능의 애플리케이션을 만들 수 있다고 합니다.
출처: 디스코드 go에서 rust로 바꾼 이유, ms 러스트 개발자 구인
내가 Rust를 배우는 이유
저수준 언어를 사용 한지 너무 오랜 시간이 지났습니다. 그것도 학점 프로그램 등등 정도만 C, C++을 사용해서 만든 경험 밖에 없었습니다. 무려 그것조차 2년이 넘는 시간이 지났습니다. 지금은 C언어의 포인터 구현도 자세하게 기억나지 않습니다.
개발자에게 저수준 언어는 다가오는 AI 시대에서 필수라고 생각합니다. Python을 통해서 이미 제공되는 머신러닝, 딥러닝 라이브러리는 제일 중요한 코어 부분은 모두 저수준 언어로 구현합니다. 거기에 미래가 밝습니다. 그래서 C언어를 다시 배우는 것보다 취미로 Rust를 배우는 것으로 결정했습니다.
Window11 WSL 설치
#최신 버전 우분투 LTS 버전이 자동으로 설치 됩니다.
wsl --install
Rust 설치
$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env
컴파일 error: linker cc not found 에러 해결
- Rust는 C언어의 linker를 사용하는데 해당 linker를 찾을 수 없어서 나는 에러였습니다.
- 링킹을 도와줄 툴을 다운로드 해야합니다.
해결 코드
sudo apt-get update
audo apt install build-essential
일반 HelloWorld 실습해보기
Directory 경로
mkdir ~/rust
cd ~/rust
mkdir project
cd project
mkdir hello_world
cd hello_world
Rust 코드 main.rs
fn main(){
println!("Hello, World");
}
컴파일
$ rustc main.rs
- main.exe 파일이 생성됩니다.
실행
$ ./main
Cargo를 사용한 HelloWorld 실습
Rust의 빌드 시스템 및 패키지 매니저입니다. 러스트 프로젝트는 Cargo를 통해 관리합니다.
프로젝트 생성
$ cargo new hello_cargo --bin
$ cd hello_cargo
Cargo.toml
카고의 패키지를 관리하는 파일입니다.
[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
src/main.rs
fn main(){
println!("Hello, World");
}
Cargo build와 Cargo Check
- Cargo build
- 컴파일하고 실행파일을 만듭니다.
- Cargo Check
- 컴파일하지만 실행파일을 만들지 않습니다.
- cargo check를 통해 주기적으로 코드에 문제가 없는지 컴파일하여 확인할 수 있습니다.
- Build보다 속도가 빠릅니다.
$ cargo build
$ cargo check
프로젝트 빌드 및 실행
$ cargo run
출처
Linux와 macOS에서 Rustup 설치하기
'etc' 카테고리의 다른 글
| 티스토리 Code Highlight 적용하기 + LineNumber 추가(hELLO 스킨 사용) (6) | 2024.08.27 |
|---|---|
| google 메인화면 클론코딩 해보기 (0) | 2024.04.17 |
