유럽에서 돌아오는 11시간의 비행 동안 아주 긴 보고서를 작성하며 시간을 보냈습니다. 처음에는 Slack 메시지로 시작했지만, 몇 페이지 분량의 문서로 변했습니다. Wi-Fi는 최악이었죠. 마침내 집에 도착한 후 컴퓨터가 강제로 재시작되었다는 사실을 깨달았습니다. Slack을 열었을 때, 초안은 사라져 있었습니다 :(
마지막 희망: Claude, 제발 나를 구해줘. 어떻게 해야 할지 모르겠지만 제발 시도해 줘.
Claude는 APFS 스냅샷(snapshots), Time Machine, Slack IndexedDB, 쓰기 전용 로그(write-ahead logs), 서비스 워커(service worker) / HTTP 캐시(caches), 로컬 스토리지(local storage), 앱 로그(app logs), 하이버네이션 이미지(hibernation image) 등을 확인했습니다... 아무것도 없었습니다. 모두 사라졌습니다.
하지만 그때... Claude는 저에게 Alfred가 설치되어 있다는 사실을 알아냈습니다. 그래서 Alfred가 SQLite에 보관하는 클립보드 스냅샷(clipboard snapshots)을 확인했습니다. 슬픈 소식은, Alfred의 클립보드 메모리는 24시간 후에 삭제된다는 것이었습니다. 매우 공격적인 보관 정책(retention policy)이죠. 하지만! SQLite가 DELETE를 실행할 때, 실제로 아무것도 삭제되지 않습니다. 단지 페이지를 재사용 가능한 상태로 표시할 뿐, 물리적 바이트(physical bytes)를 덮어쓰지는 않습니다. 그래서 Claude는 DB의 로우 스캔(raw-scan)을 수행하고, Alfred의 데이터 포맷을 역공학(reverse eng)하며, 타임스탬프(timestamp)가 포함된 부분을 찾아내고