C.W.K.
Stream
Lesson 02 of 05 · published

run vs release

~11 min · run, release, versioning, model

Level 0Empty Shelf
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"하나는 model 이 뭐라 했나를 물어. 다른 하나는 오늘 뭘 보여주나를 물어."

명사 둘, 질문 둘

Recall 은 transcript 를 아주 다른 일을 하는 두 개의 일급 대상으로 쪼개. 각각이 어느 질문에 답하는지 배우면 데이터 모델 전체가 딱 맞아 들어가:

  • run 은 답해: "이 model 이, 이 설정으로, 이 source 바이트에 정확히 뭘 돌려줬나?" 얼린 증거야. 절대 안 바뀌어.
  • release 는 답해: "지금 제품이 어느 버전의 텍스트를 보여주고, 요약이랑 검색을 파생하나?" 버전이야. 교정하면 바뀌어.

이건 같은 행의 두 이름이 아냐. 다른 규칙을 가진 별도 테이블에 살아. run 은 한 번 쓰고 봉인해. release 는 '이게 이 영상의 현재 최선 텍스트야' 라고 말하는 움직이는, 번호 매긴 포인터야.

run 하나, release 여럿

중요한 관계가 여기 있어: 불변 run 하나가 시간에 걸쳐 여러 release 밑에 앉을 수 있어. model 이 영상을 한 번 전사했어(그게 run). 그다음 이름을 잘못 들은 걸 발견해서 교정했고 — 그게 release v2 를 만들었어. 나중에 타임스탬프를 고쳤고 — release v3. run 은 안 움직였고, release 가 쌓였어. 어느 순간이든 영상당 정확히 한 release 가 current 로 표시되고, 그게 검색이랑 요약이 쓰는 거야.

버전 관리처럼 생각해: run 은 불변 commit — 정확히 뭐가 캡처됐는지의 영구 기록. current release 는 최신 좋은 버전으로 옮겨가는 branch 포인터 같은 거. 언제든 raw commit 으로 걸어 돌아갈 수 있고, 언제든 '지금 HEAD 가 어느 버전이야?' 를 물을 수 있어. 질문 둘, 답 둘, 절대 혼동 안 함.

그냥 텍스트를 편집하면 안 돼?

'그냥 텍스트 편집' 은 두 질문을 하나의 mutable blob 으로 무너뜨리고 두 답을 다 잃으니까. 제자리 편집하면 model 이 원래 뭘 돌려줬는지(run 이 사라짐) 텍스트가 어떻게 진화했는지(버전이 사라짐) 못 말해. run 은 얼리고 release 는 버전 관리함으로써, Recall 은 '기계가 실제로 뭐라 했나?' 랑 '지금 뭘 보여주나?' 랑 '하나에서 다른 걸로 어떻게 갔나?' 를 — 전부 한 번에 답할 수 있어. 다음 레슨이 교정의 순간에 뭐가 일어나는지, 왜 덮어쓰지 않고 분기하는지 보여줘.

Code

밑엔 얼린 run; 위엔 버전 있는 release·sql
-- 증거: (video, source, config) 당 행 하나. 봉인됨.
-- transcript_runs(run_id, video_id, raw_response, ...)  [불변]

-- 제품 진실: 영상당 버전 여럿, 하나가 current.
CREATE TABLE transcript_releases (
  release_id     TEXT PRIMARY KEY,
  video_id       TEXT NOT NULL,
  run_id         TEXT NOT NULL,     -- 어느 증거에서 파생됐나
  release_number INTEGER NOT NULL,  -- v1, v2, v3 ...
  content_sha256 TEXT NOT NULL,     -- 이 버전 텍스트의 hash
  is_current     INTEGER NOT NULL,  -- 영상당 정확히 하나 =1
  UNIQUE (video_id, release_number)
);

-- run  = "model 이 뭐라 했나?"      (절대 안 바뀜)
-- release = "지금 뭘 보여주나?"     (v1 -> v2 -> v3)

External links

Exercise

네 일에서 'current value' 를 가지고 시간에 걸쳐 갱신되는 record 를 잡아 — 문서, config, 프로필. 두-질문 모델로 쪼개: 원래 캡처된 것의 불변 증거는 뭐고, 그 위 버전 있는 'current' 계층은 뭐야? 두 테이블(또는 두 모양) 을 스케치하고 '정확히 하나 current' 가 어디 사는지 표시해. 그리고 그 분리가 제자리 편집으론 못 답할 어떤 질문을 답하게 하는지 대봐.
Hint
최신 값만 볼 수 있으면, run 과 release 를 융합한 거야. 고침은 두 계층이야: 캡처된 것의 append-only 기록, 그리고 현재 최선 버전으로의 버전 있는 포인터. 보상 질문은 보통 '원본에서 지금까지 어떻게 왔나?' — 두 계층이 다 있어야만 답 가능.

Progress

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

댓글 0

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

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