Language(38)
-
Rust로 폴더 감시자 만들기
오늘은 특정 폴더를 감시하여 이벤트를 받아오는 프로그램을 만들어보도록 하겠습니다. notify라는 라이브러리를 사용하면 쉽게 만들 수 있습니다. 먼저 해당 라이브러리 의존성을 추가해 줍니다. > cargo add notifycargo를 사용하여 추가하거나 Cargo.toml에 직접 추가합니다 [dependencies] notify = "5.1.0" watch 함수를 제작합니다. notify에서 RecommendedWatcher, Watcher, RecursiveMode, Config를 import 해줍니다 use std::path::Path; use notify::{RecommendedWatcher, Watcher, RecursiveMode, Config}; fn watch(path:P) -> notif..
2023.03.05 -
Rust 마스코트로 콘솔 메시지 출력
Rust가 인기 있는 이유 중 ferris라는 마스코드가 있습니다. 이번엔 콘솔로 Ferris가 말풍선으로 말하는 것 처럼 출력하는 방법에 대해 알아보겠습니다. 먼저 프로젝트를 생성합니다. > cargo new hello_ferris ├── Cargo.toml └── src └── main.rs 위와 같이 Cargo.toml 파일과 main,rs 파일이 생성됩니다. 우선 std::io라는 I/O 기능을위한 표준 라이브러리를 추가합니다. 표준 라이브러리는 기본적으로 종속성을 추가하지 않아도 됩니다. 여기서는 모듈 페이지에서 조회할 수 있는 {stdout, BufWriter}만 사용합니다. use std::io::{stdout,Bufwriter}; fn main() { } 이제 ferris를 출력하기 위해 ..
2023.03.05 -
Rust Dangling Pointer
개요 Rust에서는 Dangling Pointer가 발생하는 것을 컴파일러 단계에서 막을 수 있습니다. Rust에서 어떻게 Dangling Pointer를 막는지 알아봅니다. Dangling Pointer란? 해제 된 메모리 영역을 가리키고 있는 포인터를 Dangling Pointer라고 합니다. 아래 같은 코드가 있습니다. #include using namespace std; int main() { int a = 5; int *b = &a; int *c = &a; cout
2023.02.25 -
Rust의 배열
개요 Rust에서 배열을 선언하는 법과 사용하는 방법에 대해 알아봅니다. 배열 배열은 적어도 러스트에서는 동일한 항목이 빽빽하게 차 있는 컬렉션이다. 연속 메모리 위치에 저장 된 동일한 형식의 데이터 값 모음이다. 배열 내의 항목을 바꿀 수는 있지만 그 크기는 변경할 수 없다. 배열을 생성하는 방법은 두 가지가 있다. 대괄호 안에 쉼표로 구분된 목록(ex: [1,2,3])이나 세미콜론으로 구분 된 두 값을 입력하는 반복 표현식(ex: [0; 100])이 있다. [1,2,3] : 배열 크기 3에 1,2,3 값이 들어 있다. [0; 100] : 배열 크기 10에 0으로 초기화 되어 있다. fn main(){ let one = [1,2,3]; let two: [u8; 3] = [1,2,3]; let blank..
2023.01.09 -
Rust의 제네릭(Generic)
개요 여러 언어에서 제네릭(generic)이란 데이터의 타입을 사용합니다. 데이터의 타입을 일반화한다(generalize)라는 것을 의미하며, 반복적인 코드의 작성을 줄여줍니다. Rust에서 제네릭을 어떻게 사용하는지 알아봅니다. 제네렉(Generic) 제네렉은 반복적인 코드를 작성 할 필요성을 줄이고 대신 이 작업을 컴파일러에 위임하는 동시에 코드를 보다 유연하게 만드는 방법입니다. 제네릭을 사용하면 각 데이터 유형에 대해 동일한 코드를 다시 작성할 필요없이 여러 데이터 유형과 함께 사용할 수 있는 코드를 작성 할 수 있으므로 작업이 더 쉬워지고 오류가 덜 발생하는 코딩이 가능합니다. 제네릭 함수 제네릭을 함수에 활용하면 다양한 타입의 파라미터를 받아 작업 할 수 있습니다. fn print(x:T) -..
2023.01.09 -
Rust의 반복문
개요 Rust에서 사용 가능한 반복문에 대해 알아봅니다. for 반복문 rust에서 for 반복문은 컴파일러의 메서드 호출로 확장됩니다. 아래와 같이 for 반복문은 세가지 표현식이 있습니다. 형태 Detail 접근 for item in collection for item in IntoIterator::into_iter(collection) 소유권 for item in $collection for item in collection.iter() 읽기 전용 for item in &mut collection for item in collection.iter_mu() 읽고 쓰기 익명 반복문 블록 내에서 지역 변수를 사용하지 않는 다면 관습적으로 밑줄(_)를 사용합니다. for _ in 0..10 { //... ..
2023.01.08