반복 작업을 주피터로 남기자는 요구를 파일을 만들어 두는 것으로만 이해하면 중요한 부분을 놓친다. 사용자는 어떤 자료로 어디까지 실행됐고 오류 뒤에 무엇을 해야 하는지 읽을 수 있어야 한다. 나는 기존 실무 예약 노트북을 기준으로 북극성의 자동 생성 노트북을 다시 살펴봤다.
셀 수가 비슷해도 쓰임은 달랐다
초기의 자동 생성 노트북은 목적을 적고 SDK를 연결한 뒤 입력 환경변수를 받아 한 번 실행하는 래퍼에 가까웠다. 실행 가능한 파일이라는 의미는 있지만 업무 항목을 준비하고 실패 지점부터 이어가는 조작이 충분한지는 다른 질문이었다. 실무 노트북도 셀이 많아서 좋은 것이 아니라 사용자가 실제로 판단할 위치가 보여서 도움이 됐다.
나는 노트북을 만들었다는 완료와 업무에 쓸 수 있다는 완료를 나눠 기록했다. 입력 설정, 자료 준비, 실제 실행, 결과 기록, 오류와 재개가 드러나는 기준을 먼저 세웠다. 코드를 모두 셀 안에 복제하자는 뜻은 아니었다. 공통 함수는 재사용하되 업무의 경계를 사람이 볼 수 있게 연결해야 했다.
입력을 고치는 자리와 준비를 확인하는 자리
업무 노트북에서는 inputs와 여러 항목의 items를 확인하고 수정할 수 있다. 준비 단계는 전체 항목을 먼저 검사해 모르는 매개변수나 중복 ID, 선택되지 않은 파일을 실행 전에 거절한다. 한 항목이 끝난 뒤에 다음 항목의 자료가 없다는 사실을 처음 발견하는 일을 줄이려는 순서다.
준비 결과에는 대상 프로젝트와 계정, 기준 탭, 단계 이름과 자료 수를 읽을 수 있어야 한다. 그렇다고 준비됐다는 문구가 실제 외부 등록의 증거는 아니다. 준비는 입력 계약이 맞다는 확인이고 실행은 사이트의 실제 상태와 부딪히는 단계다. 같은 노트북 안에서도 다른 완료를 다른 이름으로 남겼다.
커널이 아니라 업무 ID로 이어가게 했다
커널 변수만으로 진행 상태를 기억하면 커널을 재시작한 뒤 완료한 항목을 다시 실행할 수 있다. 업무 원장은 job ID와 item ID, 입력 지문과 프로그램 해시를 보관한다. 같은 항목이 성공한 기록이면 이전 결과를 돌려주고 입력이나 검증된 프로그램이 달라지면 먼저 확인을 요구한다.
결과 불명인 항목을 피하려고 새 ID를 만드는 것은 올바른 재개가 아니다. 원래 변경이 전달됐는지 모르면 이전 결과를 읽어야 한다. 일부 읽기 절차나 자체 저널이 있는 전용 업무는 안전한 재준비 범위를 따로 가질 수 있지만, 모든 클릭과 쓰기가 다시 실행해도 되는 절차가 되는 것은 아니다.
실패한 셀 앞의 결과도 작업의 일부다
전용 노트북 실행은 오류가 나도 앞선 출력과 예외를 executed 노트북에 남긴다. 업무 원장에는 이전 실행 ID와 오류, 현재 상태를 함께 보관한다. 성공한 마지막 출력만 남기면 운영자는 어디까지 실제로 했는지 알 수 없다. 실패 기록은 다음 판단에 필요한 자료다.
동시에 상세 출력에 실제 원고나 개인 정보가 들어갈 수 있다는 점도 고려해야 한다. 이 글과 공개 패키지에는 운영 노트북의 원본 출력이나 계정 자료를 넣지 않았다. 내부에서 남겨야 할 근거와 공개할 설명 자료의 범위는 다르다. 깊이 설명하려고 원본 업무 자료를 전부 복사할 필요는 없었다.
사람이 고친 파일은 자동 템플릿과 다르다
노트북을 개선했다고 사용자의 셀을 새 템플릿으로 조용히 바꾸면 안 된다. 기존 원형과 코드 해시를 확인할 수 있는 경우에만 이전 버전을 보존하고 업그레이드하는 경계를 둔다. 공통 실행기를 연결하는 일과 사용자가 직접 편집한 노트북을 소유하는 일은 다르기 때문이다.
보관함의 단일 노트북 실행과 왼쪽 작업실에서 여러 항목을 이어가는 방식도 구분한다. 파일만 열어 보는 기능과 실제 커널로 셀을 실행하는 기능, 커널을 중지하는 기능은 각각 확인해야 한다. 내부 NotebookBrowser 지원이 있다는 설명을 보류된 외부 PC 공통 연결기의 완성으로 바꾸지 않는다.
어디까지 실제로 사용한 구성인가
개발 기록에는 업무 노트북의 준비·실행·결과 재사용과 실제 커널 재시작을 확인한 시험이 남아 있다. 이번에는 그 기록과 현재 원장 코드를 대조했고 원래 사용자의 커널을 새로 실행하지 않았다. 과거 실패와 감독자의 수정까지 함께 적어, 모든 상황이 처음부터 무인으로 끝났다는 인상을 피한다.
자기 회사의 자동화도 노트북 파일을 납품했다는 말보다 운영자가 무엇을 읽고 고치고 이어갈 수 있는지 물어보면 좋다. 코드가 많은 화면이 아니라 업무가 드러나는 화면이어야 한다. 나는 다음 에이전트와 사람이 같은 자료를 읽고 현재 위치를 판단할 수 있는 노트북을 남기려 했다.