---
title: "바이브 코딩 현실, 테스트는 통과했는데 261편 중 6편만 맞았다"
creative_title: "초록불은 끝이 아니라 출발선: AI가 만든 테스트를 믿기 전에 할 3가지"
source: https://blog.wonizz.com/2026/09/27/vibe-coding-reality-selftest-real-data/
author: 워니즈 (WONIZZ.LOG)
published: 2026-09-27
curated: 2026-09-29
curator: "다비 (davi.kr)"
tags: [바이브코딩, 셀프테스트, 변이테스트, 실데이터검증, ClaudeCode]
purpose: "AI 에이전트가 만든 도구의 '테스트 통과'를 그대로 믿지 않고, 실제로 맞는지 확인하는 방법을 쉽게 정리하고 수업과 업무에 바로 적용하기 위한 문서"
---

원문: https://blog.wonizz.com/2026/09/27/vibe-coding-reality-selftest-real-data/

# 초록불은 끝이 아니라 출발선
원제: 바이브 코딩 현실, 테스트는 통과했는데 261편 중 6편만 맞았다

## 요약

블로그 운영자 워니즈가 Claude Code(Claude Opus 계열 모델)에게 블로그 자동화 도구 3개를 맡겼습니다. 3개 모두 셀프테스트를 통과해 GATE_OK(완료 신호)를 받았지만, 실제 데이터로 돌리자 전부 틀렸습니다.

| 도구 | 테스트 결과 | 실제 데이터 결과 | 틀린 가정 |
|---|---|---|---|
| 서치콘솔 원장 | 통과 | 글 261편 중 6편만 매칭 | 표 첫 칸에는 URL만 있다 |
| 광고 점검 | 통과, "렌더 실패" 판정 | 브라우저로 보니 광고 정상 표시 | 슬롯 수가 노출보다 많으면 실패다 |
| 수요 게이트 | 파생 검색어 65개로 통과 | 실제 주제 검색어는 2개 (기준 20개) | 적힌 키워드가 글의 주제다 |

원인은 코드가 아니라 가정이었습니다. 같은 AI가 코드와 테스트를 함께 만들면 같은 착각이 양쪽에 들어가서 둘이 함께 틀립니다. 서치콘솔 도구는 URL만 뽑는 정리 함수를 넣은 뒤 매칭이 6편에서 100편으로 늘었습니다.

필자는 완료 조건을 3가지로 바꿨습니다.
1. 변이 테스트: 코드를 일부러 조금 망가뜨려 보고 테스트가 잡아내는지 확인 (예: `<`를 `<=`로 바꾸고 경계값 20을 넣기)
2. 실데이터 1회 실행: 만들자마자 진짜 데이터로 한 번 돌리고, 미리 적어 둔 기대 숫자와 비교
3. 판별 불가: 도구가 볼 수 없는 것은 결론 내리지 말고 "모름 + 이유"로 남기기

## 핵심 메시지

AI가 만든 테스트의 통과는 "코드가 AI의 가정대로 움직인다"는 뜻일 뿐입니다. 가정이 맞는지는 실제 데이터만 알려 줍니다.

## 핵심 키워드

바이브 코딩, 셀프테스트, GATE_OK, 변이 테스트(Mutation testing), 실데이터 검증, 판별 불가, 경계값, 기대 범위, Claude Code

## 쉬운 설명

시험 문제를 낸 사람과 푼 사람이 같으면, 둘 다 같은 부분을 잘못 알고 있어도 100점이 나옵니다. AI에게 프로그램과 그 프로그램의 시험(테스트)을 함께 만들게 하면 바로 이 일이 생깁니다. 테스트가 통과해도 "AI가 상상한 세상에서는 잘 된다"는 뜻일 뿐, 진짜 세상에서 맞는다는 보장은 없습니다.

그래서 진짜 데이터를 한 번 넣어 보는 것이 가장 확실합니다. 글 261편 중 적어도 수십 편은 맞아야 한다고 미리 생각해 둔 덕분에, 결과가 6편일 때 "이상하다"고 바로 알아챘습니다. 기대 숫자를 먼저 적는 습관 하나가 큰 실수를 막습니다.

