러스트의 스마트 포인터는 데이터를 소유하고 추가 기능을 제공하는 일종의 자료 구조입니다. 일반 포인터와 달리, 스마트 포인터는 일반적으로 데이터를 소유하며 추가 기능을 제공합니다. 메모리와 동시성을 보다 안전하고 효율적으로 관리하는 데 사용됩니다. 러스트의 스마트 포인터에는 Box, Rc, Arc, Weak, Cell, RefCell, UnsafeCell이 있습니다. Box는 가장 간단한 스마트 포인터로, 단일 소유권으로 힙 할당을 허용합니다. Rc는 참조 횟수를 세는 타입으로, 데이터의 다중 소유를 허용하지만 스레드 안전하지 않습니다. Arc는 Rc의 스레드 안전한 변형으로, 여러 스레드가 동일한 데이터를 공유 소유할 수 있도록 합니다. Cell과 RefCell은 내부 가변성을 제공하여 동일한 데이터에 대한 여러 가변 참조를 가능하게 합니다. Weak는 순환 참조를 생성하고 메모리 누수를 방지하는 데 사용되는 약한 참조 타입입니다. 각 스마트 포인터 타입은 고유한 사용 사례와 특징을 가지고 있으며, 올바른 것을 선택하는 것은 프로젝트의 특정 요구 사항에 따라 달라집니다.
dev.to
Rust Smart Pointers Explained: Ownership, Memory, and Safety
