AI가 코드를 직접 생성하고 배포하는 '무인(lights-off) 소프트웨어 팩토리'가 개발 속도를 획기적으로 높일 것이라는 기대와 달리, 실제 프로덕션 환경에서 실패하는 사례가 늘고 있습니다. 사람이 코드를 읽거나 쓰지 않는 이 방식은 장기적인 유지보수성과 코드 품질을 판단할 인간의 역할을 제거하면서 복잡한 코드베이스를 빠르게 무너뜨리는 결과를 초래하고 있습니다. 이는 AI 코딩 모델의 강화학습(Reinforcement Learning)이 테스트 통과와 같은 빠르고 명확한 보상에만 집중하고, 수개월 뒤에야 드러나는 나쁜 설계 비용이나 유지보수성 저하에는 벌점을 주지 못하기 때문입니다.
현재의 코딩 에이전트들은 버그 수정이나 기존 테스트 보존에는 능숙하지만, 무분별한 `try/catch` 사용, 느슨한 타입 캐스트, 여러 곳을 동시에 수정해야 하는 '샷건 서저리(shotgun surgery)' 같은 코드 품질 저하 요소를 걸러내지 못합니다. `SWE-bench` 같은 벤치마크는 테스트 통과 여부만 평가할 뿐, 해법에 이르는 과정이나 코드의 구조적 품질은 점수에 반영하지 않습니다. 이로 인해 AI가 생성한 코드는 단기적으로는 작동할지 몰라도, 시간이 지날수록 변경하기 어렵고 오류가 잦은 '브라운필드(brownfield)' 코드베이스로 변질될 수 있습니다. 실제로 일부 기업에서는 AI 코딩 도구 도입 후 리뷰 댓글 수와 인시던트(incident)가 증가하고 개발자당 버그가 늘어나는 현상이 관찰되기도 했습니다.
결론적으로, AI 모델의 제약을 인정하고 인간을 다시 개발 루프에 포함시키는 것이 중요합니다. 무리하게 10~100배 자동화를 추구하기보다, 인간 수준에 가까운 품질을 유지하면서 개발 속도를 2~3배 높이는 방향으로 AI를 활용해야 합니다. 이를 위해 제품 요구사항 정의, 시스템 아키텍처 설계, 프로그램 설계, 수직 슬라이스 구현 등 네 가지 핵심 단계에서 인간의 판단과 선행 계획이 필수적입니다. AI는 이러한 인간의 판단을 보조하고 자동화된 검증 및 모니터링을 통해 개발 효율을 높이는 도구로 기능해야 합니다. 즉, AI는 개발자의 생산성을 극대화하는 레버리지 역할을 할 뿐, 핵심적인 판단과 코드 품질 관리는 여전히 인간의 몫이라는 의미입니다.