라이프스타일

자동화 실패, 재시도, 중지

실행 기록으로 기존 결과를 확인하고 중복을 피하며 조건을 고쳐 일정 중지를 검증합니다.

읽는 데 약 15분 · 실습 20 분

직접 제작한 흐름도이며 제품 화면이 아닙니다.
사진: Mokaair (© Mokaair)
이 글의 목차
  1. 목표와 준비
  2. 1단계: 실행 상태 먼저 구분
  3. 2단계: 답변은 있지만 완료 증거가 없는 상태 재현
  4. 3단계: 실제 시간 초과·단절 처리
  5. 4단계: 같은 목표 재시도와 각 시도 구분
  6. 중지와 완료 판단

목표와 준비

이 단락의 학습 자료: ·

1단계: 실행 상태 먼저 구분

예약은 저장 설정이며 각 시작에는 별도 run이 있습니다. 설정 일시 중지는 실행 중인 run 취소가 아니며 예약 삭제는 이전 변경 복원이 아닙니다. 로컬 래퍼 timeout은 대기 한도 도달, 화면 offline은 연결 불가만 뜻하고 원격·모든 자식 프로세스 종료를 증명하지 않습니다. 작업·예약 이름, 호스트, 폴더, 시간대, 입력 버전, 최근 시작 시간, 실행 번호부터 기록하세요.

현상부족한 증거다음 동작
Active 저장·새 run 없음호스트·다음 시간·실제 시작Scheduled·호스트 확인
긴 running실제 프로세스·작업 활동재실행 전 진행·최근 기록 확인
시간 초과·단절남은 실행·부수 효과재연결 후 원래 run 확인
0이 아닌 종료·turn.failed원인·출력 완전성기록 보존·원인 수정
종료 0·잘못된 값입력 버전·내용 검증결과 거부·출처 조사

오래된 파일에 성공 답변이 남을 수 있으므로 존재만으로 성공은 아닙니다.

2단계: 답변은 있지만 완료 증거가 없는 상태 재현

성공 run-01을 파일 관리 화면에서 recovery-running으로 복사하고 status.json만 아래로 바꿉니다. 올바른 final.json과 이벤트는 유지하세요. 명시한 모의 중단이며 실제 실패 기록을 성공처럼 조작하지 않습니다. Windows PowerShell 또는 macOS/Linux 터미널에서 실습 폴더의 verify-only를 실행하면 Not accepted: Process did not exit successfully와 0이 아닌 종료가 나와야 합니다.

recovery-running/status.json (모의 상태) · json
{
  "state": "running"
}
Windows: 모의 중단 검증 · powershell
py -3 run_summary.py recovery-running --verify-only
$LASTEXITCODE
macOS / Linux: 모의 중단 검증 · sh
python3 run_summary.py recovery-running --verify-only
echo $?

원래 run-01을 recovery-timeout으로 별도 복사해 status.json만 {"state":"timeout"}으로 바꿔 검증하면 역시 실패해야 합니다. 답변이 맞아 보여도 완료 증거가 없으면 채택할 수 없음을 보여줍니다. 변경 없는 run-01을 재검증해 통과를 확인하고 세 결과를 복사본 실습으로 기록하세요. 실제 호스트 중단이나 모델 시간 초과를 발생시켰다는 증거는 아닙니다.

3단계: 실제 시간 초과·단절 처리

데스크톱 예약이면 Scheduled에서 같은 항목을 일시 중지해 새 시작을 막고 기존 run의 활동을 확인합니다. 호스트 단절은 전원·네트워크·앱·폴더를 복구한 뒤 중복 예약을 만들기 전에 원래 작업의 마지막 동작과 결과를 확인하세요. 각 OS에서 실제 호스트를 조사하며 휴대전화에 대화 기록이 보인다고 PC가 온라인이라 판단하지 않습니다. 누락 실행 보충은 실제 기록·제품 동작으로 확인하며 모든 시간을 자동 보충한다고 가정하지 않습니다.

CLI는 status·stderr·이벤트를 보존하고 원래 터미널에서 종료를 확인합니다. 중단은 확인한 실행에만 Ctrl+C나 도구 취소를 쓰며 모든 node·python·Codex 프로세스를 종료하지 않습니다. GitHub Actions는 해당 run을 취소하고 종료 상태를 확인합니다. workflow 비활성화는 이후 시작을 막습니다. 승인 대기·입력 이름 변경·API 사용량 부족은 timeout 연장으로 고쳐지지 않으므로 ·경로·계정 편에서 원인을 확인하세요.

