Rust 20

인터뷰 번역) Tauri vs 다른 Rust GUI 프레임워크: Arboretum 개발자의 이야기

인터뷰 번역) Tauri vs 다른 Rust GUI 프레임워크: Arboretum 개발자의 이야기지난 1년간 한 개발자는 Rust를 활용해 로컬 우선 방식의 PKMS(Personal Knowledge Management System) 앱인 Arboretum을 개발하며 다양한 Rust GUI 프레임워크를 탐색했습니다. 그는 데스크톱 애플리케이션 개발이라는 복잡한 영역에서 어떤 도구가 자신의 요구를 가장 잘 충족할 수 있는지 고민하고, 실험하며, 결국 Tauri를 선택했습니다.Q1. 먼저, Arboretum에 대해 간단히 소개해 주실 수 있나요?개발자:Arboretum은 사용자가 지식을 체계적으로 정리하고 관리할 수 있도록 돕는 PKMS 앱입니다. 이 앱은 로컬 우선(Local-First) 접근 방식을 채택..

Rust 2025.02.09

Rust 'unsafe' 제대로 파헤치기: 개발자가 알아야 할 모든 것

Rust 'unsafe' 제대로 파헤치기: 개발자가 알아야 할 모든 것Rust는 그 강력함과 안전성으로 많은 개발자들의 사랑을 받는 언어입니다. 하지만 Rust의 심오한 영역에는 'unsafe'라는 키워드가 존재하며, 이는 끊임없는 논쟁과 오해의 중심에 서 있습니다. 마치 숙련된 외과의사의 메스와 같아서, 정확하게 사용하면 생명을 살릴 수 있지만, 잘못 다루면 치명적인 결과를 초래할 수 있죠. 왜 'unsafe'는 이토록 많은 오해를 낳는 걸까요? 그리고 우리는 이 키워드를 어떻게 이해하고 받아들여야 할까요?'unsafe', Borrow Checker를 '우회'하는 것인가? 일부 커뮤니티 유저들 사이에서는 'unsafe Rust'가 컴파일러의 핵심 안전 장치인 Borrow Checker를 비활성화한다고 ..

Rust 2025.02.09

녹슬지 않는 튼튼함, Rust의 강력한 타입 시스템: TypeScript 경험을 넘어선 새로운 세계

녹슬지 않는 튼튼함, Rust의 강력한 타입 시스템: TypeScript 경험을 넘어선 새로운 세계저는 오랫동안 JavaScript를 주력으로 사용해 왔습니다. 그러다 TypeScript를 접하게 되었는데요, JavaScript에서 흔히 겪던 황당한 버그들, 예를 들어 "false" 대신 false라고 잘못 써서 두 시간 동안 디버깅했던 경험들을 TypeScript가 해결해 주는 것을 보고 그 강력함에 감탄했었습니다. 마치 든든한 갑옷을 입은 기분이었죠. 그런데 최근 약 두 달 동안 Rust라는 언어를 배우면서 새로운 경험을 하고 있습니다. Rust의 타입 시스템은 마치 TypeScript가 JavaScript에 비해 훨씬 강력한 것처럼, TypeScript를 한 단계 뛰어넘는 수준이라고 느껴집니다. R..

Rust 2025.02.09

Rust 초보자의 경험: OOP 한계와 컴파일 시간 문제점 완벽 분석

Rust 초보자의 경험: OOP 한계와 컴파일 시간 문제점 완벽 분석Rust는 최근 몇 년간 많은 개발자들 사이에서 주목받고 있는 프로그래밍 언어입니다. 시스템 프로그래밍의 강력한 옵션으로 자리매김한 Rust는 특히 메모리 안전성과 성능 면에서 뛰어난 평가를 받고 있습니다. 이번 글에서는 Rust를 처음 접한 시스템 프로그래머의 시각에서 Rust의 장점과 단점을 심층적으로 분석하고, 커뮤니티 유저들의 다양한 의견을 통해 Rust의 현재와 미래를 살펴보겠습니다. Rust의 장점Cargo: 강력한 패키지 관리자Rust의 가장 큰 장점 중 하나는 Cargo입니다. C/C++과 같은 전통적인 시스템 언어에서 패키지 관리는 종종 복잡하고 귀찮은 작업이지만, Cargo는 이러한 문제를 단번에 해결해줍니다. Carg..

Rust 2025.02.09

리눅스 커널과 Rust의 갈등: Hector Martin 사퇴 이후의 미래와 과제

