수집이 중간에 끊겨도 처음부터 다시 받지 않습니다
2019년부터 쌓인 주 단위 기록을 5년치 한 번에 받아와야 했습니다. 요청을 몰아 보내면 중간에 응답이 끊기고 그날 수집이 절반짜리가 되는데, 끊긴 자리부터 이어 받아 전 구간을 채웠습니다.
수집 구간
이전
중간에 멈춤
이후
2019–2024 전 구간
배경
받아야 할 자료가 5년 넘게 쌓여 있었습니다. 2019년 첫 주부터 2024년 7월까지 주 단위로 남은 기록입니다. 한 번에 받아올 수 있는 양이 아니고, 중간에 한 번 멈추면 어디까지 받았는지부터 다시 찾아야 합니다. 일정이 걸려 있어 시점이 중요했습니다.
현장에서 본 것
문제는 수집 도구가 아니라 요청을 보내는 방식에 있었습니다. 사람이 읽는 속도와 무관하게 요청을 몰아 보내면 중간에 응답이 끊기고, 그날 수집은 절반짜리가 됩니다.
정의한 문제
“빨리 받는 것”이 아니라 “끝까지 받는 것”으로 문제를 바꿨습니다. 절반만 받고 멈추는 것보다, 시간이 더 걸리더라도 전 구간을 받는 편이 쓸모 있습니다. 빠진 구간이 있는 자료는 결국 다시 받아야 합니다.
수집 대상의 이용약관과 로봇 배제 표준을 확인하는 것이 이 판단의 전제입니다. 받아도 되는 자료인지를 먼저 정하지 않으면 그 뒤의 설계는 의미가 없습니다.
만든 것
- 요청 간격과 재시도 제어 — 몰아치지 않고 나눠 보냅니다. 그래야 5년치가 중간에 비지 않고 끝까지 들어옵니다
- 주 단위로 끊어 받기 — 5년 넘는 구간을 한 덩어리로 다루지 않고 주 단위로 나눕니다. 실패해도 그 주차만 다시 받으면 됩니다
- 중단 지점부터 재개 — 멈춘 자리를 기억합니다. 처음부터 다시 받는 일이 없어야 긴 수집이 끝납니다
- 남은 시간 표시 — 진행률과 예상 잔여 시간을 화면에 둡니다. 몇 시간짜리 작업을 아무 표시 없이 실행하면 사람이 도중에 멈춰 버립니다
결과
2019년 1주차부터 2024년 30주차까지, 전 구간을 빠짐없이 받았습니다. 이후 같은 구조를 다른 수집 건에도 쓰고 있습니다.