기계로 읽은 독일 대형 온라인 쇼핑몰 24곳의 배송 및 반품 페이지: 7곳이 차단하고, 1곳은 배송 마크업을 적용했다
요약
독일 대형 온라인 쇼핑몰 24곳의 배송 및 반품 정책을 자동 추출하는 방법을 분석했습니다. 일반 HTTP 요청만으로 17개 상점의 데이터를 파싱할 수 있었으나, 7개는 봇 도전 페이지나 차단 등으로 접근이 어려웠습니다. 이 과정에서 표준적인 배송비와 무료 배송 기준 금액 등의 패턴을 발견했습니다.
핵심 포인트
- 일반 HTTP 요청만으로도 상당수 쇼핑몰의 정책 페이지 파싱 가능.
- 7개 상점은 봇 도전, 403 에러 등으로 접근이 차단되어 크롤링에 한계가 있음.
- 표준 배송비는 €2.99~€6.95 범위이며 중앙값은 €4.95로 나타남.
- 무료 배송 기준 금액의 중앙값은 €59였으며, 9곳에서 명시됨.
AI 쇼핑 비서가 두 상점을 비교할 때 결정적인 질문들은 지루합니다. '배송비는 얼마인가요? 언제 도착하나요? 반품할 수 있나요?' 인간은 이러한 답변들을 배송 및 반품 페이지에서 찾습니다. 기계는 먼저 해당 페이지를 찾아내고, 그 내용을 읽어 산문을 숫자로 변환해야 합니다.
저는 2026년 11월 5일에 이 작업을 독일의 대형 온라인 쇼핑몰 24곳(마켓플레이스, 패션, 전자제품, DIY, 드럭스토어, 약국, 반려동물 용품, 아웃도어 및 식품 분야)을 대상으로 실행했습니다.
공개 사항: 저는 여기에 사용된 추출기(Shop Shipping & Returns Extractor)를 Apify에서 구축했습니다. 이 샘플에 대한 첫 번째 실행에서는 여러 추출 오류가 발생했습니다. 아래의 수치는 개선된 버전을 기반으로 하며, 방법론과 제한 사항은 마지막에 설명합니다.
1단계: 기계가 접근할 수 있을까?
각 쇼핑몰은 브라우저를 사용하지 않고 일반 HTTP 요청(plain HTTP requests)을 통해 방문했습니다. 이는 많은 크롤러와 에이전트(agent)들이 작동하는 방식입니다.
| 결과 | 상점 수 |
|---|---|
| 정책 페이지 발견 및 파싱 가능 | 17 |
| 브라우저 없이는 차단되거나 읽을 수 없음 | 7 |
이 7곳은 세 그룹으로 나뉩니다:
- 봇 도전 페이지(Bot challenge pages): HTTP 200 코드를 반환하지만, 콘텐츠 대신 '사용자가 사람임을 인증하세요'라는 페이지를 포함하는 곳 (3개 상점)
- HTTP 403 또는 타임아웃: 봇 보호 시스템에 의한 차단 (3개 상점)
- 빈 JavaScript 앱 셸(JavaScript app shell): HTML에 스크립트가 실행되기 전까지는 링크나 텍스트가 전혀 없는 경우 (1개 상점)
따라서 이 샘플의 29%에 대해서는 전체 브라우저를 실행하지 않거나 쇼핑몰의 방화벽(firewall)이 신뢰하지 않는 에이전트는 배송이나 반품에 대해 아무것도 학습할 수 없습니다. 여기에는 국내에서 가장 큰 상점들 중 일부도 포함되어 있습니다.
2단계: 읽을 수 있었던 17개 쇼핑몰의 상태
아래의 모든 값들은 쇼핑몰 자체의 배송, 반품 및 철회 페이지에서 자동 추출되었으며, 개연성 규칙(예: 표준 배송비는 €0.50에서 €50 사이, 배송 기간은 30일 이내, 반품 기간은 7일에서 365일 사이)이 적용되었습니다. 개별 값들은 참고용으로 간주해야 하며, 중요한 것은 패턴입니다.
배송비. 17개 페이지 중 13곳에서 추출 가능한 표준 배송 가격을 명시했습니다. 범위는 €2.99부터 €6.95였고, 중앙값은 €4.95였습니다.
무료 배송 기준 금액. 17개 중 9곳에서 무료 배송을 위한 최소 주문 금액을 명시했습니다: €29, €29, €39, €49, €59, €59.95, €60, €99, 그리고 €250입니다. 중앙값은 €59였습니다. 나머지 8곳은 무료 배송 기준을 제시하지 않거나, 추출기가 숫자로 특정할 수 없는 방식으로 표현했습니다 (예: "회원 전용 무료").
배송 시간. 9개 상점에서 표준 배송 기간을 일 단위로 명시했습니다. 이 중 8곳은 1~3 영업일 사이를 약속했습니다.
운송업체. DHL은 17개 페이지 중 11곳에서 언급되었고, 부피가 큰 상품을 위한 화물 운송(Spedition)은 9곳, Hermes는 4곳, DPD는 3곳에서 언급되었습니다.
반품. 10개 상점에서 반품 기간을 일 단위로 명시했습니다: 세 곳은 14일(법정 철회 기간), 여섯 곳은 30일, 그리고 한 곳은 100일을 언급했습니다. 또한 10곳에서 반품이 무료라고 밝혔습니다. 참고로, 14일의 철회 권리는 EU 내 모든 원격 판매에 적용되며, 더 긴 자발적 반품 기간은 상업적인 약속이며, 이 두 가지는 인간과 기계 모두에게 혼동하기 쉽습니다.
3단계: 이 정보 중 기계가 읽을 수 있는 것이 있나요?
서술형(Prose)은 신뢰성 있게 구문 분석하기 어렵습니다. 배송 및 반품 정보를 게시하는 가장 깔끔한 방법은 구조화된 데이터입니다. 바로 schema.org JSON-LD의 shippingDetails와 hasMerchantReturnPolicy이며, 이는 Google merchant listings와 AI 쇼핑 에이전트가 직접 읽는 방식입니다.
저는 각 읽을 수 있는 상점의 홈페이지와 상품 페이지를 확인했습니다:
hasMerchantReturnPolicy는 17개 중 4곳에서 발견됨shippingDetails는 17개 중 1곳에서 발견됨
나머지 상점들은 배송 및 반품 조건을 서비스 페이지의 일반 텍스트로만 게시하고 있습니다. 이는 인간과 신중한 파서에게는 충분하지만, AI 에이전트가 건너뛰거나 잘못 읽을 수 있는 바로 그 종류의 정보입니다.
이는 이전에 국제적인 Shopify 브랜드에서 본 것과 일치합니다. 상품 마크업(product markup)에는 거의 항상 가격과 재고 여부가 포함되어 있지만, 배송 비용은 거의 언급되지 않습니다.
상점들이 할 수 있는 것
- 배송 및 반품 정보를 JSON-LD로 작성하세요.
shippingDetails(비용, 배송 시간, 목적지)와hasMerchantReturnPolicy(기간, 방법, 수수료) 두 개의 블록을 조직 수준에서 한 번 설정하여 제품 전반에 걸쳐 재사용할 수 있습니다. - 숫자는 하나의 일반 문장으로 작성하세요. “독일 내 표준 배송은 4.95유로가 들고 영업일 기준 1~3일이 소요되며, 59유로 이상 구매 시 무료입니다.”와 같은 단일 문장이 세 개의 아코디언에 걸쳐 있는 표보다 파싱하기 쉽습니다.
- 철회(withdrawal)와 반품을 분리하세요. 법정 14일 철회 권리와 그 이상의 자발적 반품 기간을 두 가지 명확하게 라벨링된 사실로 제시해야 합니다.
- 봇이 무엇을 보는지 확인하세요. 방화벽이 모든 자동화 클라이언트에게 도전 페이지(challenge page)를 제공한다면, 상점을 비교하는 어시스턴트는 귀하의 약관을 전혀 읽을 수 없습니다. 이것이 여러분에게 적절한 절충점일 수도 있지만, 의도적으로 그렇게 해야 합니다.
방법 및 한계
- 클라우드 서버에서 일반 HTTP를 통해 가져온 24개 상점 도메인 모두에 대해
robots.txt를 준수했습니다. - 추출기는 푸터와 탐색 링크, 그리고 공통 경로(Versandkosten[배송비], Lieferung[배송], Rücksendung[반품], Widerruf[철회], AGB[이용약관], help-center 페이지)를 따라가며 텍스트를 독일어 및 영어 패턴으로 파싱하고 개연성 한계를 적용합니다. 모든 값은 증거 스니펫과 신뢰 수준(발견됨, 추론됨, 누락됨)을 가지고 제공됩니다.
- 동일한 샘플에 대한 첫 번째 실행에서 여러 잘못된 값이 생성되었습니다: 로그인 페이지가 반품 페이지로 오인되거나, 주문 금액 밴드가 배송비로 읽히는 경우 등이 있었습니다. 저는 위 수치를 가져오기 전에 이들을 수정했습니다. 산문(prose)으로부터의 추출은 여전히 불완전할 수 있으며, 이것이 섹션 3의 핵심입니다.
자신의 상점이나 경쟁사 목록을 확인하고 싶다면:
curl -X POST "https://api.apify.com/v2/acts/fast_data_asap~shop-shipping-returns-extractor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"shops": ["your-shop.de", "competitor.de"], "language": "de"}'
정책 페이지가 발견되고 파싱된 상점당 0.003달러가 발생하며, 차단되었거나 접근할 수 없는 상점은 무료입니다.
데이터: 2026년 11월 5일에 24개의 독일 온라인 쇼핑몰을 대상으로 자동화된 분석을 수행했습니다. 값 옆에 개별 상점 이름을 의도적으로 기재하지 않은 이유는, 순위 매기기가 목적이 아니라 전반적인 그림(overall picture)을 파악하는 것이 목표이기 때문입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기