바이브 코딩

썸네일

바이브 코딩이란 무엇인가?

바이브 코딩Andrej Karpathy가 2024/2025년에 소개한 AI 기반 프로그래밍 방식입니다. 바이브 코딩에서는 자연어 프롬프트로 원하는 것을 설명하면, 보통 대규모 언어 모델(LLM)이 당신을 위해 작동하는 코드의 대부분, 때로는 전부를 생성합니다. 시간이 있다면 Rick Rubin이 각색한 Art of Vibe Coding을 확인해 보며 **바이브 코딩의 방식**을 더 알아보세요.

이 새로운 방법의 큰 장점 중 하나는 접근성입니다. 코딩 경험이 없는 사람도 프로젝트를 만들 수 있고, 숙련된 개발자는 완전히 확정하기 전에 새로운 아이디어를 빠르게 프로토타입으로 구현할 수 있습니다. 이는 특히 스타트업에 매우 유용합니다. 단점은 개발자들이 생성된 코드가 어떻게 작동하는지 완전히 이해하지 못할 가능성이 크다는 점입니다. 작은 사이드 프로젝트에는 괜찮지만, 프로덕션 수준의 소프트웨어에서는 장기적인 문제와 기술 부채로 이어질 수 있습니다.

바이브 코딩을 더 매끄럽게 만들어 주는 도구도 많이 있습니다. Cursor IDE, Claude Code CLI, GitHub Copilot, Loveable, Replit, v0 등은 AI와 환경 안에서 직접 작업할 수 있게 해 주거나, 바이브 코딩을 위한 전용 인터페이스를 제공합니다. 개인적으로는 이 프로젝트들에서 주로 Cursor IDEClaude Code CLI를 사용했습니다.

하지만 중요한 점이 하나 있습니다. 이런 도구와 모델은 돈이 듭니다. 전통적인 코딩에서는 주로 시간을 지불합니다. 바이브 코딩에서는 지갑을 통해 지불합니다. 그리고 자신이 무엇을 하고 있는지 모른다면, 지갑과 시간 모두를 지불하게 됩니다. 이 페이지의 각 프로젝트는 만드는 데 대략 $10에서 $20 정도가 듭니다. 많이 실험하면 그 비용이 꽤 쌓입니다. 모델이 더 좋아지고 더 효율적으로 되면 결국 비용은 내려갈 것이라고 생각합니다. 하지만 지금은 바이브 코딩이 프로젝트에 적합한지 결정할 때 고려할 가치가 있는 요소입니다.

무엇이 가능한지 궁금해서, 저도 직접 바이브 코딩을 시도했고 실제 프로젝트를 통해 그 원리 자체를 탐구하기 위해 이 페이지를 만들었습니다. 저는 단지 제품을 만드는 것이 아니라, 바이브 코딩이 실제로 무엇을 할 수 있는지 시험하고 시연하고 있습니다. 이것은 단지 재미를 위한 것이지만, 이런 모델들이 계속 향상됨에 따라 미래의 코딩이 어떤 모습일지 엿보게 해 줍니다.

무한 원숭이 정리

작가

무한 원숭이 정리에 대해 들어본 적이 있나요? 이것은 만약 무한한 원숭이에게 무한한 타자기와 무한한 시간을 준다면, 결국 그중 하나가 키를 무작위로 두드리는 것만으로 셰익스피어의 전 작품을 만들어 낼 것이라고 말하는 철학적 사고 실험입니다.

말도 안 된다고 생각되죠? 하지만 여기 흥미로운 부분이 있습니다. 바이브 코딩은 그와 비슷한데, 원숭이 대신 AI 모델이 있고, 타자기 대신 코딩 언어가 있으며, 셰익스피어 대신 작동하는 소프트웨어가 나온다는 점이 다릅니다.

생각해 보세요. 대규모 언어 모델은 수십억 줄의 코드, 패턴, 예제로 학습됩니다. LLM에 프롬프트를 주면, 인간 개발자처럼 문제를 단계별로 실제로 “생각”하는 것이 아닙니다. 대신 학습 동안 배운 패턴을 바탕으로 다음에 올 가능성이 가장 높은 토큰을 예측합니다. 본질적으로는 통계적으로 맞아 보이는 것을 바탕으로 코드를 생성하며, 교육된 추측을 하는 것입니다.

그리고 어떻게든, 대부분의 경우 그것이 작동합니다. 모델은 실제로 컴파일되고, 실행되며, 문제를 해결하는 코드를 출력합니다. 이해를 통해서가 아니라, 거대한 규모의 확률적 패턴 매칭을 통해서입니다. 마치 우주의 가장 정교한 무작위 텍스트 생성기가 “정답”을 찾아낸 것 같습니다. 하지만 여기서 차이는 속도입니다. 그 원숭이들에게는 문자 그대로 무한대가 필요하겠지만, 당신의 AI는 몇 초 또는 몇 분 만에 도달합니다.

