"내가 쓴 건 다 어딘가에 있어. 그 '어딘가' 가 문제야." — 아빠
흩어진 10년
Lantern 이 지어진 진짜, 안 멋진 문제가 여기 있어. 어떤 사람이 10년을 써. 그 글은 깔끔한 한 곳에 쌓이지 않아 — 글쓰기가 일어난 곳 어디든 내려앉아: 가이드 폴더, 책 프로젝트 셋, 발행 에세이 더미, 시장 논제 vault, 자기 디렉토리에 든 원고, 웹사이트 콘텐츠 트리. 여섯, 여덟, 열두 집, 각자 자기 구조가 있고, 각자 혼자선 완벽하게 합리적이야. 합치면 진짜고, 가치 있고, 통째로는 사실상 검색 불가능한 작업 몸통을 이뤄.
뻔한 답이 함정이야
본능은 즉각적이고 틀렸어: "한 폴더에 모아." 전부 ~/all-my-writing/ 에 복사하고 검색 도구를 거기 겨눠. 진전처럼 느껴져. 이빨 셋 달린 함정이야:
- 모든 참조를 깨. 원래 위치를 가리키던 링크, import, 빌드 도구가 이제 아무것도 안 가리켜.
- drift 하는 두 번째 복사본을 만들어. 원본을 편집하면 모은 복사본이 낡아. 이제 진실이 둘이고, 뭐가 최신인지 알 방법이 없어.
- 인덱스를 위해 살아 있는 repo 를 재편성해. 꼬리가 개를 흔들어: 검색 도구가 게으를 수 있게 작동하는 프로젝트가 뒤틀려.
찾을 수 있게 하려고 파일을 옮기는 건, 책 페이지를 다 뜯어서 한 선반에 올리는 거랑 같아. 이제 같이 있고, 이제 망가졌어.
함정은 옮기기지, 모으기가 아냐. 모으는 건 옳은 목표야. 옮기는 건 틀린 메커니즘이야. Lantern 설계 전체가 그 둘을 분리하는 데 달려 있어 — 바이트 하나 안 옮기고 모을 수 있고, 다음 트랙 전체가 어떻게 하는지에 관한 거야.
진짜 답, 한 문장으로
모으는 문제에 대한 Lantern 의 답: 원본은 사는 곳에 정확히 남고, 레지스트리와 보존 저장소가 그 '한 곳' 이 돼. 네 글이 이미 어디 있는지 선언해. 엔진은 그곳들을 걸어 다니며 읽고, 색인하고, 절대 건드리지 않아. 파일은 그런 일이 일어난 줄도 몰라. 모으기는 진짜고, 방해는 0 이야. 그게 베팅 전부고 — 이 퀘스트의 나머지는 그 베팅이 값을 치르게 하는 데 뭐가 필요한지야.