Rust로 빠르고 안전한 타입추론 구현 Rc와 RefCell의 실전 설계간단하고 빠르면서도 안전한 타입추론을 Rust에서 구현해보면 꽤 놀랍더라고요.핵심은 'Rc'와 'RefCell' 조합인데요.레퍼런스 카운팅으로 값 복사를 빠르게 처리하고, 내부 가변성으로 대입을 유연하게 처리하는 그림이 깔끔하죠.이번 글은 부울과 함수형만 있는 아주 작은 타입 시스템에서 시작해요.여기에 타입변수를 얹고, 'occurs-check'와 'unify'를 구현한 뒤, 성능을 제대로 끌어올리는 'union-by-rank'까지 다뤄보려는 거예요.조금씩 쌓아가면 코드가 의외로 간단해지거든요.타입과 타입변수의 정의먼저 타입을 정의해볼 텐데요.부울 'Bool'과 함수형 'T → T'만 있는 최소한의 타입부터 시작하죠.use std::..
러스트 트레잇 완전 정복 상속, 조합, 그리고 다형성의 비밀러스트의 심장, 트레잇(Trait)을 만나다러스트(Rust)를 배우다 보면 필연적으로 '트레잇(Trait)'이라는 거대한 산과 마주하게 됩니다.다른 언어의 인터페이스(Interface)나 추상 클래스(Abstract Class)와 비슷해 보이면서도, 어딘가 다른 독특한 철학을 담고 있는 이 개념은 러스트의 강력함과 안정성을 지탱하는 가장 핵심적인 기둥입니다.트레잇은 단순히 '공통된 동작을 정의'하는 것을 넘어, 러스트가 어떻게 제로 코스트 추상화(Zero-Cost Abstraction)를 달성하고, 메모리 안전성을 보장하면서도 유연한 다형성(Polymorphism)을 구현하는지를 이해하는 열쇠입니다.이 글에서는 트레잇의 기본적인 정의부터 시작하여..
대규모 러스트(Rust) 프로젝트, 효과적으로 구성하는 방법 알아볼까요?그레이스 콜린스 (Grace Collins) 솔루션 엔지니어 (Solutions Engineer) · 립셀 (Leapcell) 러스트(Rust)를 공부하다 보면 프로젝트 파일 구조가 이게 맞나, 표준적인 건가 헷갈릴 때가 많죠.이 글에서는 가장 기본적인 main.rs와 lib.rs부터 시작해서, 큰 규모의 러스트(Rust) 프로젝트는 코드를 어떻게 구성하는지 함께 탐험해 볼까요?러스트(Rust) 프로젝트 구조크레이트 (Crate)크레이트(Crate)는 러스트(Rust)의 가장 기본적인 컴파일 단위인데요.각 크레이트(Crate)는 독립적인 컴파일 대상이며, 라이브러리 (lib 크레이트(Crate)) 또는 실행 파일 (바이너리 크레이트(..