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

그냥 나타나는 의도 crumb

~9 min · intent-capture, projection, not-a-reminder-app, free-by-construction

Level 0식은 화로
0 XP0/34 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"미래 crumb 도착: 아무 일 없음. Today 가 의도 crumb 를 공짜로 떠올려."

스케줄러를 키울 뻔한 질문

미래 scatter 를 허용하면 뻔한 질문이 따라와. 미래 날짜 crumb 의 그날이 드디어 오면 뭘 해야 해? 매혹적인 답은 전부 기계장치를 더해 — 푸시 알림 쏘기, '오늘 마감' 레인에 떨구기, 아이콘 배지, 실행되면 완료 표시. 그거 하나하나가 저널을 조용히 태스크 매니저로 바꿔. 그리고 Vesta 의 확정된 답은 기계장치의 정반대야. 아무 일도 안 일어나.

아무 일도 안 일어나는 건 그럴 필요가 없어서야. Today 스트림은 날짜 축 위의 projection 이야 — target_date 가 오늘인 crumb 를 보여줘. 미래 날짜에 놓은 crumb 는 그 날짜가 아직 오늘이 아니라서 안 보였을 뿐이야. 그날이 오는 순간, 같은 projection 이 자동으로 그걸 포함해 — 도착 event 도, 스케줄러도, 알림 경로도 없이. 의도 crumb 는 배달되는 게 아냐. 늘 거기 있었고, Today 가 그냥 그걸 닿는 거야.

최고의 도착 메커니즘은 도착 메커니즘이 없는 거야. state 가 축 위의 projection 이면, '미래가 현재가 되는 것' 은 공짜야 — 짓는 게 아니라, projection 이 작동하는 걸 막지만 않으면 돼. 모델이 이미 질문에 답할 수 없을 때만 스케줄러로 손을 뻗어. 여기선 모델이 이미 답해.

저널이지, 리마인더 앱이 아냐

이건 진짜 제품 경계지 구현 지름길이 아냐. 의도 캡처는 todo 가 아냐. 미래 날에 메모를 놓을 때, 넌 미래의 나한테 찾으라고 생각을 남기는 거지 마감과 잔소리 알람이 달린 의무를 스케줄링하는 게 아냐. 리마인더 앱의 일은 네가 따를 때까지 방해하는 거고, 저널의 일은 네가 도착할 때 조용히 거기 있는 거야. 의도를 '마감일' 로 뭉개면 Vesta 가 벗어나려고 만들어진 바로 그 죄책감 기계를 다시 짓는 거야.

진짜 알림이 필요할 때

그럼 Vesta 는 절대 알림 못 해? 아냐 — 알림이 Vesta 일이 아니라는 뜻이야. 진짜 알림 필요가 언젠가 생기면, 저널 안에서 키운 스케줄러가 아니라 cwkPippa 의 heartbeat(가족의 기존 스케줄링 뇌)로 가. 그게 경계를 깔끔하게 유지해. Vesta 는 crumb, draft, projection 을 소유하고, 가족의 뇌는 손 뻗어 방해해야 하는 모든 걸 소유해. 저널은 널 쫓는 게 아니라, 네가 돌아오는 곳으로 남아.

Code

Today 는 스케줄러가 아니라 쿼리야·python
def today_stream(crumbs, today):
    # The whole 'arrival' mechanism: a projection over the date axis.
    return [c for c in crumbs if c.target_date == today]

# A crumb placed on a future date is simply not selected yet:
#   target_date = 2026-08-31  ->  invisible on 2026-07-24
#   ...same crumb, same store, no change...
#   target_date = 2026-08-31  ->  appears on 2026-08-31, for free
#
# There is no cron job, no notification, no 'due' flag. The intent
# crumb was never delivered — Today just reached the day it lives on.

External links

Exercise

한때 백그라운드 작업, 타이머, 알림을 더해서 푼 기능을 떠올려봐. 물어봐. 그 밑의 state 가 이미 projection 이라, 적절한 순간에 쿼리하는 것만으로 질문에 직접 답할 수 있었나? 스케줄러가 필수였는지 — 아니면 Today 처럼 모델이 '미래 도착' 을 공짜로 만들 수 있었는지 적어봐.
Hint
핵심은 뭔가가 사용자에게 능동적으로 PUSH 해야 하는지, 아니면 사용자가 어차피 적절한 때 PULL 할 건지야. 저널은 pull 모양, 리마인더 앱은 push 모양. pull 로 충분하면 스케줄러는 겉치레였어.

Progress

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

댓글 0

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

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