18강 / 20강

마스터 스케줄러 — 워크플로 파일을 돌린다

상태기계 · 비동기 · 재시작

마스터 스케줄러 — 워크플로 파일을 돌린다
여기서 비로소 기계가 됩니다.

여기서 비로소 기계가 됩니다. 지금까지 만든 장치 열넷을 차례대로 부리고, 그 차례를 파일에서 읽어 옵니다.

스케줄러가 하는 일은 셋뿐입니다 — 다음에 무엇을 할지 고르고, 그것이 끝났는지 지켜보고, 잘못되면 어디로 갈지 안다.

단계를 고르고 ‘여기서 멈췄다’ 를 눌러 보세요. 다시 켰을 때 무엇을 할 수 있는지 갈립니다.
불러오는 중…
전이표는 자료입니다. 그래서 눈으로 검사할 수 있고, 시험할 수 있고, 그림으로 그릴 수 있습니다.
Python 브라우저에서 실행

다시 켰을 때 — 일지(journal)와 되돌릴 수 없는 것

여덟 시간 공정이 여섯 시간째에 정전됐습니다. 다시 켜면 어디서부터 할까요?

답은 일지입니다. 모든 단계의 시작과 끝을 한 줄씩 파일에 적고 즉시 디스크에 밀어넣습니다.

{"t":"2026-09-14T04:12:03Z","step":"ivt_incubate","phase":"BEGIN","params_sha":"9f3c…"} {"t":"2026-09-14T04:42:07Z","step":"ivt_incubate","phase":"END","result":{"T_mean":37.02}}

그런데 여기가 이 강의에서 가장 중요한 대목입니다.

넣은 것은 도로 못 꺼냅니다. 어떤 단계가 그런지 미리 적어 두어야 재시작이 안전해집니다.
Python 브라우저에서 실행
🤔 확인 문제
전이표에 **{(p, "fault"): Phase.FAULT for p in Phase} 를 넣는 까닭은?
🤔 확인 문제
정전 뒤 재시작할 때 일지만 믿으면 안 되는 까닭은?