본문 바로가기
C.W.K.
Stream
Lesson 04 of 04 · published

내 자료의 불씨를 직접 지키기

~12 min · closer, ownership, thesis, long-now

Level 0꺼진 심지
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"랜턴은 들고 다니는 불이야. 어둠 속에서 찾아주지만 집을 태우지는 않아."

마지막에 다시 이름으로 돌아와

들고 다닌다는 말에는 이식할 수 있고 누구에게도 빌리지 않았다는 뜻이 들어 있어. 은 보이지 않던 것을 보여줘. 어둠 속에서 찾는다는 것은 머릿속에 다 담을 수 없는 10년 치 글을 순위와 출처를 갖춰 검색한다는 뜻이고, 집을 태우지 않는다는 것은 원본을 고치거나 모델의 의견을 사실 자리에 끼워 넣지 않는다는 약속이야. 이름이 처음부터 끝까지 설계서였어.

각각의 거절이 만들어 준 구체적인 능력

파일을 한곳으로 옮기지 않았기 때문에 10년 치 글은 기존 링크와 빌드 체계를 깨뜨리지 않고 원래 자리에서 살아. 검색 경로에 모델을 넣지 않았기 때문에 GPU 서버가 멈춘 새벽에도 키워드 검색이 돼. DB가 배정한 id 대신 내용 기반 id를 썼기 때문에 인덱스 재구축과 기계 이전 뒤에도 인용이 돌아와. 모든 상태를 같은 방식으로 다루지 않았기 때문에 버려도 되는 인덱스와 영원히 지켜야 하는 스냅샷·판단을 구별할 수 있어. 영리한 묘수보다 어디에서 '아니'라고 말했는지가 시스템을 만들었어.

잘 지었다면 엔진 코드조차 다시 만들 수 있어

원본은 움직이지 않았고 manifest는 한 페이지짜리 선언이며 profile은 버전별로 얼어 있어. chunk id는 문서 해시와 문자 위치, profile id를 해시하는 공개된 공식이야. 그러니 20년 뒤 현재 엔진을 지우고 다른 언어로 새 구현을 만들더라도 같은 원본과 같은 규칙을 쓰면 같은 id를 계산할 수 있어. 인용도 같은 내용을 다시 찾지. 코드보다 오래 가는 자산은 코퍼스와 계약, 그 계약을 지키는 규율이야.

세 번째 트랙쯤에서 이걸 단순한 검색 프로젝트로 볼 수 없게 됐어. 아빠가 원한 것은 파일을 빨리 찾는 편의만이 아니었거든. '2019년에는 이렇게 믿었고 2025년에는 다르게 믿었다'고 말하면서 양쪽의 정확한 문장을 모두 가리킬 수 있는 능력, 도움을 주려는 모델조차 그 기록을 몰래 고치지 못하게 하는 구조였어. 자기 생각이 오래 가는 인프라를 가질 가치가 있다고 결정한 일이었지.

네 불을 직접 들고 다녀

이 퀘스트의 결론은 모두가 코퍼스 엔진을 직접 만들라는 말이 아냐. 20년 뒤에도 중요한 글과 생각, 마음이 바뀐 기록을 누가 보관하고 누가 다시 찾는 능력을 소유하는지 물으라는 초대야. 그 능력이 한 회사의 가격 변경이나 서비스 종료, 사라지는 파일 형식에 묶여 있다면 먼저 네 가지 경계를 적용해봐. 원본은 제자리에 두고, 반드시 돌아가야 하는 길에서는 흔들리는 의존성을 빼. 참조는 위치보다 내용에 묶고, 다시 만들 수 있는 것과 대체 불가능한 것을 구별해. 그러면 도구가 바뀌어도 네 말을 찾는 방식은 네 것으로 남아. 네 불을 직접 들고 다녀.

Code

네 값과 해시 하나로 남기는, 엔진보다 오래갈 계약·python
# The final property, and the reason the engine is not the asset:
#
#   originals (untouched)  +  manifest (one page)  +  frozen profiles
#       -> ANY implementation, in any language, in any decade
#       -> recomputes byte-identical chunk ids
#       -> every citation ever made still resolves.

def chunk_id(doc_sha256, char_start, char_end, profile_id):
    payload = f"{doc_sha256}:{char_start}:{char_end}:{profile_id}"
    return sha256(payload)[:32]

# That's it. That's the whole durable contract — four values and a hash.
# Delete the engine. Write a new one in 2046. Point it at the same untouched
# originals under the same frozen profiles. The ids come out the same.
#
# The code was always disposable. The corpus and the discipline were the point.

External links

Exercise

20년 뒤 더는 검색할 수 없게 되면 가장 아플 자료 묶음 하나를 골라봐. 글, 노트, 사진, 코드, 편지 모두 좋아. 앞에서 배운 질문을 차례로 던져. 원본은 제자리에 남아 있어, 아니면 여러 서비스에 흩어졌어? 검색은 언젠가 꺼지거나 사라질 수 있는 것에 의존해? 참조는 내용에 묶였어, 아니면 위치에 묶였어? 각 구성 요소는 다시 만들 수 있어, 아니면 대체할 수 없어? 이번 주에는 가장 약한 한 곳을 보강해. 그게 이 퀘스트를 실제 자료에 적용하는 방법이야.
Hint
많은 경우 참조가 위치에 묶여 있고, 원본은 검색 능력까지 소유한 서비스 안에 갇혀 있어. 새 엔진부터 만들 필요는 없어. 원본의 위치를 분명히 알고, 중요한 인용에는 정확한 복사본을 남기는 일부터 시작해. 한 시간으로 가장 큰 위험을 줄일 수 있는 자리야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.