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

저널 사이로 하루를 옮기기

~9 min · move, day-bundle, paired-events, self-contained-log

Level 0식은 화로
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"하루 단위 이동은 그 날짜의 bundle 전체, 그러니까 crumb·미디어 참조·조립된 draft 를 한 저널에서 다른 저널로 옮겨."

이동은 두 크기로 와

저널이 하나에만 속하는 집이라 이동이 1급 연산이고, 두 크기로 돌아가. crumb 이동은 crumb 하나를 다른 저널로 옮겨. 하루 단위 이동은 하루 전체를 한 번에, 그러니까 그날의 crumb 과 미디어 참조와 조립된 draft 를 원본 저널에서 목적지로 옮겨. 실제로 쓸모 있는 건 하루 단위야. 하루치 항목 전체가 Daily 말고 Travel 저널에 속한다는 걸 깨닫고, crumb 을 하나씩 끄는 대신 bundle 을 단위로 옮기지.

크기가 뭐든 Track 3 의 규칙엔 예외가 없어. 이동은 덧붙이는 revision 이야. 아무것도 안 덮어쓰고 아무것도 안 부숴. crumb 의 ULID, captured_at, 타임존, 캡처 진실이 전부 이동 전 그대로야. journal_id 만 바뀌었고, 그 변경이 이제 기록된 history 의 일부가 돼. 이 하루가 예전에 다른 저널에 살았다는 걸 언제든 볼 수 있어.

이동은 수정 하나가 아니라 이벤트 둘이야. 진실이 저널별 덧붙이기 로그일 때, crumb 옮기기는 제자리 칸 수정 하나가 될 수 없어. 원본 로그에 붙는 move-out 이벤트와, crumb 전체를 실은 채 목적지 로그에 붙는 move-in 이벤트야. 짝지은 이벤트가 각 로그를 뭐가 떠났고 뭐가 도착했는지 정직하게 지키고, ULID 는 둘을 관통해 그대로야.

왜 짝지은 이벤트가 각 책을 온전하게 지켜

이동을 수정 하나가 아니라 붙은 이벤트 둘로 하는 보상이 여기 있어. 각 저널은 자기 덧붙이기 로그를 갖고, 요점은 저널이 통째로 export 할 수 있는 자족적 책이 되는 거야. 원본 로그의 move-out 줄은 그 하루가 떠났다고 적고, 목적지 로그의 move-in 줄은 crumb 전체를 실어서 목적지 로그 혼자 그걸 되살릴 수 있게 해. 어느 로그도 완전해지려고 다른 로그에 손 뻗을 필요 없어. 원본 책은 '이게 이 날짜에 떠났어' 를 정직하게 보이고, 목적지 책은 받은 걸 다 정직하게 담아. 정체성은 두 이벤트를 함께 꿰는 그대로인 ULID 로 지켜지니까, crumb 은 전후로 같은 crumb 임이 증명돼. 그냥 새로운 데 꽂혔을 뿐이야.

draft 와 인용이 함께 타

하루 단위 이동은 draft 를 함께 데려가고, draft 가 crumb 을 저널이 아니라 ULID 로 인용하니까 하루를 옮겨도 provenance 가 안 깨져. draft 는 여전히 '나는 crumb 01J…a 와 01J…b 로 지어졌어' 라고 하고, 그 crumb 은 새 집에서 같은 ID 로 여전히 있어. 하루 전체가 한 덩어리로 옮겨져. 증거, 미디어, 뽑아낸 글이 함께. 모든 내부 링크가 여전히 닿으면서. 하루를 다른 저널로 옮기고 1년 뒤 그 draft 를 다시 열어 봐. lineage 는 온전해. 그냥 다른 책 아래 파일링됐을 뿐이야.

Code

하루 단위 이동: 짝지은 이벤트, 그대로인 ULID·json
// SOURCE journal log (Daily) — a move-out line
{ "event": "move_out", "crumb_id": "01J8Z...",
  "to_journal": "jrnl_travel", "at": "2026-07-25T20:10Z" }

// DESTINATION journal log (Travel) — a move-in line WITH full payload
{ "event": "move_in", "crumb_id": "01J8Z...",
  "from_journal": "jrnl_daily",
  "payload": { "text": "...", "captured_at": "2026-03-14T...",
               "target_date": "2026-03-14", "media_refs": [] },
  "at": "2026-07-25T20:10Z" }

// ULID 01J8Z... is identical in both -> provably the same crumb
// captured_at unchanged -> capture truth survives the move
// each log stays self-contained -> each journal exports as its own book

External links

Exercise

덧붙이기만 하는, 컨테이너별 로그 시스템에 '컨테이너 사이 이동' 연산을 설계해 봐. 그게 만드는 두 이벤트를 쓰고, 목적지 로그가 자족적이려면 move-in 이벤트가 뭘 실어야 할지 정해. 그다음 확인해. 이동 후 각 로그를 홀로 읽어 자기 내용을 되살릴 수 있어, 그리고 옮긴 항목이 둘을 관통해 같은 정체성을 지켜?
Hint
move-in 이벤트는, 목적지 로그가 항목을 되살리려고 원본 로그를 읽을 필요가 절대 없을 만큼 항목 데이터를 실어야 해. 두 이벤트를 관통하는 공유되고 그대로인 ID 가, 그게 전후로 같은 항목(사본이 아니라)임을 증명하는 거야.

Progress

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

댓글 0

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

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