AI가 내 UI를 2시간 만에 만들었다. 그리고 나는 그것을 고치는 데 3주를 보냈다.
AI 에이전트가 2시간 만에 내 UI를 구축했다. 47개의 파일을 수정했고, 컴포넌트, API 라우트, 그리고 검증 라이브러리(validation library)까지 만들어냈다.
정말 놀랍다고 생각했다. 일주일 치의 업무를 아꼈다고 생각했다.
6주가 지난 지금도 나는 여전히 그 코드를 수정하고 있다. 컴포넌트는 작동하지만, 팀원들은 왜 코드가 그렇게 작동하는지 설명하지 못한다. AI는 우리의 패턴을 따르지 않았다. 대신 새로운 패턴을 만들어냈다. 이제 우리는 같은 작업을 수행하는 두 가지 서로 다른 방식을 갖게 되었고, 문서는 전무하다.
이것이 바로 '고스트 구현(Ghost Implementation)' 문제다.
뼈대는 다 갖췄지만 살점은 없는 코드를 얻게 되는 것이다. 코드는 컴파일되고 테스트도 통과한다. 하지만 왜 그렇게 작성되었는지 아는 사람이 아무도 없다. AI는 맥락(context)이 부족하고, 개발자는 이해도가 부족하다.
컨설팅 업무를 하며 세 가지 주요 문제를 목격했다:
- 구현 기억상실증(Implementation Amnesia): 개발자들이 함수의 요구사항을 충분히 고민하기도 전에 AI에 의존한다.
- 리뷰어 맹목성(Reviewer Blindness): 엔지니어들이 AI의 제안을 읽지도 않고 '승인(accept)'을 클릭한다.
- 디버깅 퇴화(Debugging Atrophy): 개발자들이 변수를 격리하여 원인을 찾는 대신, 버그를 고치기 위해 AI를 사용한다. 이는 15분이면 끝날 수정을 3시간짜리 늪으로 만든다.
사람들은 AI가 보일러플레이트(boilerplate)를 처리하는 동안 자신들은 아키텍처를 다룬다고 말한다. 이것은 착각이다. 보일러플레이트는 시스템의 결합 조직(connective tissue)이다. 이를 작성하는 과정을 건너뛰면, 아키텍처의 근간이 되는 패턴을 놓치게 된다.
우리는 배포 시간(time to ship)은 측정하지만, 유지보수 시간(time to maintain)은 측정하지 않는다.
AI 도구는 속도를 위해 만들어졌다. 장기적인 안정성을 위해 만들어진 것이 아니다. 배포 속도만 측정한다면, 엄청난 기술 부채(technical debt)를 쌓게 될 것이다.
AI를 사용하면서도 실력을 유지하는 방법:
- 두 번 설명하기: 문서를 보지 않고도 도구가 왜 작동하는지 설명할 수 없다면, 지식의 공백이 있는 것이다.
- 단순한 프로젝트 만들기: AI 없이 작은 프로젝트 하나를 직접 코딩해라. 수동 작업 능력을 유지해야 한다.
- 아키텍처 로그 작성하기: 모든 중요한 결정에 대해 세 문장씩 적어라. 무엇을 선택했는지, 무엇을 거절했는지, 그리고 그 이유는 무엇인지 기술하라.
- 의존도 추적하기: AI 사용 세션을 1에서 5까지 점수로 매겨라. AI에 너무 많이 의존하고 있다면, 당신의 감각을 잃고 있는 것이다.
단순히 AI의 제안을 승인하는 사람이 되지 마라. 시스템을 이해하는 사람이 되어라.
마지막 AI 풀 리퀘스트(pull request)를 살펴보라. 상태 관리(state management) 방식을 소리 내어 설명해 보라. 만약 할 수 없다면, 당신은 '고스트 구현'을 하고 있는 것이다.
AI가 당신의 디버깅 프로세스를 어떻게 바꾸었나요? 댓글로 알려주세요.
Optional learning community: https://t.me/GyaanSetuAi