그래서 어떤 면에서, 바이브 코딩을 사용할 때 당신은 모델에 정제된 수백만 줄의 코드 패턴을 활용해 솔루션을 생성하도록 하는 것입니다. 이것은 의식적인 문제 해결이 아니라 통계적 마법입니다. 그리고 바로 그 점이 그것을 매우 강력하게 만드는 이유이며, 인정하자면 코드가 실제로 무엇을 하는지 이해하는 것이 여전히 중요한 이유이기도 합니다.

질문이 답보다 더 중요하다

흔히 간과되는 중요한 것이 하나 있습니다. 바이브 코딩은 아무 답이나 얻는 것이 아니라, 올바른 질문을 하는 것입니다. 은하수를 여행하는 히치하이커를 위한 안내서딥 스로트 슈퍼컴퓨터를 떠올려 보세요. 그것은 삶, 우주, 그리고 모든 것에 대한 궁극적인 질문의 답을 계산하는 데 수백만 년을 보냈고, 결국 당신에게 숫자 42를 주었습니다. 답은 기술적으로는 맞았지만, 진짜 문제는 애초에 무엇을 물어야 하는지 알아내는 것이었습니다.

바이브 코딩도 마찬가지입니다. 당신의 프롬프트가 전부이지만, 문맥 관리도 마찬가지로 중요합니다. 모호한 프롬프트는 모호한 코드를 낳고, 올바른 파일, 문서, 예시를 문맥으로 제공하지 않으면 모델은 당신이 실제로 무엇을 필요로 하는지 이해하지 못합니다. 코딩, 아키텍처, 시스템 설계를 이해하는 사람이라면, 상세한 프롬프트를 작성하고 적절한 문맥을 선별하여 LLM이 훌륭한 해결책으로 나아가도록 유도할 수 있습니다. 하지만 무엇을 요청해야 하는지, 어떤 문맥을 제공해야 하는지 모른다면 AI도 마찬가지입니다.

사실 이것이 경험 많은 개발자에게 바이브 코딩이 매우 강력한 이유입니다. 우리는 좋은 코드가 어떤 모습인지 알고, 함정을 이해하며, 모델이 그 함정에서 벗어나도록 유도하는 프롬프트를 작성할 수 있습니다. 기술적 배경이 전혀 없는 초보자에게는 이것이 실제 한계가 됩니다. 작동하는 코드를 얻을 수는 있지만, 무엇이 잘못되었는지 또는 다음에 무엇을 요청해야 하는지 이해하지 못하면 막히게 됩니다.

바이브 코딩만으로는 충분하지 않을 때

최신 AI 모델은 인상적이지만 만능 해결책은 아닙니다. 바이브 코딩은 프로덕션에서도 작동할 수 있지만, 진지하게 다룰 때에만 그렇습니다. 강력한 단위 테스트가 필요합니다. 시스템이 무엇을 해야 하는지에 대한 명확한 진실의 원천이 필요합니다. 무언가가 깨지거나 어긋날 때 이를 잡아낼 수 있어야 합니다. 그리고 해커의 마인드셋이 필요합니다. 틀 밖에서 생각하고, 예상치 못한 방식으로 바이브 코딩한 프로젝트를 깨뜨려 보세요. 고려하지 못한 엣지 케이스는 무엇인가요? 누군가 악용할 수 있는 보안 취약점은 무엇인가요? 이것이 단순히 작동하는 코드와 실제로 견고한 코드의 차이입니다.

하지만 중요한 점이 하나 더 있습니다. AI가 당신을 소유하는 것이 아닙니다. 당신이 AI를 소유합니다. 그것이 생성한 것을 무조건 받아들이지 마세요. 검토하세요. 테스트하세요. 깨뜨려 보세요. 그리고 솔직히 말해, 코드베이스의 특정 부분에서는 다시 옛날 방식의 코딩으로 돌아가야 합니다. 집중하고, 깊이 생각하고, 직접 작성하세요. 바이브 코딩은 속도를 높여 주지만, 중요한 순간에 실제 프로그래밍을 대체하지는 못합니다.

제가 배운 또 다른 것이 있습니다. 때로는 AI와의 세션을 끝내고 새로 시작해야 합니다. 대화 기록이 점점 더 길어질수록 모델의 성능은 저하됩니다. 더 많은 실수를 하고, 덜 일관된 코드를 생성하며, 환각을 더 자주 일으키기 시작합니다. 이것을 알아차리고 멈추지 않으면, 이런 오류들이 서로 누적되어 점점 더 나빠집니다. 마치 같은 문서를 계속해서 복사한 것을 읽는 것과 같습니다. 새로 시작하면 모든 것이 깔끔하고 선명하게 유지됩니다.

바이브 코딩 프로젝트

아래에는 바이브 코딩 방법론으로 제가 만든 두 프로젝트, stairs (저장소)와 transcendental (저장소)가 있습니다. 대부분은 프롬프트로 생성되었고, 수동 작업은 문맥 제공, 디버깅, 그리고 GitLab Pages에 배포하는 일로 제한되었습니다. 이들은 바이브 코딩을 통해 창의적인 아이디어와 코드를 결합했을 때 무엇이 가능한지 보여 주는 재미있는 정적 사이트 실험입니다. 둘 다 GitLab에 호스팅되어 있습니다.

프로젝트 보기

계단

초월적