최근 AI 코딩 도구의 발전은 개발 생산성을 크게 높이고 있지만, 동시에 '바이브 코딩(vibe coding)'이라는 새로운 함정을 만들고 있다는 지적이 나옵니다. 바이브 코딩은 문제를 충분히 이해하거나 기존 해결책을 탐색하기 전에, AI의 도움을 받아 대규모 솔루션을 빠르게 구축하는 경향을 의미합니다. 이는 기존에 더 효율적이고 검증된 접근법이 있음에도 불구하고 이를 놓치게 만들 수 있습니다.
이러한 문제의 대표적인 사례로 AI 코딩 시대의 언어를 지향하는 'Bend 2'가 언급됩니다. Bend 2는 사람이 법칙을 작성하면 AI가 구현과 증명(proof)을 만들고, 컴파일러가 그 증명의 타당성을 검사하는 방식입니다. 하지만 데모에서 플레이어가 깃발에 닿을 수 없다는 단순한 조건을 명시하는 데 58줄의 코드가 필요했고, 이를 AI가 증명하는 데 무려 442줄의 증명 코드가 생성되었습니다. 반면, 정형 검증(formal verification)용 오픈소스 언어인 SPARK로 동일한 데모를 재현했을 때는 LLM이 장황한 증명을 작성할 필요 없이 GNATprove 컴파일러가 12개 검사를 모두 성공적으로 증명했습니다. 이는 Bend 2가 정형 검증 분야의 기존 해법을 간과하고 LLM에 과도하게 의존하여 비효율적인 설계를 초래했음을 시사합니다.
이 사례는 AI 시대의 개발자들이 직면할 수 있는 중요한 교훈을 제공합니다. LLM은 강력한 도구이지만, 그 자체로 모든 문제에 대한 최적의 해결책을 제시하지는 않습니다. 기존 분야의 도구와 접근법에 대한 이해 없이 LLM에 막연하게 요청할 경우, 비효율적이거나 심지어 기술적으로 뒤떨어진 결과물을 얻을 수 있습니다. 따라서 개발 속도 자체보다 사전 조사 없이 설계를 굳히는 것이 더 큰 문제이며, LLM을 활용하기 전에도 해당 분야에 대한 충분한 탐색과 지식이 필수적입니다. 결국 AI는 보조 도구일 뿐, 문제 해결의 본질적인 책임과 깊이 있는 이해는 여전히 인간 개발자에게 달려있음을 강조합니다.