최대한 미니멀한 뷰 타입 · 아기 걸음
Rust의 뷰 타입(View Types) 제안은 메서드가 접근하는 구조체 필드를 명시적으로 제한하여 빌림 검사기(borrow checker)의 정확성을 높이는 기능입니다.
기존 Rust에서는 구조체의 일부 필드를 빌릴 때, 메서드가 구조체 전체를 변경할 수 있다고 간주해 빌림 충돌이 발생하는 문제가 있는데, 뷰 타입은 이 문제를 해결하기 위해 메서드 시그니처에 접근 가능한 필드 집합을 명시합니다. 예를 들어, &mut self {statistics}와 같이 선언하면 해당 메서드는 statistics 필드만 변경 가능하다고 컴파일러에 알려줍니다.
이 방식은 런타임 동작에는 영향을 주지 않고, 단지 컴파일 시점에 빌림 검사기의 필드 단위 추적을 가능하게 하여, 기존에 불가능했던 코드 패턴을 자연스럽게 허용합니다. 또한, 뷰 타입은 프라이버시 규칙을 준수하여 접근 권한이 없는 필드를 명시할 수 없도록 설계되었습니다.
현재는 명시적 필드 지정이 필요하지만, 향후 필드 접근 추론(row polymorphism 등) 기능 추가도 고려 중이며, 초기 도입은 주로 비공개(private) 메서드에서 발생하는 빌림 문제 해결에 집중할 계획입니다.
이 제안은 Rust 빌림 검사기의 복잡도를 크게 높이지 않으면서도, 실용적인 코드 작성 편의성을 제공할 수 있어 빠른 시일 내에 실험적 기능으로 도입 가능하다고 평가됩니다.