본문 바로가기

Rust

Rust에서 정규 표현식 마스터하기 Rust에서 정규 표현식 마스터하기: 문자열 처리를 위한 완벽 가이드 정규 표현식(Regex)은 문자열 패턴 매칭에 있어 강력한 도구입니다. Rust에서는 이 기능을 사용하기 위해 외부 크레이트가 필요하지만, 그 활용성은 무궁무진합니다. 이 글에서는 Rust에서 정규 표현식을 사용하는 방법부터 고급 기능까지 차근차근 알아보겠습니다.🚀 시작하기: Rust에서 정규 표현식 설정하기Rust는 파이썬과 달리 정규 표현식이 표준 라이브러리에 포함되어 있지 않습니다. 대신 regex 크레이트를 사용해야 합니다. 프로젝트에 이 크레이트를 추가하려면 Cargo.toml 파일에 다음 내용을 추가하세요:[dependencies]regex = "1"이렇게 하면 Rust 코드에서 정규 표현식을 사용할 준비가 끝납니다.🔍 .. 더보기
[Rust] 함수 값 전달(Passing Arguments by Value) 완벽 가이드 Rust의 값 전달(Passing Arguments by Value) 완벽 가이드소개Rust에서 함수에 인자를 전달하는 방식 중 가장 기본이 되는 '값 전달(Pass by Value)'에 대해 자세히 알아보겠습니다. Rust의 독특한 소유권 시스템과 함께 이해하면 더욱 효과적인 코드를 작성할 수 있습니다.기본 개념Rust에서 값을 전달할 때는 기본적으로 소유권이 이전됩니다. 이것이 Rust의 가장 큰 특징 중 하나입니다.fn main() { let name = String::from("Alice"); print_name(name); // println!("{}", name); // 🚫 컴파일 에러! name의 소유권이 이전됨}fn print_name(n: String) { prin.. 더보기
[Rust] 포인터의 종류와 사용방법 Rust에서는 다양한 종류의 포인터를 제공합니다. 이 포인터들은 메모리 안전성, 소유권, 뮤터불리티 등 다양한 측면에서 사용됩니다. 아래에 주요 포인터 타입에 대한 설명을 제공하겠습니다. Rust에서는 여러 종류의 포인터를 제공합니다. 각각의 포인터는 메모리 안전성을 보장하는 데 다양한 방법을 사용합니다. 아래 테이블에서 주요 포인터 타입의 특징을 비교하겠습니다. 먼저 들어가기 전에 뮤터블과 (Mutable)과 이뮤터블(Immutable)의 간략히 짚고 갑니다. 아래는 비교한 표입니다. 뜻 변경 가능한 변경 불가능한 변수 선언 let mut x = 5; let x = 5; 값 변경 가능 (x = 6;) 불가능 배열/벡터 수정 가능 (vec.push(1);) 불가능 메모리 안정성 상대적으로 낮음 높음 데이.. 더보기
Rust in Jupyter notebook Jupyter Notebook에서 Rust를 사용하려면, jupyter의 커널설치가 필요합니다. Rust 커널 설치: Jupyter Notebook은 다양한 프로그래밍 언어를 지원하기 위해 별도의 커널을 사용합니다. Rust용 Jupyter 커널은 evcxr_jupyter라고 불리며, 이를 설치하면 Jupyter Notebook에서 직접 Rust 코드를 실행할 수 있습니다. 먼저, Rust가 설치되어 있어야 합니다. Rust 공식 웹사이트에서 Rust를 설치할 수 있습니다. Rust가 설치된 후, 터미널이나 커맨드 프롬프트에서 다음 명령어를 실행하여 evcxr_jupyter를 설치합니다: cargo install evcxr_jupyter evcxr_jupyter --install 설치가 완료되면, Jup.. 더보기
[Rust] Clap과 커맨드 라인 argument 다루기 Rust에서 command line을 다루는 법은 기본적으로 std::env::args가 있습니다. Clap은 Rust에서 커맨드 라인 인터페이스를 쉽게 만들 수 있도록 도와주는 크레이트입니다. 다양한 옵션과 설정을 통해 복잡한 커맨드 라인 애플리케이션도 쉽게 구축할 수 있습니다. std::env::args 사용 예제 먼저 기본적으로 내장되어 있는 std::env::args를 사용한 예제를 알아봅니다. 예제 1 Command 라인 인자를 하나씩 처리합니다. use std::env; fn main() { let args: Vec = env::args().collect(); if args.len() > 1 { if args[1] == "-c" || args[1] == "--config" { if args.l.. 더보기
[Rust] Cargo 간단한 사용법 Rust 패키지 관리자인 Cargo는 라이브러리 의존성 관리, 빌드, 테스트, 문서 생성 등 다양한 작업을 쉽게 할 수 있도록 도와줍니다. 이 글에서는 Cargo의 기본적인 사용법에 대해 정리해보겠습니다. 파이썬의 pip와 비슷하면서도 빌드, 테스트, 문서화까지 이 한 커맨드로 가능합니다. 기본 명령어 프로젝트 생성 명령어설명 Command Description cargo new 새로운 바이너리 프로젝트 생성 cargo new --lib 새로운 라이브러리 프로젝트 생성 빌드 및 실행 명령어설명 Command Description cargo build 프로젝트 빌드 cargo build --release 최적화된 릴리즈 빌드 cargo run 프로젝트 빌드 및 실행 cargo check 코드를 빌드하지 않.. 더보기
[RUST] xlsxwriter RUST에서 excel형식의 파일을 생성할때는 xlsxwriter를 이용해서 작성한다 여기는 이 예제를 설명한다. cargo-edit 설치되어 있지않으면 cargo-edit를 먼저 설치 한다. cargo install cargo-edit 아래와 같이 xlsxwriter를 라이브러리에 추가 한다. cargo add xlsxwriter cargo-add가 설치되어 있지 않으면 Cargo.toml 파일을 아래와 같이 직접 수정한다. [dependencies] xlsxwriter = "0.6.0" 아래와 같이 작성하고 컴파일을 진행한다. use xlsxwriter::*; fn main() -> Result { let workbook = Workbook::new("simple.xlsx")?; let mut wor.. 더보기
[Rust] 제어문 If-else, while, do-while if statement 제어문, if-else 류는 문들은 보통 모든 언어들에 있는 구문이고, 여기서는 rust가 다른 언어들과 조금 다른 점들만 기술합니다. if [conditions] ... // condition은 boolean식만 들어갈 수 있다. “? : ” 와 같은 삼항 연산자 역시 제대로 동작합니다 특이한 점은 condition에 괄호() 가 필요 없다는점입니다. if condition { ... } else { ... } Conditional loop(while) while같은 conditional loop도 동일합니다. 조건이 만족하면 loop가 실행되고, 아니면 빠져나가는것입니다. do-while은 rust에서는 지원하지 않습니다만, 이것을 구현하는 방법은 존재합니다. let mut i.. 더보기