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

에디터를 다시 짓지 마

~11 min · rekindle, round-trip, prose, boundary

Level 0표식 없는 길
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"로깅엔 진짜 에디터가 필요해. Waystone은 하나 있어. 그냥 다른 repo에 살 뿐이고, 그걸로 됐어."

두 번째 에디터의 유혹

여행 로깅은 쓰기를 뜻하고, 쓰기는 에디터를 뜻해. 뻔한 수는 하나 짓는 거야. Waystone에 괜찮은 markdown 박스, autosave, 약간의 포맷팅. 그리고 그게 정확히 도메인 엔진이 형제의 더 나쁜 사본으로 흘러가기 시작하는 방식이야. 성숙한 에디터는 텍스트 박스가 아냐. autosave, 문서 history, 첨부, undo, 입력기 처리, 그리고 누가 이미 제대로 해놓은 백 가지 디테일이야. Waystone은 두 번째를 짓길 거부해. 산문은 가족의 글쓰기 에디터 Rekindle 거고, Waystone은 거기로 왕복해.

소유 분리가 엄격해

선이 정확히 그어져. Waystone이 날짜·장소·itinerary·route·예약·상태·결정·구조화된 여행 fact에 canonical. Rekindle이 산문 본문이랑 글쓰기 history에 canonical. 일일 로그를 Rekindle로 보내서 제대로 쓰고, 최신 revision을 pull해서 Waystone projection을 갱신해. 경계를 넘는 건 에디터 사본이 아냐. 링크야. 문서의 안정된 ID, kind, revision, content hash, 마지막 sync 시간. 파일명이랑 title은 mutable 표현이고, 안정된 ID가 정체성을 실어.

왕복은 divergence를 감지해야 해

어떤 두-시스템 왕복이든 위험한 부분은 양쪽이 다 바뀐 순간이야. 순진한 답인 last write wins는 누군가의 작업을 조용히 파괴해. Waystone의 규칙은 왕복 sync가 갈라진 편집을 조용히 resolve하는 대신 감지해야 한다는 거야. '이 두 버전이 안 맞아, 어느 걸 원해?'를 드러내는 게 조용히 하나 골라 다른 하나를 잃는 것보다 나아. 패턴을 봐. plan이랑 breadcrumb이랑 baseline을 다스리는 그 덮기-거부가 형제 경계에서 또 나타나. 조용한 last-write-wins는 회고적 rewrite의 cross-repo 버전이야.

금지된 지름길은 '그냥 시작하려고' Rekindle 에디터 컴포넌트를 Waystone에 복사-붙여넣기 하는 거야. 그건 소유자 없는 fork를 만들고, 어느 쪽이든 개선되는 순간 원본에서 drift해. canonical 경로로 통합하는 건 오늘 더 비싸고, 내년에도 맞는 유일한 버전이야.

Code

경계를 넘는 것 (에디터가 아니라 링크)·text
journey_uid          # 이 산문이 속한 여행
day_uid / event_uid  # 해당하면 어느 날이나 event
rekindle_note_id     # 안정된 정체성 (파일명/title 은 표현)
document_kind        # daily-log / script / description / ...
revision             # Waystone 가 마지막 본 버전
content_hash         # 바뀐 걸 감지하려고
last_synced_at       # projection 이 갱신된 때

# Send to Rekindle -> 거기서 산문 씀 (에디터를 소유하니까)
# Pull from Rekindle -> Waystone projection + 분석 갱신
# 양쪽 다 바뀌면: divergence 드러냄. 절대 last-write-wins 아님.

External links

Exercise

같은 콘텐츠를 sync하는 도구 둘을 찾아봐. 기기 간 노트, 두 앱의 문서, 두 클라우드의 파일. 오프라인에서 양쪽에 같은 항목을 편집하고, 다시 연결해. 충돌을 감지하고 물었어, 아니면 한 버전이 조용히 이겼어? 뭔가 조용히 이겼으면, 네 작업의 어떤 버전이 아무 말 없이 삭제된 거야.
Hint
조용한 last-write-wins는 어디나 있고 거의 안 알아채져. 구조상 손실이 안 보이니까. 진 버전을 절대 못 보거든. 충돌을 드러내는 sync는 바로 네가 네 작업을 지우는 걸 막아주는 그 순간에 짜증나.

Progress

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

댓글 0

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

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