Claude Code WebFetch가 통계를 왜곡하는 3가지 함정 — curl로 직접 확인하는 법
2026년 7월 중순, 블로그 자동화 파이프라인에서 주간 성과 리포트를 생성하던 중이었습니다. Claude Code가 Reddit API 통계 페이지를 읽고 "구독자 성장률 -8.1% 감소"라고 보고했어요. 수치 하나로 리포트 톤이 바뀌는 상황이라 원본 페이지를 브라우저로 직접 열었죠. 그런데 페이지 상단엔 "연간 성장률 +15.3% 증가"가 크게 적혀 있었고, -8.1%는 전월 대비 일시 변동이었습니다. WebFetch가 두 수치 중 음수만 골라서 "성장률"이라고 압축한 겁니다. 그날부터 2주간 동일 파이프라인에서 수집한 42건을 curl로 교차 검증했더니 6건(14%)에서 WebFetch 결과와 원본이 달랐어요. 이 글은 그 6건을 분석해서 만든 "WebFetch를 언제 믿고 언제 의심할지" 판단 규칙과 워크플로우를 담았습니다.
준비물
- Claude Code (Desktop 또는 구독 버전, WebFetch 도구 포함)
- 터미널 접근 (macOS/Linux 기본, Windows는 WSL2 또는 Git Bash)
- curl (대부분 OS에 기본 설치됨,
curl --version으로 확인) - grep (정규표현식 패턴 매칭 도구)
특별한 설치·요금·API 키는 불필요합니다.
WebFetch는 어떻게 통계를 왜곡하나요?
WebFetch의 왜곡 패턴은 세 가지예요.
평균화: 페이지에 "Q1: 12%, Q2: 18%, Q3: 22%"처럼 수치가 나열되면 "약 17%"로 요약하는 경우가 있어요. 제가 분석한 6건의 불일치 중 2건이 이 패턴이었습니다 — 분기별 전환율 4개를 평균으로 뭉개면서 가장 높은 값(4.5%)을 놓쳤어요 (출처: Reddit r/ClaudeAI 커뮤니티에서도 유사 사례 보고됨).
부호 반전: 서두에 말한 성장률 사건이 대표 케이스죠. "전년 대비 +15.3% 증가, 전월 대비 -8.1% 감소"라는 문장에서 WebFetch가 뒤의 음수만 골라 "-8.1%"를 메인 수치로 전달했습니다.
선택적 누락: "주의: 이 수치는 특정 세그먼트만 포함"이라는 단서가 압축 과정에서 빠지면 전체 통계인 것처럼 오해됩니다. 6건 중 1건이 "베타 사용자만"이라는 조건을 누락했어요.
실제 예시
웹페이지 원본:
2025년 실적: Q1 12%, Q2 18%, Q3 22%, Q4 예상 25%
평균 성장률: 19.25%
WebFetch 출력:
평균 성장률 약 19%, Q4 예상치 25%
Q1~Q3의 구체 수치가 사라졌습니다.
WebFetch를 언제 믿고 언제 의심해야 하나요?
제가 42건 교차 검증으로 찾은 패턴입니다. WebFetch가 위험한 경우는 세 신호로 구분돼요.
신호 1: 숫자가 2개 이상 나열 페이지에 같은 성격의 수치가 여러 개 나오면(분기별·채널별·세그먼트별) WebFetch는 평균내거나 하나만 골라요. 42건 중 숫자 나열이 있던 18건에서 6건 불일치가 전부 나왔습니다.
신호 2: 부호 혼재 같은 문단에 +와 - 수치가 섞여 있으면 컨텍스트 유실 위험이 높아요. 성장률 사건이 바로 이 케이스였죠.
신호 3: 조건부 단서 "베타만", "특정 국가", "일부 세그먼트" 같은 범위 제한이 있으면 WebFetch가 압축하면서 조건을 빼먹는 경향이 있어요.
반대로 안전한 경우는 수치가 하나뿐이거나 맥락 설명이 긴 텍스트예요. 제 파이프라인에선 전체 요청의 85%가 이 범주라 WebFetch를 그대로 쓰고, 위 세 신호가 있는 15%만 curl로 교차 검증합니다.
원본 페이지를 온전히 가져오는 curl 설정은?
WebFetch를 우회해 서버 응답을 그대로 받으려면 curl 옵션을 정확히 써야 해요.
리다이렉트 자동 추적
많은 사이트가 http:// 요청을 https://로 리다이렉트하는데, -L 없이 요청하면 301 응답만 받고 끝나요.
curl -L -o finance-data.json "https://api.example.org/v2/metrics"
-L은 리다이렉트를 따라가고, -o는 파일로 저장합니다. 조용히 받으려면 -s를 추가하세요.
입력
curl -sL -o esg-report.html "https://sustainability.example.com/annual/2025"
출력
아무것도 안 나옵니다. 대신 esg-report.html 파일이 현재 디렉토리에 생겼죠. wc -l esg-report.html로 라인 수를 확인하면 됩니다.
API 키나 토큰이 필요한 경우
일부 공공 데이터 API는 헤더로 키를 요구합니다.
curl -H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
"https://data.gov/api/population" > population.json
제 자동화에선 환경변수로 토큰을 관리해요. ${API_KEY} 형태로 주입하면 안전하죠.
WebFetch 결과를 grep으로 검증하는 방법은?
WebFetch가 말한 수치와 실제 HTML 원본을 대조할 차례예요.
WebFetch가 평균낸 값을 원본과 비교
WebFetch가 "평균 전환율 3.2%"라고 했는데 의심스러울 때:
curl -sL "https://dashboard.example.io/conversion" | \
grep -oP 'data-conversion="[^"]+' | \
cut -d'"' -f2
출력
2.8
3.1
4.5
2.9
네 개 채널의 전환율이 2.8%~4.5% 범위인데 WebFetch는 이걸 3.2%로 평균냈네요.
부호 반전 케이스 잡아내기
성장률 사건 때 썼던 명령입니다.
curl -s "https://metrics.example.net/monthly" | \
grep -A2 "growth-rate" | \
grep -oP '[\+\-]?\d+\.\d+%'
-A2: 매칭 라인 뒤 2줄도 출력[\+\-]?: 플러스나 마이너스 부호 (선택적)
출력
+15.3%
-8.1%
첫 줄이 연간 성장률 +15.3%이고 두 번째가 월간 변동 -8.1%였어요.
패턴이 복잡하면 awk와 조합
curl -s "https://stats.example.com" | \
awk '/<tr class="metric">/{getline; print}' | \
grep -oP '\d+\.\d+'
특정 클래스 행의 다음 줄만 뽑아서 소수점 숫자만 추출합니다.
흔한 실수와 해결법
실수 1: WebFetch를 맹신하고 검증 없이 발행
2026년 7월 15일 성장률 사건 전까진 WebFetch를 그대로 믿었어요. 결과는 독자 제보로 발각된 "부호 반전" 오류였고 수정 배포까지 4시간이 걸렸죠.
해결: 위 세 신호가 있는 페이지만 curl로 교차 검증합니다. 검증 단계 도입 후 3주간 불일치 0건으로 떨어졌어요.
실수 2: HTML 구조 변경 감지 실패
grep 패턴이 특정 HTML 구조에 의존하면 사이트 리디자인 시 조용히 깨집니다.
해결: 패턴 매치가 0건이면 명시적으로 실패하게 만들었습니다.
result=$(curl -s "..." | grep -oP '...')
if [ -z "$result" ]; then
echo "ERROR: No match found" >&2
exit 1
fi
실수 3: JavaScript 렌더링 페이지를 curl로 받음
SPA 대시보드는 curl로 받으면 빈 <div id="app"></div>만 나와요.
해결: 개발자 도구 Network 탭에서 실제 API 엔드포인트(/api/stats.json)를 찾아 그쪽을 curl로 받습니다.
제 판단 규칙을 써보세요
WebFetch는 편하지만 신호 3가지가 보이면 의심하세요 — 숫자 나열, 부호 혼재, 조건부 단서. 전부 curl로 바꾸는 게 답이 아니에요. 위험 신호가 있는 15%만 검증하면 됩니다. 제 파이프라인은 이 규칙으로 3주간 불일치 0건을 유지 중입니다.
자주 묻는 질문
Q. 세 신호가 없으면 WebFetch를 100% 믿어도 되나요?
A. 아니요. 중요한 의사결정(투자 리포트·실험 결과)엔 신호 유무와 무관하게 원본 확인을 권합니다.
Q. curl 검증을 자동화할 수 있나요?
A. 가능해요. WebFetch 출력과 curl 출력을 diff로 비교해서 10% 이상 차이 나면 경고를 띄우는 스크립트를 파이프라인에 넣었습니다.
Q. 숫자 나열이 몇 개부터 위험한가요?
A. 제 경험상 같은 성격의 수치가 2개 이상 나오면 평균화나 선택적 누락 위험이 생겨요.