## 활용 방법

### 가장 쉬운 방법: AI에게 코드를 맡길 때 아래 3문장을 요청 끝에 붙이기
```
1. 셀프테스트를 만든 뒤 경계값과 조건을 바꾼 변이를 2~3개 넣어서 테스트가 전부 잡는지 보여 주세요.
2. 만든 직후 실데이터로 한 번 돌리고 매칭률이나 건수를 보고해 주세요.
3. 이 도구가 직접 볼 수 없는 것은 판정하지 말고 "판별 불가"와 그 이유로 남겨 주세요.
```

### 실행 순서
- 돌리기 전에 기대 숫자를 직접 적으십시오. (예: "261편 중 최소 50편 매칭") AI에게 정하게 하지 마십시오.
- 결과에서 키로 쓰는 값 1줄을 그대로 출력해 눈으로 읽으십시오. 공백이나 버튼 문구 같은 불순물이 보입니다.
- 한 번 만난 실제 입력 모양은 테스트 데이터(픽스처)에 추가하십시오. 같은 오류가 돌아오면 테스트가 먼저 실패합니다.
- 웹 화면을 긁는 크롤러는 특히 1회 실행을 생략하지 마십시오. 남의 화면 구조는 직접 긁어 봐야만 압니다.

### 수업 적용 (강사용)
- 실습 과제로 "AI가 만든 코드에 `<`를 `<=`로 바꾸는 변이를 넣고 테스트가 잡는지 확인"을 10분 활동으로 넣으십시오.
- 원문의 서치콘솔 사례(6편 → 100편)를 "테스트 통과인데 틀린 코드" 도입 예시로 쓰십시오.
- 자바 수업에는 PIT, 자바스크립트 수업에는 Stryker 같은 변이 테스트 도구를 소개하십시오.

### 하지 말 것
- 한 번 쓰고 버릴 스크립트까지 변이 테스트를 붙이지 마십시오. 비용 대비 효과가 낮습니다.
- 지시문(규칙 문장)만 추가하고 막았다고 판단하지 마십시오. 코드로 된 검사 장치가 있어야 합니다.

## 전문가 의견 (사실 기반)

### 강점
- 수치가 구체적입니다. 261편 중 6편, 수정 후 100편, 파생어 65개 대 2개 등 재현 가능한 숫자와 실행 명령(Python 3.14.7)을 제시합니다.
- 변이 테스트, innerText 동작 등 핵심 개념에 Wikipedia, MDN 같은 공개 출처를 달았습니다.
- 필자가 스스로 한계 6가지를 명시하고, 미확인 사항(6편은 왜 맞았는지 등)을 미확인으로 남겼습니다.
- "같은 AI가 코드와 테스트를 함께 만들면 가정이 겹친다"는 진단은 소프트웨어 테스트 분야의 오래된 원칙(테스트 작성자와 구현자 분리)과 일치합니다.

### 한계
- 표본은 블로그 1곳, 도구 3개입니다. 필자도 바이브 코딩 전반에 일반화할 근거가 없다고 밝혔습니다.
- 사용 모델은 본문에 없고, 독자 댓글 지적 후 답글로 "Claude Opus 계열"이라고만 밝혔습니다. 정확한 버전은 확인되지 않습니다.
- 변이 테스트는 수작업 변이 2~3개 수준입니다. PIT, Stryker 같은 도구는 필자가 실제 적용하지 않았습니다.
- 사례 3의 재발 방지책은 아직 지시문 1줄이라 효과가 검증되지 않았습니다.
- 광고 사례의 최종 원인(미게재 167건, 미집계 118건)은 도구가 아니라 사람이 광고 콘솔을 읽어 찾았습니다. 3가지 확인법은 오류를 "발견"하게 할 뿐 원인 분석을 대신하지 않습니다.

## Bottom Line

AI가 만든 도구의 테스트 통과를 완료로 치지 마십시오. 다음에 AI에게 코드를 맡길 때 기대 숫자 1개를 먼저 적고, 위 3문장을 요청에 붙이십시오. 지금 당장 시작하십시오.

---
정리: [다비 (davi.kr)](https://davi.kr/)
