VROF

해온 일

5년 넘게 쌓인 자료를 한 번도 처음부터 다시 받지 않고

2019년부터 쌓인 주 단위 기록을 한 번에 받아와야 했습니다. 중간에 멈추던 수집을 요청 방식과 재개 처리부터 다시 설계했습니다.

수집 구간

중간에 멈춤 에서 2019–2024 전 구간 (으)로

납품한 수집 프로그램 실행 화면. 수집 단위를 일 또는 주로 고르고 시작 주차와 종료 주차를 지정하는 화면이며, 우측에 진행률 막대와 남은 예상 시간이 표시돼 있다.
2019년 1주차(2018년 12월 30일 시작)부터 2024년 30주차까지, 주 단위로 끊어 수집합니다. 남은 시간이 화면에 나와 지금 어디까지 왔는지 알 수 있습니다.
고객
연구 목적 수집을 의뢰한 국내 고객
산업
연구·학술
수행
2025
기간
납품 후 대응 진행 중
영역
업무 자동화
  • Python
  • 수집 파이프라인
  • 요청 제어
  • 재개 처리

배경

받아야 할 자료가 5년 넘게 쌓여 있었습니다. 2019년 첫 주부터 2024년 7월까지 주 단위로 남은 기록입니다. 한 번에 받아올 수 있는 양이 아니고, 중간에 한 번 멈추면 어디까지 받았는지부터 다시 찾아야 합니다. 일정이 걸려 있어 시점이 중요했습니다.

현장에서 본 것

문제는 수집 도구가 아니라 요청을 보내는 방식에 있었습니다. 사람이 읽는 속도와 무관하게 요청을 몰아 보내면 상대 서버에 부담을 줍니다.

정의한 문제

“빨리 받는 것”이 아니라 “끝까지 받는 것”으로 문제를 바꿨습니다. 절반만 받고 멈추는 것보다, 시간이 더 걸리더라도 전 구간을 받는 편이 쓸모 있습니다. 빠진 구간이 있는 자료는 결국 다시 받아야 합니다.

수집 대상의 이용약관과 로봇 배제 표준을 확인하는 것이 이 판단의 전제입니다. 받아도 되는 자료인지를 먼저 정하지 않으면 그 뒤의 설계는 의미가 없습니다.

만든 것

  • 요청 간격과 재시도 제어 — 상대 서버가 감당할 수 있는 속도로 나눠 보냅니다
  • 주 단위로 끊어 받기 — 5년 넘는 구간을 한 덩어리로 다루지 않고 주차로 쪼갭니다. 실패해도 그 주차만 다시 받으면 됩니다
  • 중단 지점부터 재개 — 멈춘 자리를 기억합니다. 처음부터 다시 받는 일이 없어야 긴 수집이 끝납니다
  • 남은 시간 표시 — 진행률과 예상 잔여 시간을 화면에 둡니다. 몇 시간짜리 작업을 아무 표시 없이 돌리면 사람이 도중에 멈춰 버립니다

결과

2019년 1주차부터 2024년 30주차까지, 전 구간을 빠짐없이 받았습니다. 이후 같은 구조를 다른 수집 건에도 쓰고 있습니다.

사실 출처

숨고 인증 거래 리뷰(김OO)

시간을 아낄 수 있도록 상담해 드립니다 상담 비용 없음 · 회신 영업일 1일 이내

문의하기