아무도 말하지 않는 ‘Vibe Coding’의 어두운 면
Source: Dev.to
Vibe Coding이란?
“Vibe coding”은 Andrej Karpathy가 만든 용어로, AI를 이용해 대략적인 설명만으로 코드를 작성하는 것을 의미합니다—원하는 것을 설명하고, 결과물을 받아들이며, 어떻게 작동하는지 깊이 이해하지 않고 진행합니다.
인식되는 장점
- 속도 – 기능을 며칠이 아니라 몇 시간 안에 배포합니다.
- 접근성 – 코딩을 모르는 사람도 앱을 만들 수 있습니다.
- 도파민 – 즉각적인 결과가 보상감으로 다가옵니다.
위험 및 단점
- 이해 부족 – AI가 만든 코드가 프로덕션에서 (예: 새벽 3시) 깨지면, 어떻게 고쳐야 할지 전혀 모를 수 있습니다.
- 보안 문제 – AI 모델은 공개된 코드를 학습데이터로 사용하므로 SQL 인젝션, XSS, 부적절한 인증 등 보안 취약점이 포함될 수 있습니다. AI가 이러한 취약점을 항상 잡아내지는 못합니다.
- 기술 부채 – Vibe‑코딩된 프로젝트는 빠르게 부채가 쌓입니다: 아키텍처도 없고, 디자인 패턴도 없으며, 단지 프롬프트의 스택일 뿐입니다.
- 직업 취약성 – 당신의 유일한 스킬이 AI에 프롬프트를 주는 것이라면, 키보드만 있으면 누구든지 당신을 대체할 수 있습니다. 실제 엔지니어는 시스템을 이해하고 코드베이스를 유지·진화시킬 수 있습니다.
모범 사례
- AI를 공동 파일럿으로, 자동 파일럿이 아니라 – AI 제안을 완전한 해결책이 아니라 보조 수단으로 다룹니다.
- 모든 라인을 읽어라 – 생성된 코드를 모두 검토해 기대와 표준에 부합하는지 확인합니다.
- 먼저 아키텍처를 이해하라 – 구현에 AI를 사용하기 전에 시스템 구조를 정의합니다.
- 테스트 작성 – AI가 테스트를 생성하도록 활용하되, 중요한 경로를 커버하는지 검증합니다.
- 기본기를 배우라 – 핵심 프로그래밍 개념과 설계 원칙은 절대 구식이 되지 않습니다.
개인적인 메모: 저는 매일 Claude Code와 Cursor를 사용하지만, 모든 라인을 이해하고, 모든 PR을 검토하며, 필요하면 같은 솔루션을 처음부터 다시 만들 수 있습니다. 이는 AI를 책임감 있게 사용하는 개발자와 최선만을 기대하는 프롬프터를 구분짓는 요소입니다.
결론
Vibe coding은 신중히 적용한다면 유용한 도구가 될 수 있지만, 이해와 체계적인 엔지니어링 실천을 대체하게 되면 위험한 지름길이 됩니다.
Vibe coding에 대해 어떻게 생각하시나요? 유용한 도구인가요, 위험한 지름길인가요?