unsafe rust

unsafe는 검사를 끄는 문법이 아니라 증명 책임을 개발자에게 넘긴다

원시 포인터, FFI, 전역 mutable 상태를 다룰 때 안전 불변식을 명시해야 합니다.

why

필요성

safe API로 표현할 수 없는 FFI, 성능, 원시 메모리 접근인지 확인합니다.

invariant

불변식

포인터 유효성, aliasing, 수명, 초기화 상태를 주석과 API로 고정합니다.

boundary

격리

unsafe 블록을 작은 함수 안에 가두고 바깥에는 safe 인터페이스를 제공합니다.

verify

검증

테스트, miri, sanitizer로 런타임에서 드러나는 UB 위험을 보강합니다.