"재생성할 수 있는 건 전부 소유해. 못 하는 그 하나는 참조해."
쌓아두기 본능
엔진을 지을 때 자기 완결적으로 만들고 싶은 강한 끌림이 있어: 엔진은 필요한 전부를 소유해야지. 영상을 자기 저장소로 복사하면, 이제 완결이고, 이식 가능하고, 아무것에도 안 의존해. Recall 은 거부하고, 그 거부가 가장 깔끔한 선 중 하나야: 스토리지가 원본 미디어를 소유해. Recall 은 경로, 메타데이터, hash, 그리고 자기가 파생하는 증거를 저장해 — 아카이브를 자기 DB 로 절대 복사 안 해.
쌓아두기 비용이 즉시 쌓여. 방금 몇 기가짜리 파일 수천 개를 중복했으니, 이제 저장하고, 백업하고, 동기화할 두 번째 아카이브가 있어. 그리고 마지막 게 치명적이야: 사본이 둘이면 어느 사본이 진짜인지의 상시 질문 — 트랙 2 가 동기화 폴더에서 받아들이길 거부한 바로 그 모호함. 자족감 하나와 맞바꿔 그 버그 부류 전체를 import 한 거야.
훔칠 만한 뒤집기
Recall 이 실제로 뭘 쥐고 뭘 가리키는지 봐, 그 분리가 본능의 반대니까:
- 증거, release, segment, index 를 소유해 — 전부 잃어도 재생성할 수 있는 것들(다시 전사, 다시 투영, 다시 색인).
- 원본 footage 를 참조해 — 누구도, 영원히, 재생성 못 하는 유일한 산물. 그 파일이 사라지면, 어떤 연산도 못 되돌려.
그게 뒤집기야: 엔진은 재구축할 수 있는 전부를 소유하고 못 하는 하나는 그냥 참조해. 거꾸로 들리다가 논리를 보면 알아 — 대체 불가능한 건 job 을 돌리고, 스키마를 바꾸고, 쓰기 중에 서비스 매니저한테 재시작당하기도 하는 애플리케이션이 아니라, 바이트를 안전히 지키는 게 일 전부인 소유자를 받을 자격이 있어. 스토리지는 저장을 잘해. 엔진은 의미를 잘해야 하고. 엔진을 자기가 재창조 못 하는 그 하나의 관리인으로 만들지 마.
tombstone: 기억이 파일보다 오래 살아
이 분리가 조용히 뭉클한 결과를 낳아. 스캔이 영상이 살던 데 더는 없다는 걸 찾으면, Recall 은 record 를 안 지워 — 사라진 날짜와 함께 missing 으로 표시해. 나중 스캔이 다시 찾으면 표시가 지워져. 그리고 그동안, tombstone 된 그 영상은 검색 가능하고 export 가능하게 남아. 그냥 작업 큐에 못 넣고 live 소스 미디어로 못 열 뿐이야, 바이트가 없으니까.
기억 엔진한테 그게 뭘 뜻하는지 앉아서 생각해봐. 파일을 잃어도, 기억은 지켜: transcript, 타임스탬프, 요약, 뭐라고 했고 언제였는지 — 전부 살아남아, 증거는 파생돼서 소유됐고 바이너리는 참조만 됐으니까. 더는 안 가진 영상을 여전히 검색하고 거기서 뭐라고 했는지 정확히 읽을 수 있어. 그냥 못 볼 뿐이야. 그게 위로상이 아니라; 아키텍처가 두 종류의 상실에 대해 정직하고, 기록과 footage 가 같은 거라고 척하길 거부하는 거야.