리눅스 커널과 Rust의 갈등: Hector Martin 사퇴 이후의 미래와 과제1. Hector Martin의 사퇴: 갈등의 시작과 본질 Hector Martin(일명 Marcan)의 리눅스 커널에서의 사퇴는 단순히 한 개인의 선택이 아니라, 리눅스 커뮤니티 내부의 깊은 갈등을 상징하는 사건입니다. 그는 Apple Silicon 기반 맥북에서 리눅스를 실행할 수 있도록 하는 Asahi Linux 프로젝트의 핵심 인물로, Rust 언어를 리눅스 커널에 도입하려는 Rust for Linux(R4L) 프로젝트에서도 중요한 역할을 해왔습니다. 하지만 최근 몇 달간, 그는 다른 유지 관리자들과의 갈등 속에서 점점 더 좌절감을 느끼게 되었습니다. 특히 이번 사태는 Hector가 소셜 미디어를 통해 자신이 겪었던 ..

Rust 2025.02.09

Rust로 간단한 CLI 유효성 검사 도구 만들기

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 2024.11.24

Rust 처음 배우기: TypeScript 개발자의 도전기

Rust 처음 배우기: TypeScript 개발자의 도전기안녕하세요! 프론트엔드 개발을 주로 하며 TypeScript를 사용하는 개발자입니다. 최근에 Rust를 배우기 시작했는데, 처음에는 어디서부터 시작해야 할지 막막했어요. 그래서 Rust를 처음 접하는 분들, 특히 TypeScript를 주로 사용하는 분들을 위해 이 글을 작성하게 되었는데요. Rust의 기초를 다루고 TypeScript와의 비교를 통해 더 쉽게 이해할 수 있도록 돕고자 합니다. 이 글이 Rust를 배우고자 하는 분들에게 도움이 되기를 바랍니다. Rust란 무엇인가?Rust는 메모리 안전성과 병행성을 보장하는 시스템 프로그래밍 언어인데요. Rust는 C/C++ 같은 저수준 언어의 성능을 가지면서도, 메모리 관리에서 발생할 수 있는 여러..

Rust 2024.10.21

Rust 강좌 8 - anymap

Rust 강좌 8 - anymap이번 글에서는 Rust의 anymap 크레이트에 대해 다룰 건데요. 이 크레이트는 Rust-http와 teepee로 유명한 Chris Morgan이 만든 것인데요. 이 크레이트는 약간 특이하고 흥미로운 컨테이너인 AnyMap 타입을 제공해요. AnyMap 타입은 일반적인 맵과는 다릅니다. 예를 들어, Rust의 HashMap은 K(키의 타입)와 V(맵에 저장된 값의 타입)에 의해 매개변수화된 제네릭 타입이에요. (여기에는 해시 함수(hasher) 매개변수도 있지만, 이는 여기에서는 관련이 없어요.) 반면, AnyMap 자체는 제네릭 타입이 아니에요. 내부적으로 HashMap을 사용하지만, 그 사실을 알 필요는 없어요. 개념적으로, AnyMap은 타입에서 값으로 매핑합니다...

Rust 2024.10.08

Rust 강좌 7 - itertools

Rust 강좌 7 - itertoolsitertools 크레이트는 Haskell과 Python의 itertools에서 영감을 받은 여러 유틸리티 함수와 매크로를 포함하고 있는데요. 이름에서 알 수 있듯이, 이는 반복(iteration)과 반복자(iterators)와 관련이 있습니다. itertools를 사용하려면, 다음과 같은 의존성 선언을 Cargo.toml에 추가하면 되는데요:[dependencies]itertools = "~0.0.4" 우리는 도우미 함수부터 시작해서 나중에 매크로를 다룰 건데요. foreach이 함수와 몇몇 다른 함수는 Itertools 트레이트에 포함되어 있어서, 모듈에 use itertools::Itertools를 추가해 범위에 넣어야 하는데요. foreach()는 개념적으로 ..

Rust 2024.10.08

Rust 강좌 6 -JSON과 함께 작업해볼까요?

Rust 강좌 6 -JSON과 함께 작업해볼까요?JSON은 현대 웹의 핵심 데이터 형식입니다. 자바스크립트 세계에서 비롯되어 많은 관심을 받았고, 현재는 데이터 교환 형식으로 웹 개발자의 첫 번째 선택인데요. 웹뿐만 아니라 한때는 자바스크립트 전용이었던 JSON 지원이 이제는 어디에서나 가능합니다. 많은 언어들이 표준 라이브러리에 JSON 파서를 포함하고 있고, 그렇지 않은 경우에도 누군가 이미 서드 파티 라이브러리를 만들어 놓았는데요. Rust의 경우, JSON 지원은 rustc_serialize::json 모듈에서 제공됩니다. 참고로, 이번 글에서는 웹, API, 요청 등에 초점을 두지 않았습니다. 이전에 hyper에 대한 글에서 JSON을 언급했지만, 이번에는 JSON으로 인코딩된 데이터가 어디에서..

Rust 2024.10.08