흥미로운 글이 있어, 정리해 남긴다. 좀 더 상세한 내용은 레퍼런스를 참고 바란다. 본 글의 제목은 "어느 코딩 1도 모르는 문과생 바이브 코딩 경험기:)". 말 그대로^^
머리말
AI 기술을 활용한 코딩 방식은 크게 '바이브 코딩(Vibe Coding)'과 '에이전트 AI(Agentic AI)'라는 두 가지 패러다임으로 구분될 수 있다. 이 두 접근법은 개발자의 개입 수준, 상호작용의 속도, 그리고 자동화의 범위에서 근본적인 차이를 보인다.
바이브 코딩은 AI 지원 프로그래밍(AI-Assisted Programming)의 한 형태로, 개발자와 AI가 실시간으로 상호작용하는 능동적(active) 프로세스이다. 이는 본질적으로 AI와 페어 프로그래밍을 수행하는 것과 유사하며, 개발자가 주도자(driver) 역할을, AI가 보조자(observer) 역할을 맡는다. 반복 주기는 수 초 단위로 짧으며, 개발자의 작업 흐름(flow)을 지원하는 데 중점을 둔다.
반면 에이전트 AI는 개발자가 AI에게 명확한 목표를 위임하는 수동적(passive) 프로세스에 해당한다. 이 모델에서 AI는 자율적 에이전트로서 작동하며, 코드 분석, 작성, 테스트, 심지어 풀 리퀘스트 생성에 이르는 복합적 작업을 독립적으로 수행할 수 있다. 반복 주기는 수 분에서 수 시간에 이르며, 개발자의 직접적인 개입을 최소화하는 것을 목표로 한다.
바이브 코딩의 일반적 경험
바이브 코딩의 일반적인 도입 과정은 기술적 숙련도가 상대적으로 낮거나 해당 코드베이스에 익숙하지 않은 인력이 간단한 작업을 처리하는 것에서 시작되는 경향이 있다. 초기 단계에서 사용자는 UI의 사소한 버그 수정이나 문구 변경과 같은 명확하게 정의된 소규모 작업을 AI의 도움을 받아 수행한다.
이 과정은 통상적으로 1) 수정할 코드를 수동으로 탐색하고, 2) AI에게 자연어 프롬프트로 변경을 지시하며, 3) 생성된 코드를 검토하고, 4) 결과를 수동으로 검증하는 단계를 포함한다. AI가 한 번에 완벽한 코드를 생성하지 못하는 경우가 많으므로, 원하는 결과를 얻기까지 여러 차례의 반복적인 프롬프팅이 요구된다.
작업의 복잡성이 증가하거나 AI가 특정 문제에 고착되는 경우, 사용자는 병렬 처리 방식으로 접근법을 변경할 수 있다. 이는 단일 AI 모델 대신, 다수의 독립적인 개발 환경에서 서로 다른 모델이나 프롬프트를 사용하여 동일한 문제를 동시에 처리하는 전략이다.
바이브 코딩의 장점
바이브 코딩의 주요 장점 중 하나는 코드 기여의 진입 장벽을 낮춘다는 점이다. 코딩 실무 경험이 적은 관리직이나 비개발 직군 인력도 특정 프레임워크에 대한 깊은 지식 없이 간단한 코드 수정에 기여할 수 있다.
또한 단순 반복 작업의 효율화에 기여한다. 숙련된 개발자에게도 정형화된 코드(boilerplate) 작성이나 간단한 버그 수정은 시간이 소요되는 작업이며, AI는 이러한 작업을 신속하게 처리하여 개발자가 더 복잡한 문제에 집중하도록 돕는다.
생소한 코드베이스를 탐색하거나 새로운 기술을 학습할 때 가이드 역할을 수행할 수 있다.
수 초 단위의 즉각적인 피드백 루프는 개발자가 코드를 실험하고 아이디어를 빠르게 검증하는 것을 용이하게 하여, 중단 없는 '몰입(flow)' 상태를 유지하는 데 긍정적인 영향을 미친다.
단점 및 한계
바이브 코딩은 제공되는 컨텍스트에 크게 의존한다. 만약 코드베이스가 오래되어 방치된 코드나 안티패턴(anti-pattern)을 다수 포함하고 있다면, AI는 이러한 부정확한 패턴을 학습하여 비표준적인 코드를 생성할 위험이 있다. 이는 코드 실행 안전성, 보안 문제, 해킹 등 치명적 이슈를 포함할 수 있다.
인간의 개입이 필수적인 병목현상(Human-in-the-Loop Bottleneck)이 존재한다. 이 방식은 본질적으로 능동적인 상호작용을 요구하므로, 시스템의 전체 처리량은 AI의 속도가 아닌, 인간이 동시에 관리할 수 있는 작업의 수와 생성된 코드를 검토 및 테스트하는 속도에 의해 제한된다.
AI가 특정 문제 해결 과정에서 국소 최적해(local optima)에 고착되어 비효율적인 해결책을 반복적으로 제안하는 현상이 발생할 수 있다.
AI가 생성한 코드는 반드시 인간에 의해 검증되어야 하므로, 이 검토 비용이 발생한다. 경우에 따라서는 AI의 제안을 수정하고 검증하는 데 소요되는 시간이 숙련된 개발자가 직접 작성하는 시간보다 더 오래 걸릴 수도 있다.
더 중요한 문제는 바이브 코딩 결과물이 블랙박스거나 스파게티 코드 덩어리가 될 수 있다는 점이다. 비 개발자가 바이브 코딩을 남용할 때 주로 이런 문제가 발생한다. 유지보수되지 않고, 읽기 어려운 산출물은 결국 버려지게 되어 있다.
바이브 코딩 도구 개발사는 이런 문제에 대해 책임지지 않을 것이다.
한계 극복 및 발전
바이브 코딩의 효율성을 높이고 단점을 완화하기 위해서는 AI에 제공되는 컨텍스트의 품질을 향상시키는 것이 필수적이다. 이는 단순히 프롬프트를 개선하는 것을 넘어, AI가 참조할 수 있는 프로젝트의 코딩 스타일 가이드, 회피해야 할 안티패턴 목록, 테스트 명령어 등을 '규칙(Rules)' 파일 형태로 명시하여 제공하는 방식을 포함한다.
이 정보가 AI 프롬프트에 자동으로 주입되면, AI는 프로젝트의 맥락에 더 부합하는 코드를 생성할 수 있다. 요약하자면, 바이브 코딩은 개발 워크플로우를 강화하는 패러다임으로, 특히 비전문가의 코드 기여 장벽을 낮추고 단순 작업을 가속화하는 데 유용하다. 그러나 이 방식의 내재적 한계인 인간 개입 의존성과 컨텍스트 부족 문제는, 결국 개발자의 역할이 AI의 참여자에서 위임자로 전환되는 '에이전트 AI' 패러다임으로의 발전을 촉진하는 요인이 된다.
레퍼런스
- Agentic AI has changed my career. I don’t write code… or at least, I… | by Elliot Graebert | Sep, 2025 | Medium
- Don’t be a Vibe Coder. Problems with Vibe Coding | by Mehul Gupta | Data Science in Your Pocket | Medium
- AI Vibecoding Is a Black Box, Why We Need Transparency and Tinkerability
- Vibe Coding Can Create Unseen Vulnerabilities - DevOps.com
댓글 없음:
댓글 쓰기