'바이브 코딩'은 코드 생성을 위해 대규모 언어 모델(LLM)에 크게 의존하는 애플리케이션 개발 접근 방식입니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
글 링크 복사
바이브 코딩은 코드를 생성하기 위해 대규모 언어 모델(LLM)의 사용을 많이 통합하는 소프트웨어 개발 방법입니다. AI 지원 코딩을 의미하는 '바이브 코딩'이라는 용어는 OpenAI의 공동 창업자인 Andrej Karpathy가 2025년 2월 X 에 올린 게시물에서 사용한 용어입니다.
제가 '바이브 코딩'이라고 부르는 새로운 종류의 코딩이 있습니다. 바이브에 완전히 순응하고, 기하급수적인 변화를 포용하며, 코드가 있다는 것조차 잊어버리는 것입니다. 이것은 LLM(예: Cursor Composer w Sonnet)이 너무 좋아졌기 때문에 가능해졌습니다... 코드가 제가 평소에 이해하는 범위를 넘어섰습니다. 한동안 자세히 읽어봐야 할 것 같습니다. 가끔은 LLM이 버그를 수정할 수 없어서 그냥 우회하거나 버그가 사라질 때까지 무작위로 변경을 요청하기도 합니다... 주말에 사용하고 버리는 프로젝트에는 나쁘지 않지만, 그래도 꽤 재미있어요.
Karpathy가 이 용어를 정의했지만, ChatGPT, Copilot 등의 LLM이 공개되면서 이미 많은 개발자들이 유사한 AI 지원 접근 방식을 실험하기 시작했습니다.
바이브 코딩의 목표는 작동 중인 애플리케이션과 새로운 기능을 더 빠르게 가동하는 것입니다. 전통적으로 코딩은 매우 정밀한 작업이었습니다. 대신 바이브 코딩을 사용하면 개발자는 일반적이고 높은 수준의 지침을 LLM에 제공할 수 있으며, LLM은 작업 코드에 포함된 정확한 지침을 생성합니다.
LLM의 다른 사용 사례와 마찬가지로 바이브 코딩의 경우에도 모델에 프롬프트를 제공하면 모델이 그에 대한 응답으로 콘텐츠(이 경우 코드)를 생성합니다. LLM은 생성형 AI 모델입니다. 방대한 양의 예제를 학습했으므로 언어를 인식하고, 해석하고, 생성할 수 있습니다. LLM은 이 작업을 일상적인 인간 언어와 프로그래밍 언어 모두로 수행할 수 있습니다. 이 기능을 통해 LLM은 작동되는 코드를 몇 초 이내에 생성할 수 있습니다.
바이브 코딩 개발자는 LLM이 올바른 종류의 기능이나 애플리케이션을 만들 수 있도록 적절한 프롬프트를 LLM에 제공해야 합니다. 일반적으로 이러한 프롬프트는 특별히 정확할 필요는 없지만, LLM이 개발자가 염두에 둔 방식으로 작동하는 코드를 생성하려면 여러 번 시도해야 할 수 있습니다.
LLM이 코드를 생성한 후에 테스트와 디버깅이 이루어집니다. 여기에는 버그와 보안 문제를 식별하는 작업이 포함됩니다. 그런 다음 LLM에 이러한 버그를 해결하라는 프롬프트를 표시하거나, Karpathy가 설명한 대로 "이 문제를 해결하거나 사라질 때까지 무작위 변경을 요청"할 수 있습니다(이 접근 방식은 버그에 따라 효과가 있을 수도 있고 없을 수도 있습니다).
개발자는 널리 사용되는 여러 LLM을 사용하여 바이브 코딩을 실험해 볼 수 있습니다. Copilot, Cursor, Codeium, Qodo, CodeWhisperer, Replit은 모두 LLM 지원 소프트웨어 개발에 널리 사용되는 도구입니다.
바이브 코딩의 이점은 다음과 같습니다.
몇 가지 단점은 다음과 같습니다.
취약점: 모든 애플리케이션에는 취약점이나 보안 위험이 포함될 수 있습니다. 바이브 코딩을 사용하면 새로운 기능을 훨씬 더 빠르게 작성하고 출시할 수 있으므로 더 많은 보안 문제를 걸러내지 못한 채 프로덕션 단계에 도달할 위험이 있습니다. 개발팀에서 문제가 있는 코드에 익숙하지 않은 경우 이러한 보안 문제를 해결하기가 더 어려울 수 있습니다.
데이터 손실: 비즈니스 컨텍스트에서 LLM을 사용하면 입력에 외부 컨텍스트에서 공유되는 지적 재산이 포함될 수 있는 위험이 발생합니다. 내부 데이터를 보호하려면 개발자는 LLM이 백엔드에서 데이터를 분할하는 방법을 알고 있어야 합니다.
LLM 작동 방식에 대해 자세히 알아보세요.