비트토렌트 창시자가 바이브 코딩에 일침 — 이건 개발이 아니라 독을 먹는 것
요즘 개발자 커뮤니티에서 가장 핫한 키워드를 하나 꼽으라면 단연 바이브 코딩입니다. AI에게 대충 의도를 던져주고, 나온 코드를 거의 검토 없이 그대로 쓰는 방식이죠. 그런데 비트토렌트를 만든 전설적인 프로그래머 브램 코언(Bram Cohen)이 이 흐름에 강하게 제동을 걸고 나섰습니다. 그의 표현을 빌리면 이건 개발이 아니라 독을 먹는 것에 가깝다는 겁니다.
바이브 코딩이 뭐길래
바이브 코딩이라는 용어는 AI 연구자 안드레이 카르파시(Andrej Karpathy)가 올해 초 소셜 미디어에서 처음 쓰면서 퍼졌습니다. 핵심은 간단합니다. ChatGPT나 Cursor, Copilot 같은 AI 도구에 자연어로 원하는 기능을 설명하면, AI가 코드를 생성해주고, 개발자는 그걸 복사-붙여넣기 하는 방식입니다.
카르파시 본인은 이걸 반쯤 농담으로 설명했습니다. “코드를 읽지 않고 분위기(vibe)에 맡긴다"는 뉘앙스였죠. 문제는 이 농담이 순식간에 하나의 개발 방법론처럼 퍼져나갔다는 겁니다. 프로토타입이나 개인 프로젝트 수준을 넘어서, 실제 프로덕션 코드에까지 이 방식을 적용하는 사례가 늘고 있습니다.
브램 코언의 핵심 비판
브램 코언의 지적은 단순히 “AI 코드가 별로다"라는 수준이 아닙니다. 그가 문제 삼는 건 이해 없는 수용입니다.
자신이 작성하지 않은 코드를 이해하지도 못한 채 프로젝트에 밀어 넣는 것. 이건 기술 부채를 쌓는 정도가 아니라, 아예 시한폭탄을 설치하는 행위라는 겁니다. 코드가 왜 그렇게 동작하는지 모르면, 버그가 터졌을 때 고칠 수도 없습니다. AI에게 다시 물어볼 수는 있겠지만, AI는 맥락을 기억하지 못합니다. 결국 같은 문제를 두고 끝없이 빙빙 도는 상황이 벌어지죠.
코언은 특히 이 방식이 독푸딩(dogfooding) 문화와 정면으로 충돌한다고 봅니다. 독푸딩이란 자기가 만든 제품을 자기가 직접 쓰면서 품질을 검증하는 문화를 말합니다. 비트토렌트 프로토콜을 직접 설계하고 구현한 사람답게, 그는 개발자가 자기 코드의 모든 줄을 이해하고 책임져야 한다는 철학을 갖고 있습니다.
진짜 문제는 코드 품질이 아니다
흥미로운 건 코언의 비판이 AI 생성 코드의 품질 자체에만 머물지 않는다는 점입니다. 오히려 그가 더 우려하는 건 개발자의 역량 퇴화입니다.
코드를 직접 작성하는 과정에서 개발자는 문제를 분해하고, 구조를 설계하고, 엣지 케이스를 고민합니다. 이 과정 자체가 엔지니어링 역량을 키우는 훈련이죠. 바이브 코딩은 이 훈련 과정을 통째로 건너뜁니다.
비유하자면 이렇습니다. 운동선수가 매일 트레이닝을 하는 이유는 경기 당일에 몸이 기억하도록 하기 위해서입니다. 바이브 코딩은 트레이닝 없이 경기장에 나가는 것과 같습니다. 한두 번은 운 좋게 넘어갈 수 있지만, 장기적으로는 무너질 수밖에 없습니다.
AI 도구를 잘 쓰는 것과 AI에 의존하는 것의 차이
그렇다고 코언이 AI 코딩 도구 자체를 부정하는 건 아닙니다. 여기서 중요한 구분이 필요합니다.
AI를 보조 도구로 쓰는 것과 AI에 의존하는 것은 완전히 다른 이야기입니다. 보일러플레이트 코드를 빠르게 생성하거나, 문법을 확인하거나, 리팩토링 아이디어를 얻는 데 AI를 활용하는 건 생산성을 높이는 합리적인 방법입니다. 하지만 AI가 뱉어낸 코드를 이해 없이 통째로 가져다 쓰는 순간, 그건 도구 활용이 아니라 위임이 됩니다.
개발자 커뮤니티에서도 이 논쟁은 뜨겁습니다. 한쪽에서는 바이브 코딩 덕분에 비개발자도 앱을 만들 수 있게 됐다며 민주화를 외치고, 다른 한쪽에서는 이렇게 만들어진 코드가 보안 취약점 투성이라며 경고합니다. 실제로 AI 생성 코드에서 SQL 인젝션이나 인증 우회 같은 기본적인 보안 결함이 발견되는 사례가 꾸준히 보고되고 있습니다.
독푸딩의 가치가 다시 빛나는 순간
코언의 비판을 관통하는 키워드는 결국 책임입니다. 내가 만든 것을 내가 쓰고, 내가 만든 것에 내가 책임진다. 이 원칙이 소프트웨어 품질을 지켜왔다는 거죠.
비트토렌트가 20년 넘게 살아남은 프로토콜이 된 건 우연이 아닙니다. 설계자가 직접 사용하면서 끊임없이 다듬었기 때문입니다. 코드의 모든 결정에는 이유가 있었고, 그 이유를 아는 사람이 유지보수를 했습니다.
바이브 코딩이 만들어내는 소프트웨어에는 이 이유가 없습니다. 왜 이 함수가 이 방식으로 동작하는지, 왜 이 데이터 구조를 선택했는지, 아무도 모릅니다. AI도 모릅니다. 다음에 같은 질문을 하면 다른 답을 내놓을 테니까요.
브램 코언의 경고가 불편하게 느껴진다면, 아마 그게 정확히 그가 의도한 효과일 겁니다. 바이브 코딩의 편리함에 취해 있을 때 누군가는 “그래서 당신은 그 코드를 이해하고 있냐"고 물어야 합니다. 여러분은 오늘 커밋한 코드의 모든 줄을 설명할 수 있으신가요?
댓글
댓글을 불러오는 중...