"All Entries 는 저널을 가로지르는 집계 projection 이야."
All Entries 는 가로질러 읽지, 소유하지 않아
조만간 어느 저널에 있든 전부를 한 번에 보고 싶어져. 그게 All Entries 고, 그게 뭔지 정확히 짚는 게 중요해. All Entries 는 저널을 가로지르는 집계 projection 이야. 모든 저널의 타임라인을 한 번에 훑어 읽는 단일 view 지. crumb 을 소유하는 슈퍼 저널이 아냐. crumb 은 여전히 각자의 저널에 속해. Daily, Quotes, Travel. All Entries 는 그냥 선반 전체를 훑어 병합된 스트림을 보여줘. 소유는 그대로, view 는 가로질러 뻗어.
이건 Log, Calendar, Map 에서 만난 '하나의 진실, 여러 view' 규칙을 저널 축에 쓴 거야. 각 저널은 crumb 창고의 한 칸이고, All Entries 는 칸을 무시하고 합집합을 읽는 projection 이야. 그게 crumb 을 소유하면, crumb 이 어느 저널에 사는지에 진실이 둘 생겨. crumb 자신의 journal_id 와 All Entries 의 주장. 그럼 어긋나. 순수 projection 으로 두면 '어느 저널이 이 crumb 을 소유해' 에 답이 딱 하나고, All Entries 는 절대 그걸 반박 안 해.
짜임새와 열림은 맞바꿀 게 아냐
트랙 전체의 조용한 보상이 여기 있고, 선반을 더할 값어치가 있던 이유야. 대부분 시스템에선 더 짜임새 있게 되는 게 자유를 좀 포기하는 거야. 폴더가 많으면 울타리가 많고, 구조가 많으면 벽이 많지. Vesta 는 두 축이 서로 상관없어서 그 맞바꿈을 벗어나. 저널 축은 카테고리, 날짜 축은 시간. 서로 안 닿아. 그래서 한 축에서 최대로 짜임새 있게(저널을 원하는 만큼) 다른 축에서 최대로 열린 채(그 저널 하나하나가 양쪽으로 끝없이) 갈 수 있어. 카테고리 축의 구조가 시간 축에 아무 비용도 안 들어. 저널을 더하는 게 절대 타임라인에 끝을 안 놓으니까.
전체 모양을, 한 문장으로
트랙 전체를 합치면 이제 온전히 벌어낸 아빠의 표현이 나와. Vesta 는 무한 경계 journey 하나짜리 Waystone 이고, 선반은 그런 무한 타임라인 여럿이 나란한 것. 한 번에 하나씩, 또는 전부 한꺼번에 읽히는. 컨테이너는 시간 축에서 사라졌고 다신 안 밀수됐어. 컨테이너로 했을 짜임새는 대신 상관없는 카테고리 축에 살아. 그걸 가로지르는 projection 을 가진 칸들의 선반으로. 열려야 할 곳은 열리고, 도움 될 곳은 짜여 있고, 하나를 다른 것과 절대 안 맞바꿔.