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