🤖인사이트

잠자는 동안 실행되는 AI 에이전트 만들기

AI가 자동으로 코드를 작성하지만, 그 결과를 어떻게 신뢰할 수 있을까? TDD 원칙을 활용한 검증 시스템 구축기

원본 링크
#AI에이전트#코드검증#TDD#자동화

문제: AI가 만든 코드를 믿을 수 있을까?

AI 에이전트가 밤새 코드를 작성하고 브랜치에 반영하지만, 정작 그 코드가 올바른지 검증하기 어렵습니다.

실제 사례:

Claude Code를 사용하는 팀들의 PR 병합량이 **주당 10개에서 40~50개로 급증**
코드 리뷰에 더 많은 시간 소비
결국 배포 후에야 문제를 발견하는 악순환

기존 해결책의 함정

1. 리뷰어 추가 채용

시니어 엔지니어가 하루종일 AI 코드만 읽는 비효율
속도가 따라가지 못함

2. AI가 자기 코드 테스트

"자기 축하 기계": 가 되어버림
원래 의도와 다른 오해를 잡아내지 못함
같은 AI가 작성하고 검증하면 같은 실수 반복

해결책: TDD 원칙 차용

핵심 아이디어

코드 작성 전에 수용 기준(Acceptance Criteria)을 먼저 작성하기

실제 적용 예시

로그인 기능 수용 기준:

AC-1: 유효한 자격 증명으로 로그인 시 /dashboard로 이동, 세션 쿠키 설정
AC-2: 잘못된 비밀번호 입력 시 "Invalid email or password" 표시
AC-3: 필드가 비어있으면 제출 버튼 비활성화
AC-4: 5회 실패 후 60초간 차단, 대기 시간 메시지 표시

검증 파이프라인 구축

4단계 프로세스

1.수용 기준 작성 (코드 작성 전)
2.에이전트가 구현 (Claude Code 등)
3.별도 도구로 검증 (Playwright MCP)
4.통과/실패 명확히 판별

사용 도구

Claude Code의 headless 모드 (`claude -p`)
Playwright MCP (브라우저 자동화)
별도 백엔드 불필요

핵심 교훈

> "에이전트 산출물을 신뢰하려면 작업 시작 전에 '완료'의 정의를 명확히 해야 합니다"

프롬프트 작성보다 수용 기준 정의가 더 어렵지만 필수적

AI의 속도 문제는 해결됨
이제 느린 부분은 "코드가 올바른지 판단하는 것"
평문으로 기능 요구사항 기술하는 것이 단위 테스트보다 쉬움

결론

AI 에이전트를 신뢰하려면:

1.먼저 "무엇을 해야 하는지" 명확히 정의
2.별도 도구로 독립적 검증
3.같은 AI로 작성과 검증을 동시에 하지 말 것