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