자동 처리의 증거를 JSONL에 추기하는 최소 구현 - 구현 절차
자동 처리는 스케줄 등록만으로는 안정적이지 않습니다. 결과를 덮어쓰거나 장치 출력에만 남기면, 병렬 자동 처리의 증거가 사라집니다.
이 글에서는 '구현 절차' 관점에서 입력, 처리, 결과물, 공개 결과를 분리하는 방법을 정리합니다. 시스템 전체의 이유까지 다룹니다.
기본 방침
1회 실행당 검증된 JSON을 1줄 추기하고, 이전 줄은 수정하지 않습니다.
프로세스가 종료된 것과 목적을 달성한 것은 별개입니다. 초안 생성, 품질 검사, 외부 공개, 공개 URL 확인을 개별적으로 기록합니다. 상태를 분리함으로써 다음 날의 처리는 추측이 아닌 증거로부터 재개할 수 있습니다.
구현 절차
필수 키를 검증한 후 파일을 엽니다
UTF-8의 append 모드로 추기합니다
시간과 결과물 경로를 매 줄 남깁니다
각 공정은 다음 공정이 기계적으로 판단할 수 있는 JSON을 출력합니다. 자유문 로그에만 의존하면, 재실행 시 어디까지 완료했는지 인간이 추측해야 합니다.
with path.open(
재시작 후에는 메모리상의 상태가 아닌 파일 결과물로부터 재개합니다. 후보 감사(candidate audit)가 완료되었다면 생성 과정을 생략하고, 초안 저장 결과가 있다면 새로운 초안을 만들지 않습니다. 공개 결과에 실제 URL이 있다면 당일 처리를 종료합니다. 이러한 순서 덕분에 PC 재부팅이나 러너 중단이 발생하더라도 외부 작업을 중복시키지 않고 계속 진행할 수 있습니다.
테스트에는 후보 0건, 깨진 JSON, 잔류 잠금(residual lock), 공개 결과 없음 등의 경우도 포함됩니다. 일일 운영에서 자주 발생하는 것은 예외 상황보다는 '처리는 끝났지만 목적물이 없는' 상태입니다.
## 운영 체크리스트
- 입력 출처와 SHA-256이 기록되어 있는가
- 제목과 본문의 중복 검사를 통과했는가
- provider와 action이 고정되어 있는가
- 일일 공개 상한을 초과하지 않았는가
- 결과 JSON에 실제 URL 또는 정확한 중단 사유가 포함되어 있는가
이러한 형태로 후보 생성과 공개를 독립시키면서 재고 수량을 계약으로 연결할 수 있습니다. 게시 시점에 후보가 없다면, 공급 공정을 실행한 후 재평가합니다.
관련 실습 예시는 AI Compass Journal 목록에서 확인할 수 있습니다.
### 토론

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22