테스트가 왜 바이브 코딩의 안전벨트인지 이해하고, AI에게 테스트를 작성시켜 회귀를 방지하는 방법을 배웁니다.
🛡️ 테스트는 두려움 없이 변경하는 자유다
"테스트 코드도 AI가 만들어주는데, 내가 왜 신경 써야 해?"라고 생각할 수 있습니다. 하지만 테스트를 신경 써야 하는 이유는 테스트를 직접 작성하기 위해서가 아닙니다. 테스트가 있으면 코드를 두려움 없이 바꿀 수 있기 때문입니다. 테스트가 있는 코드는 AI가 수정해도 기존 기능이 깨지면 즉시 알 수 있습니다. 이것이 바이브 코딩에서 테스트의 진정한 가치입니다.
🎯 무엇을 테스트해야 하는가
모든 코드를 테스트할 필요는 없습니다. 핵심 동작부터 테스트하세요. 핵심 동작이란:
- 비즈니스 로직 (계산, 변환, 필터링)
- 사용자에게 중요한 기능 (로그인, 결제, 데이터 저장)
- 자주 바뀌는 곳 (수정할수록 테스트가 빛을 발합니다)
- 버그가 났던 곳 (같은 버그가 다시 생기지 않도록)
UI의 색상, 픽셀 단위 레이아웃, 자주 바뀌지 않는 정적 콘텐츠는 테스트 우선순위가 낮습니다.
🤖 AI에게 테스트 작성 시키기
테스트 작성도 AI에게 맡깁니다. 직접 작성할 필요가 없습니다:
utils/formatCurrency.ts에 있는 formatCurrency 함수에 대한 단위 테스트를 작성해줘. 다음 케이스를 포함해야 해:
- 일반적인 양수 숫자 (1234567 → "1,234,567원")
- 0 (→ "0원")
- 음수 (→ "-5,000원")
- 소수점 포함 숫자
Vitest를 사용해.
AI가 테스트를 작성하면 실행해봅니다:
npx vitest run
모든 테스트가 통과하면 ✅, 실패하면 AI에게 실패 로그를 주고 수정시킵니다.
🔄 회귀 방지 — 테스트의 진짜 힘
회귀(regression)란 이전에 잘 됐던 기능이 새 코드 추가 후 갑자기 안 되는 현상입니다. 바이브 코딩에서 AI가 코드를 많이 수정할수록 회귀 위험이 높아집니다.
테스트가 있으면:
- 새 기능 추가 또는 리팩토링
npx vitest run- 기존 테스트가 모두 통과하면 → 회귀 없음 ✅
- 테스트 실패 → 어디가 깨졌는지 즉시 알 수 있음
이 흐름이 있으면 큰 변경도 두려움 없이 할 수 있습니다.
📊 테스트 종류와 추천 비율
| 종류 | 설명 | 예시 | 추천 비율 |
|---|---|---|---|
| 단위 테스트 | 함수 하나의 동작 검증 | formatCurrency(1000) === "1,000원" | 70% |
| 통합 테스트 | 여러 모듈이 함께 동작하는지 검증 | API 호출 → 화면 반영 | 20% |
| E2E 테스트 | 실제 브라우저에서 사용자 흐름 검증 | 로그인 → 대시보드 이동 | 10% |
입문자라면 단위 테스트부터 시작하세요. 배우기도 쉽고 효과도 빠릅니다.
🧩 TDD(테스트 주도 개발) — 선택 사항
조금 더 나아가면 테스트를 먼저 작성하고 구현하는 방식(TDD)도 있습니다:
formatCurrency 함수를 만들건데, 구현 전에 테스트를 먼저 작성해줘. 테스트가 실패하는 상태부터 시작해서, 내가 테스트를 확인한 뒤 실제 구현을 요청할게.
TDD는 기능의 경계와 동작을 먼저 정의하게 만들어서, 더 명확한 구현으로 이어집니다. 의무는 아니지만 한 번 시도해보면 왜 많은 개발자가 쓰는지 이해됩니다.
✅ 정리
- 테스트는 코드를 두려움 없이 변경할 수 있는 안전망입니다.
- 모든 코드를 테스트할 필요는 없습니다 — 핵심 비즈니스 로직부터 시작하세요.
- 테스트 작성도 AI에게 시키고, 실행해서 통과하면 확인됩니다.
- 새 기능 추가 후 테스트를 실행하는 습관이 회귀를 방지합니다.
관련 주제
- 단위 테스트 작성
- 회귀 방지
- 핵심 동작 우선 테스트
- AI에게 테스트 요청
- AI 기술
- AI 기술 강의
- 바이브 코딩 입문 — AI와 함께 만드는 첫 소프트웨어
- 무료강의
- 무료 온라인 강의
- NUGUNA
- 누구나
댓글
불러오는 중...
