C.W.K.
Stream
Lesson 01 of 04 · published

파생 vs 권위

~12 min · derived-vs-authoritative, core-bet, recovery, architecture

Level 0불 꺼진 심지
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"'어느 복사본이 진짜야?' 에 대한 답은 언제나 하나여야 해. 둘이 되는 순간, 넌 버그를 지은 거야."

모든 시스템이 답해야 하는 질문

시스템 속 아무 데이터나 가리키고 물어: 이게 진실이야, 진실의 복사본이야? 진실을 쥔 저장소는 권위 있어. 복사본을 쥔 저장소 — 버리고 다시 만들 수 있는 — 는 파생이야. 잘 지어진 시스템은 쥔 모든 바이트가 둘 중 뭔지 알아. 부서지기 쉬운 시스템은 아무도 못 답하는 곳들이 있어.

파일을 옮기면 그 답이 부서져

이제 옮겨서-모으기 함정이 여기 뭘 하는지 봐. 옮기기 전엔 원본이 권위 있어 — 끝. gather 폴더로 복사하고 나면, 같은 내용에 진짜라는 주장이 동등한 파일이 둘이야. 하나를 편집해; 다른 하나는 이제 틀렸는데, 아무것도 그걸 복사본이라 표시 안 해. 모호함을 제조한 거야. 6개월 뒤 같은 에세이의 두 버전을 발견하고, 어느 걸 남기려 했는지 진짜로 못 가려. 옮기기는 네 글을 모은 게 아냐. 권위를 녹여버린 거야.

선언은 선을 밝게 지켜

레지스트리 방식은 그 선을 절대 안 넘어. 원본은 복사되지 않고 — 가리켜질 뿐이라 — 권위로 남아. Lantern 이 그것들로 짓는 전부(chunk 테이블, FTS 인덱스, 벡터)는 명백히 파생이야: 아무것도 진실이 아니고, 전부 재구축 가능하고, 어느 게 원본과 어긋나면 정의상 원본이 이겨. 두 개가 서로 진짜 복사본이라 주장하는 순간이 절대 없어.

파생 상태를 패치하지 마 — 재구축해. 파생 저장소(인덱스, 캐시, 비정규화 테이블)가 소스와 어긋나면, 고치는 방법은 바이트 단위로 화해시키는 게 아냐. 버리고 권위 있는 소스에서 다시 만드는 거야. 파생 상태를 패치하는 게, 미묘하고 영구적인 오염이 태어나는 곳이야.

이건 Lantern 보다 커

캐시, 검색 인덱스, materialized view, 비정규화 테이블, 썸네일, 컴파일된 에셋 — 전부 파생이야. 규율은 어디서나 똑같아: 파생으로 표시하고, 절대 두 번째 진실 소스가 되게 두지 말고, 수리가 아니라 재구축으로 복구해. Lantern 의 '인덱스는 버릴 수 있고, 원본은 성역' 자세 전체가 그냥 이 한 생각을, 예외 없이 쥔 거야.

Code

진실의 소스에서 재구축으로 복구해·python
# Recovery model: purge-and-rebuild, never patch-and-reconcile.

def heal_corpus(corpus_id: str) -> None:
    # WRONG (the temptation): crawl the index, diff against the files,
    # and surgically patch the rows that look stale. This is where
    # corruption hides — one missed edge case and the index lies forever.
    #
    # RIGHT: the index is derived, so throw it away and rebuild it.
    delete_all_chunks(corpus_id)          # drop the derived state
    for doc in walk_declared_roots(corpus_id):
        chunks = chunk(read(doc))          # re-derive from the authoritative file
        insert_chunks(corpus_id, doc, chunks)
    # The originals were never touched. The index is now provably correct.

External links

Exercise

네 셋업에서 같은 걸 두 벌 두는 곳을 찾아(동기화된 노트, 백업 폴더, export 된 버전). 각각 지금 결정해: 어느 게 권위 있고 어느 게 파생이야? 어느 쌍에서든 망설이면 — 둘 다 똑같이 '진짜' 로 느껴지면 — 잠복 버그를 찾은 거야. 파생된 게 사라지면 권위 있는 것에서 어떻게 재구축할지 적어.
Hint
테스트: 한 복사본을 지우면, 다른 것에서 정확히 재생성할 수 있어? 그렇다면 그건 파생이고 잃어도 안전해. 어느 걸 지울지 못 가리면, 그게 Lantern 이 절대 안 만들도록 설계된 그 모호함이야.

Progress

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

댓글 0

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

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