블로그로 돌아가기

프록시 트래픽 소모를 70% 줄이는 방법: 캐싱을 통한 파싱 및 자동화 가이드

데이터 캐싱을 올바르게 설정하여 마켓플레이스 파싱, 가격 모니터링 및 반복 작업 자동화 시 프록시 비용을 줄이는 방법을 알아보세요.

📅2026년 2월 8일
```html

Wildberries를 정기적으로 파싱하거나 Ozon에서 경쟁자의 가격을 모니터링하거나 데이터 수집을 자동화하는 경우 — 프록시 비용이 예산에 심각한 영향을 미칠 수 있다는 것을 알고 계실 것입니다. 동일한 페이지에 대한 요청, 정적 데이터의 반복 로드, 변하지 않은 정보의 업데이트 — 이 모든 것이 트래픽과 비용을 소모합니다. 해결책은 간단합니다: 올바르게 설정된 데이터 캐싱은 정보의 최신성을 잃지 않고 프록시에 대한 부하를 50-70% 줄일 수 있습니다.

이 가이드에서는 마켓플레이스 파싱부터 경쟁자 모니터링까지 다양한 작업을 위한 실용적인 캐싱 방법을 살펴보겠습니다. 안전하게 캐싱할 수 있는 데이터, 저장 기간을 설정하는 방법, 프로그래밍 기술 없이 사용할 수 있는 도구에 대해 알아보세요.

프록시 작업에서 캐싱이 중요한 이유

상황을 상상해 보세요: 매시간 Wildberries에서 500개의 상품 가격을 모니터링하고 있습니다. 캐싱이 없으면 파서가 매시간 500개의 요청을 프록시를 통해 수행하게 됩니다 — 이는 하루에 12,000개의 요청입니다. 평균 주거용 프록시 비용으로 이는 상당한 지출로 이어지며, 특히 대부분의 데이터가 전혀 변하지 않는 경우에는 더욱 그렇습니다.

통계에 따르면 마켓플레이스를 파싱할 때 60-70%의 요청이 동일한 데이터를 반환합니다: 상품 설명은 변하지 않고, 특성은 동일하며, 이미지는 정적입니다. 가격, 재고 및 검색 결과의 위치만 변합니다. 정적 데이터를 캐싱하고 동적 데이터만 업데이트하면 트래픽 절약은 50-70%에 달합니다.

실제 사례: 한 온라인 상점이 캐싱 없이 Ozon에서 경쟁자의 1200개 상품 가격을 모니터링했습니다 — 하루에 28,800개의 요청이 발생했습니다. 정적 데이터(설명, 특성)를 7일마다 업데이트하고 가격을 1시간마다 캐싱한 후 — 요청 수가 9,600으로 줄어들었습니다. 프록시 트래픽 절약은 67%에 달했습니다.

캐싱은 세 가지 주요 문제를 해결합니다:

  • 프록시 트래픽 비용 절감 — 요청 수가 적으면 = 기가바이트 요금이 적음
  • 차단 위험 감소 — 대상 사이트에 대한 요청 수가 적으면 = 차단될 확률이 낮아짐
  • 파서 작업 속도 향상 — 캐시에서 데이터가 즉시 제공되어 네트워크 요청 지연이 없음

파싱 시 캐싱할 수 있는 데이터

모든 데이터가 동일하게 캐싱에 적합한 것은 아닙니다. 정보를 정적(드물게 변함)과 동적(자주 업데이트됨)으로 구분하는 것이 중요합니다. 잘못된 캐싱 전략은 오래된 데이터 또는 절약이 없는 결과를 초래할 수 있습니다.

데이터 유형 업데이트 빈도 캐시 시간 트래픽 절약
상품 설명 한 달에 한 번 7-14일 최대 80%
특성 및 매개변수 한 달에 한 번 7-14일 최대 75%
상품 이미지 2-4주에 한 번 14-30일 최대 90%
고객 리뷰 매일 12-24시간 최대 50%
상품 가격 하루에 여러 번 1-3시간 최대 40%
재고 매시간 30-60분 최대 30%
검색 결과 위치 항상 캐싱하지 않음 0%

금칙어: 데이터가 변경될수록 캐시에 저장할 수 있는 시간이 길어집니다. Wildberries 또는 Ozon의 상품 설명은 매우 드물게 업데이트되므로 1-2주 동안 캐싱할 수 있습니다. 가격은 더 자주 변하지만, 실시간 모니터링이 필요하지 않다면 1-3시간의 캐시는 상당한 절약을 가져올 수 있습니다.

다양한 작업을 위한 캐싱 전략

효과적인 캐싱은 단순히 "하루 동안 데이터를 저장하는 것"이 아닙니다. 각 작업에 따라 데이터의 최신성과 트래픽 절약 간의 균형을 고려한 전략이 필요합니다. 일반적인 시나리오에 대한 검증된 접근 방식을 살펴보겠습니다.

다단계 캐싱

가장 효과적인 전략은 데이터를 서로 다른 저장 기간을 가진 여러 수준으로 나누는 것입니다. 이를 통해 중요한 데이터의 최신성을 유지하면서 프록시에 대한 부하를 최대한 줄일 수 있습니다.

Wildberries 파싱을 위한 다단계 캐시 예시:

  • 1단계 (30일): 상품 이미지, 브랜드, 카테고리
  • 2단계 (7일): 설명, 특성, 성분
  • 3단계 (24시간): 평점, 리뷰 수
  • 4단계 (2시간): 가격, 할인, 프로모션
  • 캐시 없음: 재고, 검색 결과 위치

이러한 전략을 사용하면 1000개의 상품에 대해 1000개의 요청을 매 2시간마다 수행하는 대신 약 300-350개의 요청을 수행하게 됩니다: 대부분의 데이터는 캐시에서 가져오고, 프록시를 통해서는 최신 가격과 재고 요청만 수행됩니다.

변경 사항 확인을 통한 캐싱

더 발전된 접근 방식은 조건부 요청을 사용하는 것입니다. 페이지를 완전히 로드하는 대신, 데이터가 마지막으로 변경된 이후에 변경되었는지를 확인하는 간단한 요청을 보냅니다. 변경되지 않았다면 캐시를 사용하고, 변경되었다면 업데이트를 로드합니다.

많은 웹사이트가 조건부 요청을 위한 HTTP 헤더를 지원합니다: If-Modified-Since 또는 ETag. 페이지가 변경되지 않았다면 서버는 본문 없이 304 (Not Modified) 코드를 반환합니다 — 이 요청에서 95%의 트래픽을 절약할 수 있습니다.

지능형 캐시 업데이트

모든 데이터를 정해진 일정에 따라 업데이트하는 대신, 높은 확률로 변경된 데이터만 업데이트합니다. 예를 들어, 상품이 프로모션에 참여하고 있다면 매시간 가격을 확인합니다. 변동이 없는 일반 상품은 2주 동안 매일 확인합니다.

팁: 변경 이력을 추적하세요. 상품 가격이 매일 변경된다면 캐시 시간을 1시간으로 줄이세요. 가격이 한 달 동안 안정적이라면 6-12시간으로 늘리세요. 적응형 캐싱은 추가로 20-30%의 절약을 가져올 수 있습니다.

프로그래밍 없이 캐싱 도구 설정하기

캐싱을 설정하는 데 프로그래머일 필요는 없습니다. 현대의 파싱 및 자동화 도구는 그래픽 인터페이스를 통해 설정할 수 있는 내장 캐시 기능을 가지고 있습니다.

Octoparse — 비주얼 빌더가 있는 파서

Octoparse는 코드 없이 웹사이트를 파싱할 수 있는 인기 있는 도구입니다. 작업 설정에서 "고급 설정" → "캐시 관리" 섹션이 있으며, 여기에서 다음을 지정할 수 있습니다:

  • 어떤 페이지 요소를 캐싱할지 (이미지, 텍스트 블록, 테이블)
  • 캐시 저장 시간 (1시간에서 30일 사이)
  • 업데이트 조건 (일정에 따라 또는 특정 필드 변경 시)

Ozon 파싱을 위한 설정 예시: 상품 설명 블록을 7일 동안 캐싱하고, 가격 블록은 2시간 동안 캐싱합니다. Octoparse는 이미 캐시에 있는 설명에 대한 요청을 자동으로 건너뛰고, 프록시를 통해 가격만 업데이트합니다.

ParseHub — 복잡한 웹사이트를 위한 캐싱

ParseHub는 동적 콘텐츠가 있는 웹사이트(자바스크립트, AJAX) 파싱에 특화되어 있습니다. "프로젝트 설정" 섹션에 "데이터 캐싱" 옵션이 있습니다:

  • 스마트 캐시 — 정적 요소를 자동으로 감지하고 캐싱합니다
  • 사용자 정의 캐시 규칙 — 캐시할 요소의 CSS 선택기를 수동으로 지정합니다
  • 캐시 기간 — 캐시의 수명은 30분에서 90일 사이입니다

ParseHub는 많은 자바스크립트가 있는 마켓플레이스에서 잘 작동합니다: Wildberries, AliExpress, Yandex.Market. 이 도구는 동적으로 로드되는 데이터를 자동으로 감지하고 반복 요청을 캐싱합니다.

Screaming Frog — SEO 전문가를 위한 도구

경쟁자의 웹사이트 분석이나 위치 모니터링을 위해 Screaming Frog를 사용하는 경우, 내장 캐싱이 많은 트래픽을 절약할 수 있습니다. "설정" → "스파이더" → "고급"에서 다음을 활성화하세요:

  • 페이지 캐시 — HTML 페이지를 로컬에 저장합니다
  • 이미지 및 CSS 캐시 — 정적 리소스를 다시 로드하지 않습니다
  • 캐시 데이터 사용 — 재스캔 시 저장된 데이터를 사용합니다

특히 동일한 웹사이트를 정기적으로 모니터링할 때 유용합니다: 첫 번째 스캔은 모든 것을 프록시를 통해 로드하고, 이후 스캔은 변경된 페이지만 요청합니다.

마켓플레이스 파싱 시 캐싱

마켓플레이스는 e-commerce 비즈니스에서 가장 인기 있는 파싱 작업입니다. Wildberries, Ozon, Yandex.Market은 유사한 데이터 구조를 가지고 있어 보편적인 캐싱 전략을 적용할 수 있습니다.

최소한의 트래픽으로 Wildberries 파싱하기

일반적인 작업: 경쟁자의 500개 상품 모니터링. 캐싱이 없으면 — 2시간마다 500개의 요청 = 하루에 6000개의 요청. 올바른 캐싱을 사용하면 — 하루에 1500-2000개의 요청으로 줄어듭니다.

Wildberries 캐시 설정 단계별 가이드:

  1. 상품에 대한 첫 번째 요청: 전체 카드(설명, 특성, 이미지)를 로컬 데이터베이스 또는 JSON 파일에 저장합니다
  2. 상품의 고유 식별자인 아티클 번호를 추출하여 별도로 저장합니다
  3. 다음 요청 시: 캐시에 아티클 번호가 있는지, 저장 기간이 만료되지 않았는지 확인합니다
  4. 캐시가 유효하다면: 캐시에서 설명과 특성을 가져오고, 프록시를 통해 가격과 재고 블록만 요청합니다 (Wildberries의 별도 API 엔드포인트입니다)
  5. 캐시된 데이터와 최신 가격을 결합하여 전체 최신 정보를 얻습니다

Wildberries는 가격과 재고를 별도의 가벼운 API 요청을 통해 제공합니다 (약 2-5KB 대신 전체 페이지의 200-500KB). 무거운 부분을 캐싱하고 가격만 요청하면 트래픽 절약은 90-95%에 달합니다.

Ozon 파싱 최적화

Ozon은 파싱에 대한 방어가 더 강력하므로 불필요한 요청이 차단될 위험을 높입니다. 캐싱은 비용을 절약할 뿐만 아니라 차단될 확률도 줄입니다.

Ozon의 특징: 상품 카드에는 동일한 블록(브랜드 설명, 카테고리의 표준 특성)이 자주 포함됩니다. 동일한 브랜드의 100개 상품을 파싱하는 경우 — 브랜드 설명은 동일합니다. 이러한 반복 블록을 별도로 캐싱하세요:

  • 브랜드 설명 → 30일 동안 캐시
  • 카테고리의 표준 특성 (예: 의류의 "성분") → 14일 동안 캐시
  • 특정 상품의 고유 설명 → 7일 동안 캐시
  • 가격 및 재고 → 2-4시간마다 요청

Avito: 광고 캐싱

Avito를 파싱할 때 (경쟁자 모니터링, 새로운 광고 추적) 광고가 자주 삭제된다는 점을 고려해야 합니다. 삭제된 광고의 데이터를 캐싱하는 것은 무의미합니다.

전략: 활성 광고만 캐싱하고 정기적으로 가벼운 요청으로 상태를 확인합니다. 광고가 삭제되면 캐시를 지웁니다. 이는 데이터베이스의 혼잡을 방지하고 파서의 작업 속도를 높입니다.

경쟁자 가격 모니터링 최적화

가격 모니터링은 캐싱이 최대 효과를 발휘하는 작업입니다. 가격은 매분 변경되지 않지만, 정기적으로 확인해야 합니다. 올바른 캐시 설정은 불필요한 요청 없이 변경 사항을 추적할 수 있게 합니다.

적응형 확인 빈도

모든 상품이 동일한 모니터링 빈도를 요구하는 것은 아닙니다. 동적 가격이 있는 상품(전자제품, 세일 상품)은 더 자주 확인해야 합니다. 안정적인 가격의 상품(건축 자재, 가구)은 덜 자주 확인합니다.

적응형 가격 캐싱 예시:

  • 지난 7일 동안 가격이 변경된 상품 → 2시간마다 확인, 2시간 캐시
  • 변경이 없는 상품 7-30일 → 6시간마다 확인, 6시간 캐시
  • 변경이 없는 상품 30일 이상 → 하루에 한 번 확인, 24시간 캐시

이러한 접근 방식은 고정된 확인 빈도에 비해 요청 수를 40-60% 줄입니다. 1000개의 상품을 모니터링할 때 하루에 12,000개의 요청(2시간마다) 대신 5000-7000개의 요청을 수행하게 됩니다.

변경 사항 알림을 통한 캐싱

모든 가격을 지속적으로 업데이트하는 대신, 시스템을 설정하여 가격을 일정에 따라 확인하되 변경 시에만 캐시를 업데이트합니다. 가격이 변경되지 않으면 새로운 요청 없이 현재 캐시의 유효 기간을 연장합니다.

많은 파서(Octoparse, ParseHub)는 "변경된 경우에만 업데이트" 모드를 지원합니다. 도구가 요청을 보내고, 새로운 데이터를 캐시와 비교하여 차이가 없으면 캐시를 재작성하지 않고 마지막 확인 시간을 업데이트합니다.

캐시 설정 시 일반적인 실수

잘못된 캐싱은 오래된 데이터, 중요한 정보 손실 또는 절약이 없는 결과를 초래할 수 있습니다. 자주 발생하는 실수와 이를 피하는 방법을 살펴보겠습니다.

실수 1: 동적 데이터에 대한 너무 긴 캐시

경쟁자 모니터링 시 가격을 24시간 동안 캐싱하는 것은 나쁜 아이디어입니다. 하루 동안 가격이 3-5번 변경될 수 있으며, 특히 경쟁이 치열한 분야에서는 더욱 그렇습니다. 트래픽 절약은 얻을 수 있지만, 데이터의 최신성을 잃게 됩니다.

해결책: 데이터 변경의 실제 빈도를 파악하세요. 테스트를 수행하여 50-100개의 상품을 매시간 모니터링하고 가격이 얼마나 자주 변경되는지 확인하세요. 이를 바탕으로 최적의 캐시 시간을 선택하세요.

실수 2: 버전 관리 없는 캐싱

매번 업데이트할 때 캐시를 단순히 덮어쓰면 변경 이력을 잃게 됩니다. 이는 가격 동향 분석에 치명적입니다: 한 달 동안 가격 변화를 그래프로 나타낼 수 없으며, 이전 데이터가 지워지기 때문입니다.

해결책: 타임스탬프가 있는 캐시 버전을 저장하세요. 예를 들어, product_12345.json 대신 product_12345_2024-01-15.json를 생성하세요. 이렇게 하면 이력을 분석하고 필요할 경우 이전 버전으로 롤백할 수 있습니다.

실수 3: 캐시 크기 무시

수천 개의 상품을 전체 HTML 페이지로 캐싱하면 디스크가 빠르게 가득 찹니다. 10,000개의 상품에 대한 캐시는 이미지와 스크립트를 포함한 전체 페이지를 저장할 경우 5-10GB를 차지할 수 있습니다.

해결책: 필요한 데이터만 캐싱하세요. 전체 HTML 페이지를 저장하는 대신 특정 필드(이름, 가격, 설명)를 추출하여 구조화된 형식(JSON, CSV)으로 저장하세요. 이렇게 하면 캐시 크기를 10-20배 줄일 수 있습니다.

팁: 오래된 캐시를 자동으로 정리하도록 설정하세요. 30-90일 이상 된 데이터는 일반적으로 현재 작업에 필요하지 않으므로 별도로 아카이브하거나 삭제하세요. 이는 파서의 작업 속도를 높이고 디스크 공간을 확보합니다.

실수 4: 캐시 오류 처리 부족

캐시가 손상된 경우(쓰기 실패, 디스크 오류) 파서는 잘못된 데이터를 사용하거나 아예 중단될 수 있습니다. 자동 모니터링 시 특히 치명적입니다: 며칠 동안 오래된 데이터를 받아도 모를 수 있습니다.

해결책: 캐시 무결성을 확인하는 기능을 추가하세요. 데이터와 함께 체크섬(hash)을 저장하세요. 읽을 때 확인하세요: hash가 일치하지 않으면 캐시가 손상된 것이므로 프록시를 통해 새 요청이 필요합니다.

결론

올바르게 설정된 캐싱은 데이터 품질을 손상시키지 않고 프록시 비용을 50-70% 줄이는 간단한 방법입니다. 주요 원칙: 데이터를 정적 및 동적으로 구분하고, 서로 다른 저장 기간을 가진 다단계 캐싱을 사용하며, 실제 변경 동향에 맞춰 업데이트 빈도를 조정하세요.

대부분의 마켓플레이스 파싱 및 가격 모니터링 작업에는 복잡한 기술 솔루션이 필요하지 않습니다 — Octoparse 또는 ParseHub와 같은 현대 도구는 10-15분 만에 그래픽 인터페이스를 통해 설정할 수 있는 내장 캐시 기능을 가지고 있습니다.

간단한 것부터 시작하세요: 상품 설명을 1주일 동안 캐싱하고, 가격은 2-3시간 동안 캐싱하세요. 일주일 동안 결과를 추적하고 실제 변경 통계에 따라 설정을 조정하세요. 기본적인 캐싱만으로도 30-40%의 트래픽 절약이 가능하며, 최적화된 캐싱은 최대 70%까지 절약할 수 있습니다.

마켓플레이스를 파싱하거나 경쟁자 가격을 모니터링하는 경우, 주거용 프록시와 캐싱을 함께 사용하는 것을 권장합니다 — 이는 차단 없이 안정적인 작업과 최소한의 트래픽 비용을 보장합니다. 속도가 중요하고 대량의 데이터가 필요한 작업에는 데이터 센터 프록시가 적합합니다 — 올바른 로테이션 및 캐싱 설정 시 더 빠르고 저렴합니다.

```