rust(28)
-
Rust Shuffle
Shuffle은 컬렉션의 요소를 무작위로 섞는 알고리즘으로, 데이터의 순서를 무작위로 변경하는데 사용됩니다. 셔플을 사용하기 위해서는 여러 방법이 있습니다. Std Shuffle 사용 Rust에서는 Array, List, Vector 등 기본적으로 Shuffle을 사용 할 수 있습니다. use rand::{Rng, seq::SliceRandom}; const LEN:usize = 10; fn main() { let mut vectors = vec![]; let mut arrays= [0;LEN]; for i in 1..=LEN { vectors.push(i); arrays[i-1] = i; } let mut rng = rand::thread_rng(); println!("[Vector] before : ..
2023.06.11 -
Yew 시작하기
Yew이란?? 윕 애플리케이션 개발은 지속적으로 발전하고, 새로운 기술이 도입되며 전례 없는 성장을 이루고 있습니다. 이러한 발전 속에서, Rust와 Yew는 웹 애플리케이션 개발을 새롭고 효율적인 방식으로 이끌고 있습니다. Yew 프레임워크는 Rust로 작성된 현대적인 프런트엔드 프레임워크로, React와 유사한 Component 아키텍처를 제공합니다. 또한, 가상 DOM으로 화면 업데이트를 최적화하여 높은 성능을 보장하고 WebAssembly와 함께 동작해서 성능을 더욱 향상 시켰습니다. 필수 구성 요소 설치 Yew를 시작하기 위해서는 먼저 trunk 크레이트를 설치해야 합니다. $ cargo install trunk 또한 Webassembly이긴 때문에 WASM을 빌드 대상으로 추가해야 합니다. $..
2023.06.10 -
Rust fmt 모듈
Rust에서 문자를 출력하기 위해서는 print!이나 println!을 사용합니다. 끝에 !(느낌표)가 붙는 것은 Rust 매크로 아래 글을 참고하시면 됩니다. 2023.03.11 - [Language/Rust] - Rust 매크로 [Rust 매크로 매크로란? Rust에서는 매크로를 지원합니다. 매크로는 메타 프로그래밍이라고 하는데, 내가 만든 Rust 코드가 새로운 Rust 코드를 만드는 것을 매크로라고 합니다. 대표적으로 우리가 많이 사용하 jandari91.tistory.com](https://jandari91.tistory.com/12) 화면에 출력하기 위해 println!()을 많이 사용하는데, 출력하기 위한 여러 포맷에 대해 알아봅시다. std::fmt std::fmt 모듈은 포맷 출력을 제어..
2023.06.07 -
Rust에서 RabbitMQ 사용하기 (WorkQueue)
오늘은 Rust에서 RabbitMQ를 사용하는 방법에 대해 알아봅니다. RabbitMQ는 너무 유명한 MessageQueue이므로 따로 설명하지는 않겠습니다. RabbitMQ에서 가장 기본이 되는 것이 Work Queue입니다. 위와 같이 P는 Producer 즉 메시지를 Queue에 넣는 프로그램이며, C는 Consumer로 메시지를 받아 특정 작업을 하는 프로그램 입니다. 1개의 Queue에 여러 Producer와 여러 Consumer가 붙어서 사용 할 수 있습니다. Producer 먼저 메시지를 Queue에 넣는 방법에 대해 알아보겠습니다. Rust에서는 amiquip라는 Crate를 사용하면 됩니다. $ cargo new producer $ code producer Cargo를 통해 프로젝트를 생..
2023.06.03 -
if Let
Rust에서는 if let 표현식을 통해 관심 있는 베리언트에만 매칭하고 다른 것을 무시 할 수 있습니다. 예를 들어 아래와 같이 String이 있을 때 물음표(?) 뒤의 second만 가져오는 예제가 있습니다. fn main() { let some_str = String::from("first?second"); let mut second_str = None; match some_str.find('?') { Some(i) => { second_str = Some(&some_str[i + 1..]); } None => {} } } 위와 같이 second_str을 None으로 정의 후 '?'를 찾아 찾은 index + 1 ..을 통해 second라는 String을 가져 올 수 있..
2023.06.03 -
Rust의 Trait
Rust를 공부하면서 Trait 패턴에 대해 처음 알게 되었습니다. 그래서 Trait이 Rust에서만 사용 되는 개념인가 했는데, 생각보다 여러 언어에서 채용하고, 또는 비슷한 개념으로 지원하고 있다는 것을 알게되었습니다. PHP나 Scalar는 Trait이라고 해서 사용하는 거 같고, C#, Java, Javascript, Kotlin, Python의 경우는 Mixin이라는 개념으로 Trait과 비슷하게 지원하는거 같습니다. 그래서 자료를 찾을 때 Mixin이라고 찾으면 더 많이 나오고 이해하기 쉬운거 같습니다. 객체지향 프로그래밍 언어 위키백과에서 러스트를 찾아보면 순수 함수형 프로그래밍, 액터 기반 병렬 프로그래밍, 명령형 프로그래밍, 객체 지향 프로그래밍 스타일을 지원한다. 라고 나와있습니다. 우..
2023.05.11