Rust로 간단한 CLI 유효성 검사 도구 만들기개요Rust 공부하면서 배운 문법으로 간단한 무언가를 만들어보고 싶어서 이번에 소개할 유효성 검사 도구를 만들어봤습니다. 간단한 수준이지만 데이터 형식에 대한 기본적인 유효성 검사를 수행하는 프로그램입니다. Rust 초보자로서 완벽한 코드를 작성했다는 자신은 없고, ChatGPT의 도움도 꽤 많이 받았습니다. 초보자가 만든 작은 프로젝트로 봐주시면 감사하겠습니다.프로젝트 설정: Cargo.toml[package]name = "validation-tool"version = "0.1.0"edition = "2021"[dependencies]dialoguer = "0.11"ferris-says = "0.3.1"regex = "1.8" Rust 입문을 위한 프로젝..
Rust 처음 배우기: TypeScript 개발자의 도전기안녕하세요! 프론트엔드 개발을 주로 하며 TypeScript를 사용하는 개발자입니다. 최근에 Rust를 배우기 시작했는데, 처음에는 어디서부터 시작해야 할지 막막했어요. 그래서 Rust를 처음 접하는 분들, 특히 TypeScript를 주로 사용하는 분들을 위해 이 글을 작성하게 되었는데요. Rust의 기초를 다루고 TypeScript와의 비교를 통해 더 쉽게 이해할 수 있도록 돕고자 합니다. 이 글이 Rust를 배우고자 하는 분들에게 도움이 되기를 바랍니다. Rust란 무엇인가?Rust는 메모리 안전성과 병행성을 보장하는 시스템 프로그래밍 언어인데요. Rust는 C/C++ 같은 저수준 언어의 성능을 가지면서도, 메모리 관리에서 발생할 수 있는 여러..
Rust 강좌 8 - anymap이번 글에서는 Rust의 anymap 크레이트에 대해 다룰 건데요. 이 크레이트는 Rust-http와 teepee로 유명한 Chris Morgan이 만든 것인데요. 이 크레이트는 약간 특이하고 흥미로운 컨테이너인 AnyMap 타입을 제공해요. AnyMap 타입은 일반적인 맵과는 다릅니다. 예를 들어, Rust의 HashMap은 K(키의 타입)와 V(맵에 저장된 값의 타입)에 의해 매개변수화된 제네릭 타입이에요. (여기에는 해시 함수(hasher) 매개변수도 있지만, 이는 여기에서는 관련이 없어요.) 반면, AnyMap 자체는 제네릭 타입이 아니에요. 내부적으로 HashMap을 사용하지만, 그 사실을 알 필요는 없어요. 개념적으로, AnyMap은 타입에서 값으로 매핑합니다...
Rust 강좌 7 - itertoolsitertools 크레이트는 Haskell과 Python의 itertools에서 영감을 받은 여러 유틸리티 함수와 매크로를 포함하고 있는데요. 이름에서 알 수 있듯이, 이는 반복(iteration)과 반복자(iterators)와 관련이 있습니다. itertools를 사용하려면, 다음과 같은 의존성 선언을 Cargo.toml에 추가하면 되는데요:[dependencies]itertools = "~0.0.4" 우리는 도우미 함수부터 시작해서 나중에 매크로를 다룰 건데요. foreach이 함수와 몇몇 다른 함수는 Itertools 트레이트에 포함되어 있어서, 모듈에 use itertools::Itertools를 추가해 범위에 넣어야 하는데요. foreach()는 개념적으로 ..
Rust 강좌 6 -JSON과 함께 작업해볼까요?JSON은 현대 웹의 핵심 데이터 형식입니다. 자바스크립트 세계에서 비롯되어 많은 관심을 받았고, 현재는 데이터 교환 형식으로 웹 개발자의 첫 번째 선택인데요. 웹뿐만 아니라 한때는 자바스크립트 전용이었던 JSON 지원이 이제는 어디에서나 가능합니다. 많은 언어들이 표준 라이브러리에 JSON 파서를 포함하고 있고, 그렇지 않은 경우에도 누군가 이미 서드 파티 라이브러리를 만들어 놓았는데요. Rust의 경우, JSON 지원은 rustc_serialize::json 모듈에서 제공됩니다. 참고로, 이번 글에서는 웹, API, 요청 등에 초점을 두지 않았습니다. 이전에 hyper에 대한 글에서 JSON을 언급했지만, 이번에는 JSON으로 인코딩된 데이터가 어디에서..