"/Users/you/report.pdf 라는 문자열은 주소지 사람이 아냐. 주소는 재배정돼."
같은 경로, 다른 파일
순진한 파일 매니저를 잡아먹는 버그가 여기 있어. 파일 하나 행을 보여줘. 사용자가 잠깐 시선을 돌려. 그 틈에 딴 프로세스가 그 파일을 지우고, 완전히 새롭고 무관한 파일을 정확히 같은 경로에 써 — 같은 이름, 같은 폴더. 사용자가 네 행에서 '휴지통으로 이동' 을 클릭해. 네 앱이 행동을 경로 문자열로 풀었으면, 방금 사용자가 본 적도 없는 파일을 휴지통에 넣은 거야. 경로는 같았고; 파일은 아니었어.
정체성은 북마크랑 리소스 ID 에 살아
macOS 는 경로보다 나은 핸들을 줘. 북마크는 이름변경이나 이동을 견딜 수 있는 질기고 재배치 가능한 참조야. 리소스 식별자 (URL 리소스 값 통해)는 이름이 아니라 실제 파일 객체에 묶여. Waygate 는 둘 다 LocationReference 로 감싸고 그걸 정체성으로 취급해 — 경로 문자열은 표시 힌트랑 최후 폴백으로만 남겨.
행동 전에 다시 검증해
좋은 참조를 쥐는 건 규칙의 절반일 뿐이야. 나머지 절반: 어떤 변형이든 전에, Waygate 는 다시 검증해 — 참조를 살아있는 파일시스템에 대해 풀고 볼륨 정체성, 리소스 정체성, 관련 전제조건이 여전히 성립하는지 확인해. 그러고서야 오퍼레이션이 진행돼. 더 이상 같은 파일로 안 풀리는 경로는 행동되지 않아; 표시(flag)돼.
경로 문자열은 절대 변형을 승인 안 해. Waygate 는 북마크랑 리소스 식별자를 갖고, 그걸 정체성으로 취급하고, apply 시점에 살아있는 URL·볼륨·전제조건을 다시 검증해. 행 위의 이름은 사람용 라벨이지, 엔진용 핸들이 아냐.
재사용된 경로 삭제. 파일 도구에서 제일 고약한 데이터 손실 버그는 지금 표시된 것과 다른 파일을 가리키는 경로에 행동하는 거야. SMB 랑 착탈식 볼륨이 더 나쁘게 만들어 — 공유가 재연결되면 정체성이 어긋나. 다시 검증을 건너뛰는 오퍼레이션은 불운한 레이스 하나만큼 엉뚱한 걸 휴지통에 넣기 직전이야.