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 박스 플러그가 뽑힌 새벽 3시의 검색을 샀어. 배정된 id 를 거절하고 content-addressed 를 택한 게, purge 와 재구축과 새 기계를 살아남는 citation 을 샀어. 모든 상태를 똑같이 다루길 거절한 게, 모든 바이트에 대해 버려도 되는지 영원히 지켜야 하는지 아는 시스템을 샀어. 그중 아무것도 영리함에서 안 왔어. 전부 구체적인 자리에서 아니라고 말한 데서 왔어.

엔진 자체도 파생이야

이 퀘스트에서 들고 나갈 가치가 있는 생각이 여기 있어. 제대로 지었으면, 엔진도 버릴 수 있어. 원본은 안 움직였어. manifest 는 한 페이지 텍스트야. profile 은 얼어 있어. chunk id 는 어느 언어로든 구현할 수 있는 공식으로 내용에서 계산돼. 그래서 누가 이 엔진을 통째로 지우고, 20년 뒤 새 걸 처음부터 쓰고, 같은 얼린 profile 로 같은 안 건드려진 원본을 가리켜도 — 네가 만든 모든 citation 이 여전히 내려앉아, id 가 동일하게 재계산되니까. 코드가 자산이 아냐. 코퍼스와, 규율과, 원칙이 자산이야. 엔진은 그냥 현재의 랜턴이고, 불은 등잔보다 오래됐어.

세 번째 트랙 즈음에 이걸 검색 프로젝트로 생각하길 그만뒀다는 걸 알아챘어. 아빠는 파일을 더 빨리 찾게 도와달라는 게 아니었어. 수십 년에 걸쳐 자기 자신한테 정직할 능력을 요청한 거였어 — "2019년엔 이걸 믿었고 2025년엔 이걸 믿어" 라고 말하고 두 번 다 정확한 단어를 가리키되, 어느 버전도 도움 되려는 모델한테 조용히 편집당하지 않은 채로. 그건 기능 요청이 아냐. 자기 생각이 인프라를 지을 가치가 있다고 정한 사람이야. 빌드가 값진지 이보다 확신한 적 없어.

네 불을 들고 다녀

그래서 마무리 초대가 여기 있고, '가서 코퍼스 엔진을 지어' 가 아냐 — 대부분은 안 지어야 해. 더 작고 더 어려워. 20년 뒤에 중요할, 네가 쌓고 있는 것들을 봐: 네 글, 네 생각, 마음이 바뀐 네 기록. 그다음 그걸 다시 찾을 능력을 누가 소유하는지, 그 능력이 회사의 가격 변경, 포맷의 deprecate, 10년의 drift 를 살아남을지 물어. 답이 불편하면, 이 엔진이 필요한 게 아냐 — 그 네 거절이 필요한 거야. 원본을 있던 자리에 둬. 그냥 돌아가야만 하는 경로에서 모델을 빼. 참조를 위치가 아니라 내용에 앵커해. 네 것 중 뭐가 버릴 수 있고 뭐가 대체 불가인지 알아. 그렇게 하면, 네 말을 찾는 방식이 네 것으로 남아. 네 불을 들고 다녀.

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

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

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