웹 수집 자동화가 중간에 멈췄을 때 처음부터 다시 돌리지 않는 구조
여러 웹페이지를 CSV로 모으는 자동화는 첫 실행보다 두 번째 실행에서 품질이 드러납니다. 100개 중 70개를 처리한 뒤 네트워크가 끊겼는데, 다시 실행하자 앞의 70개까지 처음부터 방문한다면 작업은 돌아가도 운영에는 쓰기 어렵습니다. 그래서 이번에 만든 Resumable Web-to-CSV Pipeline Kit 에서는 ‘잠깐 실패한 요청을 다시 시도하는 것’과 ‘프로그램이 끝난 뒤 다음 실행에서 이어가는 것’을 다른 문제로 다뤘습니다. 구매자에게 전달하는 압축 파일을 새 폴더에 풀어 10개 검사를 실행했고, 동봉한 오프라인 데모에서는 성공 2건·실패 0건·중복 1건 건너뜀을 확인했습니다. 재시도와 재개는 같은 기능이 아니었습니다 재시도는 한 주소를 요청하다가 일시적인 오류가 났을 때 같은 실행 안에서 다시 요청하는 기능입니다. 반면 재개는 프로그램을 닫았거나 컴퓨터를 다시 켠 뒤에도 이전 실행에서 끝낸 항목을 기억하는 기능입니다. 둘을 하나의 반복문으로 묶으면 잠깐의 통신 오류와 작업 전체의 중단을 구분하기 어려워집니다. 소스 키트에서는 항목별 재시도 횟수와 대기 시간을 설정으로 두고, 최종 성공한 ID는 별도의 상태 파일에 기록합니다. 다음 실행은 상태 파일을 먼저 읽어 완료 ID를 제외한 뒤 남은 주소만 처리합니다. 실패 횟수를 늘리는 것으로 중단 복구를 대신하지 않는 구조입니다. 완료 표시를 CSV에만 의존하지 않았습니다 CSV의 마지막 줄을 읽어 진행 위치를 추측하는 방법은 단순하지만, 정렬이 바뀌거나 중간 행이 비어 있으면 어느 항목까지 끝났는지 모호해집니다. 출력 형식을 바꾸는 순간 진행 상태까지 함께 깨질 수도 있습니다. 이 키트는 레코드의 고유 ID와 완료 목록을 상태 파일에 따로 둡니다. CSV는 결과 데이터, 상태 파일은 작업 진행이라는 역할을 분리했습니다. 같은 ID가 입력 목록에 다시 나타나면 이미 완료됐는지 확인하고 건너뛰므로 결과에 같은 레코드가 한 번 더 붙는 일을 막습니다. 설정이 달라졌는데 옛 완료 목록을 ...