"여행은 계속 고치는 문서가 아냐. 다 살아남을 자격이 있는 서로 다른 진실 넷이야."
덮어쓰려는 본능
여행을 모델링하는 자연스러운 방법은 계속 고치는 record 하나야. plan을 쓰고, 바뀌면 plan을 갱신하고, 끝에 가면 plan이 현실을 반영하고. 그 본능은 단정해 보이는데 기억 엔진한텐 조용히 파국이야. 고칠 때마다 이전 진실이 파괴되거든. Waystone은 거부해. journey는 서로 뚜렷한 시간 state 넷으로 유지되고, 각자 따로 보존돼. 출발 plan, 이후 revision, 실제 event, 그리고 나중의 reflection.
넷
- Plan (baseline). 아빠가 출발 때 의도한 것. logging 시작 순간 얼려져서 '우리가 하려던 것'이 절대 안 사라져.
- Revision. 도중에 계획이 어떻게 바뀌었는지. 각각 위에 얹히는 immutable 버전이라, 최신 것만이 아니라 의도가 바뀐 순서까지 읽혀.
- Actual. 실제로 무슨 일이 있었는지. 산 그대로의 날이랑 event랑 breadcrumb, 누구도 최종 형태를 알기 전에 증거로 잡힌 것들.
- Reflection. 어떻게 기억됐는지. 여행이 끝나고 의미가 가라앉은 뒤에 쓰는 회고적 읽기.
왜 넷이 하나를 이겨
state 넷을 유지하는 건 하나보다 일이 많고, 그 보상이 이 엔진이 존재하는 이유 전부야. 넷 다 있어야만 여행을 복리로 만드는 질문을 던질 수 있어. 계획했다가 버린 게 뭐야? 계획이 언제 바뀌었고, 왜? reflection이 현실이랑 맞았어, 아니면 기억이 곱게 순화했어? 고칠 수 있는 record 하나는 이 중 아무것도 못 답해. 고칠 때마다 질문에 필요한 증거를 덮었으니까. 네-state 모델이 곧 durable-memory 문장을 손에 잡히게 만든 거야. 구조화된 state가 durable한 건, 바로 현재가 과거를 못 덮게 막기 때문이거든.