"테스트는 개발자만 짠다"는 옛 통념. AI에게 시키면 비개발자도 30분에 테스트 셋업. 이 한 페이지로 Vitest + Playwright + AI 활용까지 끝냅니다.
"AI가 짠 코드를 어떻게 믿나" — 테스트가 그 답입니다
Stage 5에서 Claude Code가 짠 코드, 진짜 작동하는지 어떻게 압니까? 한 번 손으로 클릭해서 확인? 그건 첫 1주만 가능합니다. 기능이 10개 넘으면 매번 손으로 검증 불가능 → 테스트 코드가 그 검증을 자동화합니다.
Unit 많이 / Integration 중간 / E2E 적게
Next.js 15 + Vitest 가장 빠른 셋업
실제 사용자가 클릭하는 흐름을 자동화 — 가입→결제→발송
--ui 옵션이 게임 체인저. 실제 브라우저 클릭하듯 테스트를 보면서 디버깅 가능. 비개발자에게 가장 직관적인 도구. codegen 기능으로 클릭만 하면 테스트 코드 자동 생성도.
"이 함수의 테스트 짜줘" — Claude Code가 가장 잘하는 작업 중 하나
테스트는 코드보다 패턴이 명확해서 AI가 매우 잘 짭니다. 구현 코드를 던지면 80%의 테스트가 자동으로 나옵니다. 사람은 엣지 케이스 1~2개만 추가.
테스트는 자동으로 돌아야 의미 있음 — 매 커밋·PR마다
Stage 3의 settings.json Stop Hook에 pnpm test를 추가하면 Claude가 작업 끝낼 때마다 자동 실행. GitHub Actions에 추가하면 push마다 검증.
.claude/settings.json의 Stop Hook을:"pnpm typecheck && pnpm lint && pnpm build""pnpm typecheck && pnpm lint && pnpm test:ci && pnpm build"| 우선순위 | 대상 | 도구 | 이유 |
|---|---|---|---|
| 🥇 1순위 | 결제 금액 계산·검증 | Vitest | 틀리면 매출 손해 + 분쟁 |
| 🥇 1순위 | Webhook 처리 (멱등성) | Vitest | 중복 처리 시 사용자에게 알림 2번 |
| 🥈 2순위 | 가입→결제→발송 E2E 1개 | Playwright | 핵심 funnel 막히면 매출 0 |
| 🥈 2순위 | 이메일 발송 함수 | Vitest (mock) | 발송 실패 시 사용자 항의 |
| 🥉 3순위 | RLS 정책 검증 | Integration | 다른 사용자 데이터 노출 방지 |
| 4순위 | UI 컴포넌트 | Vitest + RTL | 변화 잦아 ROI 낮음 |