run_summary.py는 subprocess.run(timeout=120)을 사용합니다. Python 공식 문서에 따르면 시간 초과 시 직접 자식 프로세스를 종료하고 기다린 뒤 TimeoutExpired를 발생시키며 초기 생성 때문에 지정 시간을 넘길 수 있습니다. 자손 프로세스·원격 작업·전송한 요청까지 멈췄다는 뜻은 아닙니다. 직접 프로세스와 미확인 작업을 나누고 timeout 기록을 보존하세요.

4단계: 같은 목표 재시도와 각 시도 구분

원래 작업이 멈췄거나 중복 부수 효과가 없음을 확인하고 원인을 고친 뒤 재시도를 결정합니다. 가상 읽기 작업도 새 run-02를 사용합니다. 같은 입력 버전·새 attempt를 기록하며 입력 내용이 달라지면 revision도 바꿔 다른 데이터를 섞지 않습니다. 아래는 서식이므로 accepted를 실제 결과로 가정하지 말고 관측 상태를 적으세요.

recovery-notes.md (관측 결과 입력) · markdown
# Recovery record
- Objective: summarize the fictional checklist
- Input revision: exec-practice-1
- Host and folder: fill in locally
- Original run and state: fill in
- Last observed action: fill in
- Cause and correction: fill in
- Retry output folder: run-02
- Exit status and event validation: fill in
- Manual counts: total 3, completed 1, pending 2
- Accepted result path: fill in only after verification
- Schedule state after practice: fill in

후속 사용 전에 새 run의 종료 상태·이벤트·schema·수동 개수를 확인하고 채택 경로 하나를 기록합니다. 재시도마다 발송·업로드·결제를 반복하지 마세요. 외부 동작에는 서비스가 지원하는 멱등 키나 명시적 중복 제거가 필요하며 모델의 약속만으로 충분하지 않습니다. 기존 출력 폴더 거부는 로컬 파일 보호일 뿐 분산 잠금이나 외부 작업의 정확히 한 번 실행 보장이 아닙니다. 실제 쓰기는 이미 발생한 부수 효과부터 확인하고 부족한 부분을 수행합니다.

중지와 완료 판단

성공 원본과 명시한 실패 복사본을 보관하고 모델 반복 실행 대신 원본만 한 번 재검증합니다. 실제 예약이 켜져 있으면 Scheduled에서 일시 중지·저장 상태를 확인하고 활동 run은 별도로 확인하세요. 재개할 때는 같은 항목을 수정하고 다음 시간·시간대·호스트·알림 조건을 확인합니다. 변화·완료·처리가 필요한 실패만 알리고 같은 빈 점검을 반복 발송하지 않습니다. 원래 상태·원인·수정·재시도·채택 결과를 설명할 수 있어야 완료입니다. 공식 조사·로컬 복사 실습·실제 호스트 중단·클라우드 CI는 따로 기록합니다.

직접 제작한 흐름도이며 제품 화면이 아닙니다.
직접 제작한 흐름도이며 제품 화면이 아닙니다. · 사진: Mokaair (© Mokaair)
자세한 설명 보기

Three numbered stages: identify the starting point, perform the exercise, and verify the result. Original illustration, not a product screenshot.

전체 목차

  • 라이프스타일

    Codex 학습 센터: 전체 튜토리얼 목차

    설치와 첫 작업부터 MD 지침과 고급 연동까지 60개 강의, 열 개 단원을 계획합니다. 수준, 환경, 목표, 명령으로 다음 글을 찾고 미게시 항목의 상태를 확인할 수 있습니다.

  • 라이프스타일

    Worktree와 작업 격리

    Worktree는 하나의 Git 저장소에 다른 브랜치의 작업 폴더를 만듭니다. 파일이 분리되어도 DB, 포트와 외부 서비스는 공유될 수 있습니다.

  • 라이프스타일

    사용량과 효율: 재작업 줄이기

    조건, 모델 선택, 시간, 결과를 기록해 불필요한 재시도와 과도한 문맥을 줄입니다.

최신 여행 소식·가이드

출처

라이프스타일