러스트 언어가 2026년부터 2027년까지의 로드맵을 통해 타입 시스템에 중대한 변화를 예고했습니다. 핵심은 특정 타입이 메모리에서 이동(move)되거나 소멸자(destructor)가 실행되지 않고 잊히는(forget) 것을 막는 새로운 특성(trait)을 도입하는 것입니다. 이는 현재 러스트가 모든 타입이 이동 가능하고 잊힐 수 있다고 가정하는 데서 발생하는 여러 복잡성을 해결하기 위한 시도입니다.
현재 러스트는 자기 참조(self-referential) 타입을 안전하게 다루기 위해 `Pin`이라는 개념을 사용하지만, 이는 복잡성을 가중시키고 리눅스 커널과 같은 특정 환경에서는 안전한 구현이 어렵다는 문제가 있었습니다. 또한, `mem::forget` 함수를 통해 소멸자 실행을 건너뛸 수 있어, 트랜잭션(Transaction)이나 스코프 태스크(Scoped Task) 핸들처럼 소멸자 실행이 반드시 필요한 타입의 안전성을 보장하기 어려웠습니다. 새로운 `Move` 특성은 타입 자체에 이동 불가 속성을 부여하여 `Pin`의 복잡성을 줄이고, `Forget` 특성은 소멸자 실행을 보장함으로써 이러한 문제들을 해결할 계획입니다.
이러한 변화는 러스트의 비동기 프로그래밍(async programming) 패러다임에 큰 영향을 미칠 것으로 보입니다. 특히, 안전한 스코프 태스크 생성(safe scoped spawn)과 같은 현재로서는 구현하기 어려운 패턴들을 가능하게 하여, 개발자들이 더욱 안전하고 효율적인 비동기 코드를 작성할 수 있게 될 것입니다. 이는 러스트가 시스템 프로그래밍 분야에서 더욱 강력한 입지를 다지고, 복잡한 저수준(low-level) 프로그래밍 환경에서도 개발자 경험을 개선하는 중요한 전환점이 될 것입니다. 이번 개선은 `Sized` 특성 계층 구조(hierarchy) 작업과 유사하게, 기존의 보편적 가정을 완화하여 언어의 유연성과 확장성을 높이는 방향으로 진행됩니다.