바이브 코딩
바이브 코딩이란?
바이브 코딩은 2024/2025년에 안드레이 카르파시가 소개한 AI 기반 프로그래밍 방법입니다. 바이브 코딩에서는 자연어 프롬프트로 원하는 것을 설명하면 보통 대형 언어 모델(LLMs)이 대부분, 종종 전부의 동작하는 코드를 생성해 줍니다. 시간 여유가 있다면 릭 루빈이 각색한 바이브 코딩의 예술을 확인해 **바이브 코딩의 방식**에 대해 더 알아보세요.
이 새로운 방법의 큰 장점 중 하나는 접근성입니다. 코딩 경험이 전혀 없는 사람도 프로젝트를 만들 수 있고, 숙련된 개발자는 완전히 몰두하기 전에 빠르게 새로운 아이디어를 프로토타입할 수 있습니다. 이는 스타트업에 특히 유용합니다. 단점은 생성된 코드가 어떻게 동작하는지 개발자가 완전히 이해하지 못할 가능성이 크다는 점입니다. 작은 사이드 프로젝트에는 괜찮지만, 프로덕션 수준의 소프트웨어에서는 장기적인 문제와 기술 부채로 이어질 수 있습니다.
바이브 코딩을 더 원활하게 해주는 도구들이 많이 있습니다. Cursor IDE, Claude Code CLI, GitHub Copilot, Loveable, Replit, v0 등은 환경에서 AI와 직접 작업하거나 바이브 코딩을 위한 전용 인터페이스를 제공합니다. 개인적으로 저는 이 프로젝트들에서 주로 Cursor IDE와 Claude Code CLI를 사용했습니다.
그런데 중요한 점이 있습니다. 이러한 도구와 모델은 비용이 듭니다. 전통적인 코딩에서는 대부분 시간을 대가로 지불합니다. 바이브 코딩에서는 지갑으로 비용을 지불하게 됩니다. 그리고 무엇을 하는지 모른다면 지갑과 시간 둘 다 지불하게 됩니다. 이 페이지의 각 프로젝트는 구축하는 데 약 $10에서 $20 정도의 비용이 들었습니다. 실험을 많이 하면 비용이 쌓입니다. 저는 이러한 모델이 개선되고 더욱 효율적이 되면 비용이 결국 내려갈 것이라고 생각합니다. 당분간은 바이브 코딩이 당신의 프로젝트에 적절한지 결정할 때 고려할 만한 사항입니다.
무엇이 가능한지 궁금해서, 저도 직접 바이브 코딩을 시도해 보았고 이 원리를 실제 프로젝트를 통해 탐구하기 위해 이 페이지를 만들었습니다. 단순히 제품을 만드는 것이 아니라 바이브 코딩이 실제로 무엇을 할 수 있는지 시험하고 보여주고 있습니다. 이건 단지 재미로 한 것이지만, 모델들이 계속 발전함에 따라 미래의 코딩이 어떻게 보일지 엿볼 수 있게 해 줍니다.
무한 원숭이 정리
무한 원숭이 정리를 들어본 적 있나요? 이 철학적 사고 실험은 만약 무한한 원숭이들에게 무한한 타자기와 무한한 시간이 주어진다면, 결국 그들 중 하나가 키를 무작위로 두드리는 것만으로도 셰익스피어의 전집을 만들어낼 것이라고 말합니다.
말도 안 되는 소리처럼 들리죠? 그런데 이게 좀 기이한 점이 있습니다. 바이브 코딩은 그와 비슷합니다. 다만 원숭이 대신 AI 모델이 있고, 타자기 대신 프로그래밍 언어가 있으며, 셰익스피어 대신 동작하는 소프트웨어가 나옵니다.
생각해 보세요. 대형 언어 모델은 수십억 줄의 코드, 패턴, 예제로 학습되었습니다. LLM에 프롬프트를 주면, 그것은 인간 개발자가 문제를 단계별로 “생각"하는 방식으로 해결하는 것이 아닙니다. 대신 교육 과정에서 학습한 패턴을 바탕으로 다음에 올 가장 가능성 높은 토큰을 예측합니다. 통계적으로 옳아 보이는 것에 기반하여 코드를 생성하면서 사실상 추측을 하는 셈입니다.
그런데 신기하게도, 대부분의 경우 작동합니다. 모델은 실제로 컴파일되고 실행되며 문제를 해결하는 코드를 출력합니다. 이해를 통해서가 아니라, 엄청난 규모의 확률적 패턴 매칭을 통해서입니다. 마치 우주에서 가장 정교한 무작위 텍스트 생성기가 “정답"을 찾아낸 것과 같습니다. 다만 차이는 속도입니다. 그 원숭이들은 문자 그대로 무한대가 필요했을 것입니다. 당신의 AI는 몇 초나 몇 분 만에 도달합니다.
그래서 어떤 의미에서는 바이브 코딩을 사용할 때, 수백만 줄의 코드 패턴을 증류한 모델을 활용하여 솔루션을 생성하는 것입니다. 의식적인 문제 해결이 아니라 통계적 마법입니다. 그리고 바로 그 점이 매우 강력한 이유이자, 한편으로는 생성된 코드가 실제로 무엇을 하는지 이해하는 것이 여전히 중요한 이유입니다.
질문이 답보다 더 중요하다
자주 간과되는 중요한 점이 하나 있습니다. 바이브 코딩은 어떤 답을 얻느냐가 아니라, 올바른 질문을 하는 것입니다. 은하수를 여행하는 히치하이커를 위한 안내서의 Deep Thought 슈퍼컴퓨터를 생각해 보세요. 그것은 수백만 년 동안 인생과 우주와 모든 것에 대한 궁극적인 질문의 답을 계산했지만, 결국 당신에게 숫자 42만을 알려주었습니다. 그 대답은 기술적으로는 맞았지만, 어떤 질문을 물어봐야 하는지를 알아내는 것이 진짜 문제였기 때문에 쓸모가 없었습니다.
바이브 코딩도 같은 방식으로 작동합니다. 당신의 프롬프트가 모든 것을 좌우하지만, 컨텍스트 관리도 마찬가지로 중요합니다. 모호한 프롬프트는 모호한 코드를 만들 것이고, 올바른 파일, 문서, 예제를 컨텍스트로 제공하지 않으면 모델은 당신이 실제로 무엇을 필요로 하는지 이해하지 못할 것입니다. 코딩, 아키텍처, 시스템 설계를 이해하는 사람이라면 상세한 프롬프트를 작성하고 적절한 컨텍스트를 선별하여 LLM을 훌륭한 솔루션으로 유도할 수 있습니다. 그러나 무엇을 요청해야 할지, 어떤 컨텍스트를 제공해야 할지 모르면 AI도 마찬가지입니다.
이것이 바로 바이브 코딩이 숙련된 개발자에게 강력한 이유입니다. 우리는 좋은 코드가 어떤 모습인지 알고, 함정을 이해하며, 모델을 그쪽으로 유도하는 프롬프트를 작성할 수 있습니다. 기술 배경이 없는 초보자에게는 이 점이 실제 제약이 됩니다. 동작하는 코드를 얻을 수는 있겠지만, 무엇이 잘못되었는지 또는 다음에 무엇을 요청해야 할지 모른다면 길이 막힙니다.
바이브 코딩만으로는 충분하지 않을 때
최신 AI 모델은 인상적이지만 만능 해결책은 아닙니다. 바이브 코딩은 프로덕션에서 작동할 수 있지만, 진지하게 접근할 때만 가능합니다. 견고한 단위 테스트가 필요합니다. 시스템이 무엇을 해야 하는지에 대한 명확한 진실의 원천(source of truth)이 필요합니다. 문제가 발생하거나 기능이 흐트러졌을 때 이를 포착할 수 있어야 합니다. 그리고 해커의 마인드셋이 필요합니다. 고정관념을 깨고 예상치 못한 방식으로 당신의 바이브 코딩된 프로젝트를 부수어 보세요. 어떤 엣지 케이스를 고려하지 않았나요? 어떤 보안 취약점을 누군가 악용할 수 있나요? 이것이 단순히 동작하는 코드와 실제로 견고한 코드를 구분합니다.
하지만 중요한 점이 하나 더 있습니다. AI가 당신을 지배하는 것이 아닙니다. 당신이 AI를 소유합니다. 그것이 생성한 것을 그대로 받아들이지 마세요. 검토하세요. 테스트하세요. 부숴 보세요. 그리고 솔직히 말해, 코드베이스의 특정 부분에 대해서는 옛 방식의 코딩으로 돌아가야 할 때가 있습니다. 집중하고, 깊게 생각하고, 직접 작성하세요. 바이브 코딩은 속도를 높여 주지만, 중요할 때 진짜 프로그래밍을 대체하지는 못합니다.
또 배운 것이 하나 있습니다. 때로는 AI와의 세션을 끝내고 새로 시작해야 할 때가 있습니다. 대화 기록이 커질수록 모델의 성능이 저하됩니다. 실수가 늘고, 일관성 없는 코드를 생성하며, 환각(hallucination)이 더 자주 발생합니다. 이를 발견하고 멈추지 않으면 이런 오류들이 서로 겹쳐져 점점 더 나빠집니다. 복사기를 여러 번 돌려본 문서를 읽으려는 것과 같습니다. 새로 시작하면 깔끔하고 선명하게 유지됩니다.
바이브 코딩으로 만든 프로젝트
아래는 바이브 코딩 방법론으로 만든 두 프로젝트, stairs (repo)와 transcendental (repo)입니다. 대부분 프롬프트에서 생성되었고, 수동 작업은 컨텍스트 제공, 디버깅, 그리고 GitHub Pages에 배포하는 것으로 제한되었습니다. 창의적인 아이디어와 코드를 바이브 코딩과 결합했을 때 가능한 것을 보여 주는 재미있는 정적 사이트 실험입니다. 둘 다 GitHub에 호스팅되어 있습니다.