동시성 버그 중 가장 악명 높은 데이터 레이스는 보통 런타임에야 터집니다. 이 글은 한발 더 나아가, 두 스레드가 같은 메모리를 동시에 건드릴 가능성 자체를 '타입 레벨'에서 증명해 차단하는 ruxe의 접근을 소개합니다. 핵심은 '분리성(disjointness)'을 타입으로 인코딩하는 것입니다. Rust가 소유권과 빌림(aliasing XOR mutability)으로 안전성을 보장한다면, 여기서는 데이터를 서로 겹치지 않음이 보장된 조각으로 쪼개고, 그 사실을 컴파일러가 검증합니다. 만약 접근 영역이 겹칠 여지가 있으면 프로그램은 실행은커녕 컴파일에 실패합니다. 즉 버그를 '잡는' 게 아니라 애초에 표현 불가능하게 만드는 것이죠. 시사점은 명확합니다. 테스트나 락으로 사후 방어하는 대신, 타입 시스템에 불변식을 새겨 넣으면 전체 클래스의 버그가 사라집니다. 동시성 코드를 다루는 개발자라면 'compile-time safety'의 다음 지평을 엿볼 수 있는 글입니다.