rust(28)
-
Rust 설치 및 VS Code 셋팅(Linux, Debian)
소개 최근 Rust에 관심이 생겨 Rust를 공부하고 있습니다. 제가 집에서 사용하는 PC는 Mint Linux로 Debian 계열의 리눅스를 사용하고 있습니다. Linux에 Rust를 설치하는 방법과 VS Code에서 Rust를 사용하는 방법에 대해 정리하겠습니다. Rust 설치 리눅스에서 Rust를 설치하는 방법은 3가지가 있습니다. rustup 사용 : 공식 사이트에서 가장 추천하는 방법 입니다. 패키지 매니저 사용 : 편리하지만 오래 된 버전의 Rust가 설치 됩니다. 직접 소스코드 빌드 : 특이한 경우가 아니라면 비추입니다. 저는 이 중 가장 추천하는 rustup을 사용하여 설치하겠습니다. Rustup으로 설치하기 먼저 터미널을 실행 시킵니다.(Ctrl + Alt + T) 아래 명령어를 사용합니..
2023.04.26 -
Web Assembly 만들어 보기
Rust를 공부하다 보니 가장 많이 연관되는게 WebAssembly라 튜토리얼을 한번 따라 해봤습니다. Web Assembly?? Web Assembly는 Javascript만으로는 어려웠던 고성능의 애플리케이션을 C, C++, C#, Rust 등을 사용하여 웹이지만 네이티브에 가까운 속도로 실행 가능하게 만드는 것입니다. 정확한 원리는 잘 모르지만, 제가 생각 할 때는 다른 언어로 개발하고 컴파일하면 wasm이라는 파일이 나오게 되는데, 웹에 접속하면 자동으로 wasm이라는 파일을 다운받아 브라우저 위에서 wasm을 실행시키기 때문에 빠른 것으로 보입니다. 이름이 Web Assembly이지만 막상 만들고 나니 브라우저 뿐만 아니라 wasm 파일이 리눅스, 윈도우, IoT 등 다양한 플랫폼에서 돌아간다는..
2023.04.15 -
Rust Option의 메서드 알아보기
오늘은 Rust의 Option에 대해 알아보도록 하겠습니다. Option Rust에서 기본적으로 null이 존재하지 않습니다. 그래서 널 포인터 참조와 같은 에러는 발생하지 않습니다. 하지만 Null을 표현하는 방법이 필요할 때가 있기 때문에 Rust에서는 Option라는 Enum 타입을 제공합니다. enum Option { Some(T), None, }Option 안에는 두 개의 variant(종류)가 존재합니다. Some : 값을 가지는 variant None : 값을 가지지 않는 variant 예제 설명 fn divide(dividend: i32, divisor: i32) -> Option { if divisor == 0 { None } else { Some(dividend / divisor) } ..
2023.04.01 -
Rust 소스 코드 문서화
여러 언어에서 주석으로 문서를 생성하는 방법이 많이 있습니다. 예를 들어 docfx나 hugo 등이 많이 있습니다. Rust에서는 빌드 시스템이자 패키지 관리자인 Cargo에 기본적으로 내장되어 있습니다. 오늘은 내가 만든 코드를 자동으로 문서화 시키는 방법에 대해 알아보도록 하겠습니다. 예제 코드 먼저 아래와 같이 Cargo를 통해 새로운 프로젝트를 생성하고 main.rs를 작성합니다. $ cargo new rust_doc enum Color { Red, Blue } struct Student { name : String, age : i32 } fn add(x:i32, y:i32) -> i32 { x + y } fn main() { println!("Hello, world!"); } 예제 코드 문서화 ..
2023.03.21 -
Rust 열거형(Enum)
Enum(열거형)이란 한 타입의 종류(variant)를 나열 할 때 흔히 사용됩니다. Enum은 컴파일러에 프로그램에 관한 정보를 제공하므로 프로그램을 더 안정적으로 만들 수 있습니다. 간단한 예제를 살펴보겠습니다. enum Move { Up, Down, Left, Right } fn which_move(go: Move){ match go { Move::Up => println!("up"), Move::Down => println!("down"), Move::Left => println!("left"), Move::Right => println!("right"), } } enum Move안에 속한 값들을 열것값(variant)라고 부릅니다. 열것값들의 끝에는 콤마로 구분하고 마지막 열것값의 경우는 선택사..
2023.03.20 -
Rust Struct(구조체)
다른 언어들과 마찬가지로 Rust에도 구조체가 존재합니다. 구조체는 여러 데이터들의 모아놓은 타입이라고 보면 됩니다. struct는 structure의 줄임말로 여러 데이터 조각을 포함하는 데이터 타입입니다. Rust는 다른 언어들과 달리 구조체 안의 데이터에 반드시 값을 지정해줘야 합니다. 그렇지 않으면 컴파일이 되지 않습니다. 데모 struct StructItem{ data_a : i32, data_b : f64 } fn main() { let item = StructItem{ data_a : 3, data_b : 19.9 }; println!("data a : {}", item.data_a); } 위와 같이 작성 후 컴파일을 하게 되면 아래와 같은 경고가 뜹니다. > rustc .\struct.rs..
2023.03.12