Rust: 빈 타입이 바닥 타입은 아닐 때
역량 개발 · GeekNews · 2026.09.10
Rust 프로그래밍 언어의 ! (never) 타입에 관한 심도 있는 기술 분석 내용을 소개해 드립니다. 최근 Rust 1.100 버전에서 ! 타입을 모든 타입 표기에 허용하는 변경 사항이 예정되어 있어, 이 타입의 정확한 의미를 파악하는 것이 매우 중요해졌습니다. 많은 분이 ! 타입을 모든 타입의 하위 타입인 '바닥 타입(Bottom Type)'으로 혼동하시곤 하지만, Rust의 하위 타입 관계는 수명(Lifetime)과 밀접하게 연관되어 있어 !를 '빈 타입(Empty Type)'으로 이해하는 것이 더 정확합니다. 이 글에서는 Scala의 Nothing 타입과의 비교, 함수의 공변성(Covariance) 및 반공변성(Contravariance), 그리고 Haskell의 지연 평가 방식이 빈 타입을 다루는 차이점 등을 통해 Rust 타입 시스템의 정교함을 상세히 설명하고 있습니다.