단원 4 — 바이브 코딩의 청구서, 3개월의 벽과 7건의 사고
별칭: VBC 실패 단원 · 3개월의 벽 단원
요약
concept/vibe-coding 의 환상과 청구서 를 정면 진단. term/three-month-wall — 1~3개월 유포리아 후 혼돈과 붕괴 가 도착한다. 7건의 실제 프로덕션 사고 (Lemkin·PocketOS·Anthropic·curl·Moltbook·Lovable·Dog Tracker) 가 모두 동일 원인 으로 수렴 — 목표·제약·검증 기준의 시스템적 부재. AI 약함이 아니라 우리가 구조를 안 줘서 망한다.
상세
3개월의 벽 — 3단계 붕괴 패턴
| 단계 | 기간 | 양상 | 위험 |
|---|---|---|---|
| 유포리아 | 1~3개월 | 폭발적 속도, 시각적 결과물 | 설계 누락·보안 무시·기술 부채 누적 |
| 혼돈 | 3~5개월 | 버그 수정이 다른 버그 유발 | concept/context-rot (문맥 부패), 일관성 상실 |
| 붕괴 | 6개월+ | 유지보수 불가능, 전체 재작성 | 운영 효율성 상실, 번아웃 |
concept/context-rot 메커니즘: 대화 이력에만 의존 → AI가 이전 결정 사항을 망각 → 기존 코드 패턴과 충돌하는 새 코드 생성 → term/requirements-drift → 아키텍처 붕괴.
7건의 사고 (모두 2025~2026, 1차 출처 보유)
| 사례 | 결과 | 직접 원인 |
|---|---|---|
| case/lemkin-replit-db-deletion (Jason Lemkin) | 100시간 작업 → 프로덕션 DB 삭제 | term/planning-only-mode 부재, dev/prod 미분리 |
| case/pocketos-cursor-db-deletion (PocketOS, 2026-04-28) | 수 초 만에 DB+백업 삭제 | 자연어 프롬프트 규칙만 있고 권한 분리 부재 |
| case/anthropic-incident-log | git branch 삭제, 토큰 유출, DB 마이그레이션 시도 | "사용자가 의도하지 않은 방식의 주도권" |
| case/curl-slop-bug-bounty-end (Daniel Stenberg, 2026-01-26) | curl bug bounty 프로그램 종료 | AI Slop 검토 비용 폭증 |
| case/moltbook-token-leak | 150만 토큰 + 개인 메시지 유출 | DB 보안 사양(RLS) 미정의 |
| case/lovable-auth-inversion | 170개 앱 인증 로직 역전 | 인증 사양 모호함을 AI가 임의 해석 |
| case/dog-tracker-bloat | 프로젝트 폐기 → 재시작 1시간에 성공 | term/requirements-drift + term/code-bloat |
통계 보강: case/security-flaw-53-percent — AI 생성 코드의 53%가 보안상 중대 결함.
★ 학생 자체 검증 응대 — 규모별 설계 곡선
"교수님, 제 과제는 100 줄 / 3 일 짜리인데 — 설계 안 해도 잘 돌아갔는데요?"
맞다. 그런 학생일수록 우수 하다. 답변은 부정 이 아니라 위치 인식.
| 프로젝트 규모 | 기간 | 설계 비율 | 본 강의의 위치 |
|---|---|---|---|
| 100 줄 / 1 일 | 과제 | 0% | 여러분의 지금 |
| 1,000 줄 / 3 일 | 학기 프로젝트 | 5~10% | 여러분의 4 학년 졸작 |
| 10,000 줄 / 2 주 | 졸업작품·해커톤 | 25% | case/crossbeam-hackathon-win |
| 100,000 줄 / 2 개월 | 스타트업 MVP | 50% | case/elisa-project |
| 1,000,000 줄 / 6 개월 | 회사 코드베이스 | 80% | 여러분의 입사 후 첫 6 개월 |
→ "여러분의 과제는 곡선 왼쪽. 졸업하면 오른쪽 으로 갑니다. 이 강의는 그 오른쪽으로 갈 때를 대비 하라는 것."
Vercel · Next.js 도 설계를 한다 — 형태가 다를 뿐: GitHub Issues / RFC (Request for Comments) 가 설계 문서의 다른 이름. 무거운 UML 한 장이 아니라 결정의 기록 — AI 시대의 설계 = 무거운 문서 ❌, 의사결정 보존 ⭕. → concept/instructing-ai-as-blueprint 가 정확히 이 형태.
4사례 공통 패턴 (책자 Part 1 핵심)
- 무엇을 하면 안 되는지 시스템적으로 고정되지 않음
- 환경 경계 (dev/prod) 설계 없음
- 검증 기준 (acceptance criteria) 없음
- 플랜 단계 없이 즉시 실행 (term/accept-all)
→ 결과: 프로덕션 사고 / 재작업 비용 / 프로젝트 고사
방법론
강의 진행 시퀀스 (13분):
- 충격 훅 (1분): "이 코드, 3개월 뒤에도 고칠 수 있습니까?"
- 3개월의 벽 표 (2분): 유포리아·혼돈·붕괴 3단계 시각화.
- 사고 3종 핵심 (4분): Lemkin·PocketOS·Anthropic — 시간 / 결과 / 직접 원인 1슬라이드씩.
- 공통 원인 추출 (1분30초): "원인이 뭐였을까요?" → 4 패턴 정리.
- ★ 학생 반대측 응대 — 규모별 설계 곡선 (90초): "제 과제는 100 줄인데?" 질문 응대. 곡선 표 1 슬라이드 → "여러분은 곡선 왼쪽. 졸업하면 오른쪽." + Vercel RFC 사례 1 줄.
- 메시지 전환 (1분): "AI가 약해서가 아닙니다 — 우리가 구조를 안 줘서 입니다."
- 53% 통계 (1분): 보안 결함률로 마무리.
- 다음 단원 예고 (1분): "그러면 우리는 무엇이 되어야 합니까?" → lesson/vbc-coder-to-architect.
주의사항
- 공포 마케팅 자제: 실패 나열만 하면 AI 거부 로 흐른다. 반드시 원인 = 설계 부재 / 처방 = 다음 단원 으로 즉시 환원.
- 사례 시점 정확 표기: 2025-08, 2026-04, 2026-01 등 일자 슬라이드 명기.
- Anthropic 사례의 무게: Claude 제작사가 자체 인정한 사례라는 점이 수렴 권위 의 정점. 강조.
- curl 사례 이질성: 다른 사례가 AI 사용자 실패 라면 curl 은 AI 부산물의 외부 피해. 결이 다름을 짧게 짚어준다.
- 53% 수치 출처: 원 출처가 AI 코드 분석 통계 보고 — 강의에서 출처 명시 필수.
표어 정합
본 단원의 7 사고 가 강의 표어 "AI-Native Vibe Coding: No Design, No Code" 의 가장 강한 청구서 다. 설계 없이는 코딩이 안된다 (Thesis) — 7 사례가 모두 동일 원인 으로 수렴. AI 가 약해서가 아니라 우리가 어떻게 일을 시키는가의 구조 (Corollary) 를 안 줘서 망한다.