-
AI 코딩 도구를 활용해 점점 더 큰 작업을 맡기며 놀라움을 느꼈지만, 결과물의 일관성과 구조적 완성도가 부족함을 확인
- 세부 명세서를 작성해도 AI 에이전트가 장기적 맥락을 유지하거나 설계를 진화시키지 못함, 결국 코드베이스 전체가 불균질한 조각들의 집합으로 변함
- 코드 조각은 개별적으로는 완전해 보이지만, 전체적으로는 구조적 무질서(sloppy) 와 맥락 붕괴가 발생
- 이러한 경험 끝에 작성자는 AI가 만든 코드로는 사용자 신뢰나 데이터 보호를 보장할 수 없다고 판단, 직접 코드를 작성하는 방식으로 회귀
- AI 코딩은 여전히 유용하지만, 기술 부채와 개발자 통제력 상실을 초래할 수 있어 신중한 활용이 필요함
AI 코딩의 초기 흥분과 한계 인식
- 대부분의 사용자는 간단한 작업으로 AI 코딩을 시작해 점차 복잡한 과제를 맡기며 성능에 감탄함
- 그러나 일정 시점 이후 AI의 오류와 비일관성이 드러나며, 기대와 현실의 간극이 발생
- 사용자는 결과가 만족스럽지 않을 때 자신의 프롬프트 문제로 돌리며 더 구체적인 명세를 작성하려 시도
- Obsidian 등 도구를 이용해 세밀한 스펙 문서를 작성하지만, AI가 이를 장기적으로 발전시키지 못함
명세 기반 접근의 실패
- 실제 개발에서는 설계 문서가 발견과 구현 과정에서 지속적으로 변하는 ‘살아 있는 문서’ 임
- 그러나 AI 에이전트는 초기 명세에 고정되어 유연한 수정이나 재해석이 불가능
- 복잡한 구조를 다루는 동안 에이전트는 문제의 전체 맥락을 잃거나, 무리하게 진행하는 경향
- 결과적으로 코드가 겉보기에는 완전해 보여도 내부 일관성과 구조적 무결성이 결여됨
코드 품질의 붕괴와 ‘vibecoding’의 한계
- AI가 작성한 코드는 부분적으로는 훌륭해 보이지만, 전체적으로는 의미 없는 조합이 됨
- 작성자는 코드베이스 전체를 검토한 후, 그 안에 ‘순수한 난잡함(slop)’ 이 존재함을 발견
- AI는 프롬프트와 자기 일관성에는 충실하지만, 전체 시스템의 조화나 인접 패턴의 일관성을 고려하지 않음
- 이는 마치 소설의 일부 문단은 훌륭하지만, 전체 장(chapter)은 엉망인 ‘vibewriting’ 과 유사한 현상
인간 중심 개발로의 회귀
- 작성자는 AI가 생성한 코드를 제품으로 배포하거나 사용자 데이터 보호에 활용할 수 없다고 판단
- “이 코드로 사용자에게 거짓말하지 않겠다”는 결심과 함께 직접 코딩으로 복귀
- 직접 작성 시 속도, 정확성, 창의성, 생산성이 오히려 향상됨을 체감
- 단순한 코드 생성 속도가 아닌 전체 개발 효율을 기준으로 평가할 때 인간의 우위 확인
AI 코딩의 지속적 활용과 경계
- 작성자는 여전히 일부 작업에서 LLM을 제한적으로 활용(약 40%)
- 반복 작업이나 단순 코드 생성에는 유용하지만, 기술 부채와 코드 이해도 저하가 누적됨
- 장기적으로는 개발자가 코드베이스의 정신적 모델을 잃고, AI 없이는 문제 해결이 불가능해지는 위험 존재
- 이동 중(기차·비행기 등)에는 AI 의존으로 인해 생산성이 0%가 되는 상황도 발생
- 다른 개발자들은 “‘명세만 잘 쓰면 된다’는 사고는 워터폴 모델의 재현이며, 실제 개발은 즉흥적 탐색과 상호작용이 필수라고 지적
결론
- AI 코딩은 여전히 강력한 도구지만, 전체 시스템의 맥락과 구조적 일관성을 유지하는 능력은 부족
- 인간 개발자의 직관적 판단과 즉흥적 조정 능력이 여전히 핵심이며,
AI는 보조 수단으로서 신중히 통제된 방식으로 사용해야 함