새벽 2시, 불 꺼진 방 안의 모니터 앞. AI 에이전트가 수백 개의 엣지 케이스 테스트 코드를 쉼 없이 쏟아내고 있다. 이 장면 뒤에 소프트웨어 공학의 오랜 상식이 무너지고 있다.
AI가 쓴 97만 줄의 코드와 90%의 임계점
Garry Tan(스타트업 액셀러레이터 Y Combinator의 CEO)이 X에 공유한 에세이가 개발자 사이에서 뜨겁다. 그는 Claude Code(AI 코딩 에이전트)와 Codex(AI 코드 생성 모델)를 활용해 약 97만 줄의 코드와 665개의 테스트 파일을 작성했다. 동시에 15개의 에이전트 세션을 운영하며 속도와 품질을 동시에 잡았다고 밝혔다.
Capers Jones(소프트웨어 품질 전문가)가 1만여 개의 프로젝트를 분석한 수치는 여기서 갈린다. 테스트 커버리지 70% 이하에서는 결함 제거율이 65~75%에 그치지만, 85~95% 구간에 진입하면 제거율이 92~97%로 급등하는 무릎 지점이 존재한다. 항공 소프트웨어 표준인 DO-178C(항공기 시스템 안전 표준)의 Level A 단계에서는 MC/DC(조건/결정 커버리지, 소프트웨어 테스트 기법)를 강제해 99% 이상의 결함 제거율을 추구한다.
복잡성 래칫과 에러 모델의 전환
예전의 소프트웨어 공학은 에러를 치명적인 것으로 보고 예방하는 데 모든 에너지를 쏟았다. 코드 리뷰, QA(품질 보증), 스테이징 환경 구축 같은 복잡한 프로세스는 모두 에러가 시스템을 파괴하는 것을 막기 위한 방어선이었다. 하지만 이제는 대부분의 에러를 에이전트가 다음 턴에 즉시 진단하고 수정할 수 있는 구조로 바뀌었다.
이제는 시스템 복잡도의 상한선이 사람이 머리에 담을 수 있는 양에서 결정되지 않는다. 한 사람의 개발자와 전체 코드베이스를 컨텍스트 윈도우(AI가 한 번에 이해하는 데이터 범위)에 로드한 에이전트들이 그 한계를 확장한다. 여기서 복잡성 래칫(한 방향으로만 움직이는 톱니바퀴 장치) 개념이 등장한다. 테스트(무엇이 옳은가), 문서(왜 그렇게 결정했는가), 평가 결과(품질 기준선)라는 세 가지 축적물이 코드베이스에 쌓이면, 다음 세션의 AI가 이를 읽고 작업하므로 품질이 후퇴하지 않고 전진만 하게 된다.
사람은 퇴사나 번아웃으로 떠나지만 테스트와 문서로 남은 지식은 영속적이다. 어떤 모델을 사용하든, 어떤 시점에 작업을 시작하든 래칫으로 고정된 지식은 다시 불러올 수 있다. 과거에는 마지막 20%의 커버리지를 채우는 작업이 너무 지루하고 비용이 커서 포기했지만, 피로를 느끼지 않는 AI 에이전트는 새벽에도 엣지 케이스 테스트를 끝없이 작성하며 이 장벽을 허물었다.
GBrain(신념 추출 도구)의 추출 정확도를 개선하는 과정에서 이 방식의 위력이 드러났다. 10만 건 이상의 추출 작업 중 누가 주장을 했는지 35%나 오인하던 문제를 17개의 테스트로 고정했다. 결과적으로 어떤 후속 버전이 나와도 품질이 이 기준 이하로 떨어질 수 없는 안전망이 구축되었다.
Superpowers(AI 기반 도구) 프로젝트에서는 Bun(빠른 자바스크립트 런타임)의 의사 터미널 기능을 활용해 비전통적인 요구사항을 테스트했다. AI 에이전트가 대화형 리뷰를 건너뛰는 행동을 TTY(터미널 출력 방식) 테스트로 직접 감시하고 차단함으로써 AI의 행동 양식까지 테스트 영역으로 끌어들였다.
개발자가 바로 체감하는 변화는 외부 기여자의 진입 장벽이 극적으로 낮아진다는 점이다. 기여자가 시스템 전체를 완벽히 이해하지 못해도, AI가 촘촘하게 짜놓은 테스트만 통과시키면 안전하게 PR(풀 리퀘스트, 코드 변경 요청)을 머지할 수 있다. 다만 잘못된 DB 마이그레이션(데이터베이스 구조 변경)이나 보안 침해 같은 상태 파괴적 에러는 여전히 치명적이며, 인프라의 약 10%는 본질적으로 테스트가 어렵다는 한계가 존재한다.
AI 코딩의 진짜 가치는 작성 속도가 아니라, 그동안 비용 때문에 포기했던 극한의 검증을 무료로 만든 것에 있다.




