rust(28)
-
Rust 문자열
러스트에서 문자열을 다룰 때는 String 타입 또는 &str 타입을 이용합니다. &str은 변경이 불가능 하기 때문에 함수의 반환 값으로 사용해야 할 때는 String 타입을 사용하고 있습니다. 이 둘의 차이점에 대해 먼저 알아 보겠ㅅㅂ니다. String 타입 String 타입은 벡터 타입입니다. 정확히는 vec 타입입니다. u8은 부호가 없는 8비트(1바이트) 정수이기 때문에 String 타입은 1바이트 단위로 데이터를 확장 할 수 있고, 벡터 타입은 힙 메모리에 저장됩니다. &str 타입 &str 타입은 슬라이스라고 합니다. 큰따옴표("")로 감싼 문자열이 &str이며, 러스트에서는 슬라이스인 &[u8] 타입으로 취급됩니다. &[u8] 타입인 것을 보면 참조자로만 사용 할 수 있기 때문에 소유권이 ..
2023.06.24 -
cargo diesel_cli 설치 에러
개요 Rust의 ORM 중 가장 유명한 diesel을 사용하고 싶어 테스트 중이 였다. DB는 Postgres며, 튜토리얼을 따라 하는데 정상적으로 diesel_cli가 설치 되지 않아 정리하려 한다. Diesel 설치 [dependencies] diesel = { version = "2.0.4", features = ["postgres"] } $ cargo install diesel_cli --no-default-features --features postgres ... ... b" "-o" "/tmp/cargo-installtmxLrL/release/deps/diesel-51c0e09b49673ddd" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-..
2023.06.22 -
환경변수 파일 읽기
개요 프로젝트를 하다보면 프로그램 내부에서 사용 할 환경 설정 파일을 따로 관리하는 경우가 있습니다. 이럴 때 우리는 .env 파일을 만들어서 사용합니다. 오늘은 .env 파일을 읽는 방법에 대해 알아보도록 하겠습니다. dotenv 추가 .env 파일을 읽고 환경변수를 가져오도록 하는 Crate 중 유용한 게 dotenv라는 crate가 있습니다. 먼저 Cargo.toml에 추가합니다. [dependencies] dotenv = "0.15.0" .env 파일 셋팅 저는 postgres에 접속 할 수 있는 Database 연결 정보를 설정해보도록 하겠습니다. NAME='TEST' AGE=13 환경변수 불러오기 환경 변수를 불러오는 방법은 간단합니다. dotenv().ok(); 를 추가만 해주면 .env 파..
2023.06.21 -
Axum 시작하기
개요 Rust로 웹 개발을 하기 위해서는 다양한 프레임워크들이 존재합니다. 그중에서도 요즘 가장 핫한 프레임워크 중 하나는 Axum입니다. Axum은 비동기 웹 애플리케이션을 개발하기 위한 라이브러리이며, Rust의 비동기 프로그래밍 기능을 활용하는 구조로 되어 있습니다. Rust에서 비동기로 유명한 tokio라는 크레이트가 있는데 tokio에서 만든 웹 프레임워크 입니다. 핵심 기능들 1. 타입 안전성: 모듈 간의 상호작용에서 컴파일 타임에 버그를 최대한 줄여주는 타입 안전성을 제공합니다. 2. 모듈화된 구성: 작은 단위로 쉽게 구성을 나누고 조합할 수 있어 비대해진 웹 서비스를 유지하기 쉽습니다. 3. 익스프레션(objected) 스타일 라우팅: Axum은 간결하고 사용하기 쉬운 라우팅을 위해 신작된..
2023.06.20 -
Rust 명령줄의 인수 받기
개요 Rust는 Command Line에 즉 CLI 도구에 많이 사용 됩니다. 그래서 오늘은 Command Line에서 인수를 받는 방법에 대해 알아보도록 하겠습니다. 표준 라이브러리 인수 다루기 Rust의 표준 라이브러리인 std::env::args()를 통해 Rust 프로그램의 인수를 가져 올 수 있습니다. fn main() { let args = std::env::args(); for (i, s) in args.enumerate(){ println!("{}", s); } } $ cargo run 10 20 30 a b c 1.1 1.2 10 20 30 a b c 1.1 1.2 인수의 경우는 전부 string으로 받게 됩니다. Clap 크래이트 사용하기 CLI를 사용하기 위해서는 표준 라이브러리 만으..
2023.06.18 -
Rust의 HashMap 소개
HashMap이란? HashMap은 키-값 쌍(Key-Value Pair)로 이루어진 데이터를 저장하는 데이터 구조입니다. HashMap을 사용하면 키를 통해 값을 빠르게 검색하거나 수정하는 것이 가능합니다. 또한 키는 고유하며, 중복되지 않아야 합니다. let mut 변수명 : HashMap = HashMap::new(); 위와 같이 HashMap을 생성 할 수 있습니다. HashMap 생성 및 값 추가 모듈 가져오기 먼저 모듈을 가져오기 위해서는 아래와 같이 표준 라이브러리로부터 해당 모듈을 가져와야 합니다. use std::collections::HashMap; HashMap 생성하기 HashMap은 키와 값을 연결해 주는 테이블입니다. 아래와 같이 생성합니다. let mut fruits = Has..
2023.06.15