인공지능(AI) 기반 코드 생성 도구의 발전은 소프트웨어 개발 방식에 근본적인 변화를 가져오고 있습니다. 이제 개발자들은 AI를 활용하는 방식에 따라 크게 두 가지 유형으로 나뉘는데, 바로 '가속형 개발자(Accelerators)'와 '바이브코더(Vibecoders)'입니다. 가속형 개발자는 AI를 코딩 속도를 높이는 도구로 활용하면서도, 생성된 코드의 의도와 구현 방식을 깊이 이해하고 유지보수하는 데 중점을 둡니다. 반면, 바이브코더는 구현과 수정 작업을 AI에 전적으로 위임하고, 자신은 요구사항 명세 작성, 맥락 제공, 결과 평가에 집중하는 경향을 보입니다.
이 두 방식의 차이는 AI가 생성하는 코드의 양보다는 개발자가 그 결과물과 맺는 관계에 있습니다. 가속형 개발자도 AI로 거의 모든 코드를 생성할 수 있지만, 최종적으로 마스터 브랜치에 병합하기 전에는 코드에 대한 완전한 이해를 확보하려 합니다. 이는 마치 언어 모델(LLM)과 개발 환경을 편집기나 플러그인처럼 코딩을 빠르게 돕는 도구로 여기는 관점입니다. 반대로 바이브코더는 언어 모델이 컴파일러나 프레임워크처럼 구현 세부 사항을 추상화해주기를 기대하며, 명세 작성과 재생성, 평가 능력에 더 많은 투자를 합니다. 이들은 구현 자체를 '폐기 가능한 것'으로 간주하기도 합니다. 하지만 이 과정에서 요구사항이 바뀌거나 잊히면 '의도 부채(intent debt)'가 쌓일 수 있으며, AI가 '멍청한 영역(dumb zone)'에 빠지지 않도록 맥락을 관리하는 데 시간이 소요될 수 있습니다.
이러한 변화 속에서 프로그래밍의 핵심 자산은 단순히 코드가 아니라, 그 뒤에 숨겨진 도메인에 대한 '모델과 이해'라는 피터 나우어(Peter Naur)의 '이론 구축으로서의 프로그래밍(Programming as Theory Building)' 관점이 재조명되고 있습니다. 코드는 눈에 보이기 때문에 가치 있게 취급되기 쉽지만, 실제로는 유지보수 부담이 될 수 있습니다. 진정한 자산은 프로그램을 설명하고, 질문에 답하며, 미래를 예측하고, 변화에 적응할 수 있는 지식, 즉 '이론'입니다. 따라서 AI가 코드를 생성하더라도, 개발자는 해결책이 현실 업무와 어떻게 연결되는지, 프로그램 각 부분이 왜 그렇게 만들어졌는지, 그리고 미래의 수정 요구에 어떻게 대응할지 설명할 수 있는 '이론'을 갖춰야 합니다.
AI 시대에 개발팀이 함께 일하려면 유지보수 책임과 경계를 명확히 합의하는 것이 필수적입니다. 서로 다른 AI 활용 방식을 가진 동료들이 명확한 합의 없이 일할 경우, 이해를 복원하거나 폐기 가능한 구현 선택을 설명해야 하는 불필요한 부담이 발생할 수 있습니다. 생성된 코드를 모두 읽는다고 해서 '의도 부채'가 해소되는 것은 아니며, 요구사항, 의도적인 설계 결정, 기존 관례, 그리고 근거 없는 선택을 구분하고 그 맥락을 코드 변화와 함께 보존하는 노력이 필요합니다.
결론적으로, AI가 코드 읽기를 불필요하게 만들 가능성은 열려 있지만, 아직 이를 확정할 충분한 증거는 없습니다. 중요한 것은 '코드를 읽지 않는 것' 자체가 진보는 아니라는 점입니다. 오히려 AI 생성 코드가 섞인 코드베이스에서는 이해와 구현을 별도로 검토하는 필요성이 더욱 커집니다. 코드 리뷰는 더 이상 코드 품질 자체보다는 구현에 드러난 '제품 이해'를 검토하는 방향으로 진화해야 합니다. 개발팀은 AI 시대에 맞는 새로운 협업 방식과 책임 분담을 정립하여, 작동하는 애플리케이션을 만드는 것을 넘어 지속 가능한 유지보수 비용을 관리할 수 있는 역량을 키워야 할 것입니다.