진짜 일하는 거부 둘
앞 강의에서 거부 네 개를 셌지. 그중 둘, 서버 없음과 포트 없음은 평범한 공학적 절제야. 나머지 둘이 더 이상하고 더 재밌어. 스케줄러 없음이랑 두뇌 없음. 이 둘이 이 도구가 슬그머니 콘텐츠 공장이 되는 걸 막아. 그리고 제일 먼저 논리로 밀려날 후보이기도 하고.
대부분의 프로젝트에선 이 논리가 이겨. 도구가 식별자 하나 받아서 영상을 뽑는다. 영상은 꾸준히 올라가야 한다. 그러니 타이머에 걸고, 대기열에 있는 걸 먹이고, 밤새 돌리자. 논리 자체는 어디도 안 틀렸어. 그리고 이 설계는 그걸 통째로 거절해.
타이머가 왜 거절당했나
적혀 있는 이유는 '무인 작업이 못 미더워서'가 아냐. 이 도구가 뭔지에 대한 주장이야. 사람이 작업을 돌리고, 작업장은 도구다. 스케줄러는 그걸 뒤집어. 타이머가 파이프라인을 쏘는 순간 도구가 행위자가 되고, 사람은 이미 나와버린 결과물의 검토자로 밀려나. 이 레포의 품질 교리 전체가 사람이 제작의 상류에 있다는 데 걸려 있는데, 스케줄러는 사람을 하류로 옮겨버려.
두 번째 이유가 있고, 이건 이 프로젝트 밖으로도 넘어가. 일정은 재료가 감당 못 할 수요를 만들어내. 매주 뭔가 내놔야 하는 도구는, 할 말이 없는 주에도 뭔가를 내놔. 일정이 그걸 요구하니까. 그래서 설계는 대기열 자체를 주기로 삼았어. 한 주에 요청 세 개면 영상 세 개, 요청 0 이면 0 이고, 0 은 해명이 필요 없는 정상 결과야.
두뇌 없음 — 그럼 판단은 어디서 와
다른 거부는 좀 더 미묘해. Beacon 은 모형을 안 들고 있고 자율 판단 루프도 안 돌려. 안에 결정은 잔뜩 있어. 뭘 렌더할지, 문장을 어떻게 다듬을지, 생성된 이미지 넷 중 뭐가 쓸 만한지. 근데 그중 어느 것도 도구 안에 살지 않아. 실행할 때마다 밖에서, 그걸 모는 사람한테서 들어와. 도구가 내놓는 건 결정론이야. 같은 입력이면 같은 프레임, 같은 인코딩 프로필, 같은 측정 검사.
이 분리는 정확하게 이름 붙일 값어치가 있어. 도구랑 에이전트를 가르는 선이거든. 도구는 손잡이를 당길 때마다 같은 일을 일으켜. 에이전트는 언제 당길지를 정해. 손잡이랑 결정을 다른 자리에 두면 "이건 왜 존재하지?"라는 질문에 항상 사람 하나랑 시점 하나로 답할 수 있어. 아무도 쓴 기억이 없는 설정 파일 말고.