
Claude Code 조사 결과가 조용히 틀리는 4가지 패턴과 CLAUDE.md에 붙여넣는 자기 검사
요약
Claude Code 사용 시 에러 없이 잘못된 결론을 도출하는 4가지 패턴을 분석하고, 이를 방지하기 위해 CLAUDE.md에 적용할 수 있는 자기 검사 가이드를 제안합니다.
핵심 포인트
- 에러 없이 틀린 값을 반환하는 패턴 식별
- 정규 표현식 오류로 인한 데이터 추출 실패 사례
- 측정 방법론의 차이로 인한 데이터 왜곡 주의
- CLAUDE.md를 활용한 AI 에이전트의 자기 검사 프로세스 구축
이 기사의 초안은 AI 에이전트(Claude)가 작성했으며, 기사 중의 측정·오류·수정도 모두 동일한 에이전트가 실제로 수행한 것입니다.
공개 전 인간 운영자가 내용을 검증하고, 지적 사항을 바탕으로 전면적으로 다시 작성했습니다.
또한, 이 기사는 '인간이 읽는 부분'과 'Claude에게 붙여넣는 부분'으로 나누어져 있습니다.
- Claude에게 Web 조사를 시키면,
에러를 내지 않고 틀린 숫자를 반환하는 경우가 있다 - 가장 많은 것은 "
전부 0건이었습니다", "데이터가 없었습니다" —— 실제로는 가져올 수 있는데, 추출하는 코드가 망가져 있는 경우 - 아래 블록을
CLAUDE.md
에 붙여넣으면, Claude가 스스로 깨닫고 수정하게 된다
이하는 실제로 1시간 동안 4번 겪은 실례입니다.
시킨 일: Kindle의 4개 장르에 대해, 검색 결과에서 리뷰 건수를 가져와 수요가 있는지 판정하게 함.
돌아온 결과: 4개 장르 모두, 상위 16개의 리뷰 수가 전부 0. "어느 장르도 구매자가 없습니다"라는 결론이 내려져 있었다. 4개 안을 전부 버리기 직전이었다.
실제 코드는 다음과 같았다.
// Claude가 작성한 것
r.innerText.match(/\n((d[d,]*))/) // → 항상 null
innerText가 예상했던 줄바꿈을 포함하고 있지 않았을 뿐이다. 를 지우면 작동한다.
r.innerText.match(/(([d,]+))/) // → 45, 29, 36, 52
알아챌 수 있었던 이유: 우연히 리뷰 수를 눈으로 보고 알고 있는 장르가 하나 있었다. 그곳에 같은 코드를 적용했을 때 45 / 29 / 36 / 52가 나와야 하는데 전부 0이 나왔다. 여기서 처음으로 망가졌다는 것을 알았다.
시킨 일: 3권의 상품 페이지에서 베스트셀러 랭킹을 가져오기.
돌아온 결과: 3권 모두 "랭킹 없음". 실제로는 3권 모두 표시되고 있었다 (#954,501 / #501,507 / #471,546). 정규 표현식이 너무 엄격해서 벗어났다.
까다로운 점은 여기: "랭킹이 표시되지 않는 상품"은 실제로 존재한다 (팔리지 않는 신간 등). 게다가 우리가 낸 책이 바로 그 상태였다. 그래서 "없음"을 봐도 위화감이 없었고, 의심할 이유가 사라져 있었다.
0과 "해당 없음"은 코드가 망가졌을 때 가장 나오기 쉬운 값이면서도, 정상적인 관측 결과로서도 있을 수 있는 값이다. 이 두 가지는 단독으로는 구별할 수 없다.
돌아온 결과: "한쪽은 16건, 다른 한쪽은 4,000건 초과. 250배의 차이가 있습니다"
실제로는 16건은 1페이지에 표시된 건수였고, 4,000건은 검색 결과의 총수였다. 총수끼리 비교하면 3,000건 vs 4,000건으로 1.3배. 차이는 거의 없다.
이 결론은 그대로 의사결정 기록에 쓰였고, 1시간 후에 다른 작업을 하다가 우연히 깨달았다. 자릿수에서 차이가 날 때일수록, 측정 방법을 먼저 의심해야 한다.
랭킹을 비교하던 중, 한 장르만 #12,691로 자릿수가 다르게 좋은 값이 나왔다. 자세히 보니 Free in Kindle Store라고 적혀 있었다. 무료 도서의 랭킹이라서 유료 도서의 랭킹과는 모집단이 다르다. 나머지는 전부 유료 랭킹이었기에 그 부분만 돌출되어 보였던 것이다.
여기서부터 아래를 통째로 복사해서 붙여넣어 주세요.
## 측정·스크레이핑 시의 자기 검사
1. 스크레이퍼를 작성했다면, 답을 알고 있는 대상을 1건 섞어서 측정한다.
기대값과 일치하지 않으면 코드가 망가진 것이다. 섞지 않고 측정한 결과는 보고하지 않는다.
...
붙여넣기 전에는 1시간 동안 4번, 에러를 하나도 내지 않고 틀린 결론이 나왔습니다. 2번은 그대로 기록에 쓰였고, 나중에 취소했습니다.
붙여넣은 후에 할 수 있게 되는 것은, 틀리지 않는 것이 아니라, 틀린 것을 스스로 깨닫고 보고해 오는 것입니다. Claude는 "조사했습니다, 결과는 이렇습니다"라고 자신 있게 대답하므로, 의심할 계기를 외부에서 주지 않으면 멈추지 않습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기