
바이브코딩 특집: 30분 만에 환자 데이터가 열린 이유
바이브코딩은 소프트웨어 개발의 장벽을 낮춘 혁명인가, 아니면 무지한 배포를 가속하는 위험한 유행인가. Tobias Brunner가 공개한 환자 관리 시스템 사고를 출발점으로, Copilot에서 Codex·Claude Code까지 이어진 AI 코딩의 역사, 최신 논문들이 말하는 장점과 위험, 그리고 실무자가 반드시 지켜야 할 안전 경계를 깊이 있게 정리한다.

바이브코딩은 소프트웨어 개발의 장벽을 낮춘 혁명인가, 아니면 무지한 배포를 가속하는 위험한 유행인가. Tobias Brunner가 공개한 환자 관리 시스템 사고를 출발점으로, Copilot에서 Codex·Claude Code까지 이어진 AI 코딩의 역사, 최신 논문들이 말하는 장점과 위험, 그리고 실무자가 반드시 지켜야 할 안전 경계를 깊이 있게 정리한다.

2026년 3월 28일, 스위스의 엔지니어 Tobias Brunner는 짧지만 강렬한 글을 공개했다. 제목은 An AI Vibe Coding Horror Story. 한 의료 현장에서 실제로 겪은 이야기였다.
상황은 이렇다. 의료 예약을 위해 방문한 곳에서, 친절한 담당자가 "요즘은 AI로 누구나 소프트웨어를 쉽게 만들 수 있다"는 영상을 봤다고 말했다. 그 아이디어는 곧바로 실행으로 이어졌다. 검증된 환자 관리 솔루션을 쓰는 대신, AI 코딩 에이전트에게 직접 환자 관리 앱을 만들게 한 것이다.
그리고 거기에 기존 환자 데이터를 넣었다. 인터넷에 공개했다. 진료 중 대화 녹음 기능도 붙였다. 음성은 자동 전사와 요약을 위해 외부 AI 서비스 두 곳으로 보내졌다.
며칠 뒤 Brunner가 앱을 살펴봤다. 약 30분 만에 그는 전체 환자 데이터에 대한 읽기·쓰기 권한을 얻었다. 데이터는 암호화되지 않았고, 접근 제어는 서버가 아니라 브라우저 안의 JavaScript에 있었다. 백엔드는 관리형 데이터베이스였지만 Row-Level Security도, 권한 정책도 없었다. 의료 데이터가 미국 서버에 저장됐고, 데이터 처리 계약도 확인되지 않았다.
이 사건은 단순한 버그가 아니다. AI가 코드를 잘못 쓴 사건도 아니다. 더 정확히는, 소프트웨어가 무엇인지 모르는 사람이 AI를 통해 소프트웨어를 배포한 사건이다.
바이브코딩의 진짜 위험은 여기에 있다. 화면은 돌아간다. 버튼은 눌린다. 데이터도 저장된다. 그래서 만든 사람은 "완성됐다"고 느낀다. 하지만 실제 소프트웨어의 핵심은 화면 뒤에 있다. 인증, 권한, 데이터 위치, 암호화, 감사 로그, 장애 복구, 법적 책임, 운영 절차. 이 보이지 않는 것들이 빠지는 순간, 앱은 제품이 아니라 사고 대기 상태가 된다.
이 글은 바이브코딩을 조롱하기 위한 글이 아니다. 오히려 반대다. 바이브코딩은 분명 중요한 전환이다. 개발의 장벽을 낮추고, 도메인 전문가가 직접 아이디어를 실험하게 만들며, 숙련 개발자의 반복 작업을 크게 줄인다. 문제는 프로토타입의 속도와 프로덕션의 책임을 구분하지 못할 때 생긴다.
바이브코딩(vibe coding)은 한 줄로 말하면 자연어 대화로 의도를 설명하고, AI가 그 의도를 코드로 번역하게 하는 개발 방식이다.
전통적 프로그래밍에서는 사람이 세부 구현을 명령한다. 변수, 함수, 타입, 조건문, 데이터베이스 쿼리, 에러 처리까지 사람이 쓴다. AI 보조 코딩에서는 이 중 일부를 자동완성한다. 반면 바이브코딩에서는 사람이 "이런 느낌의 앱을 만들어줘", "관리자 화면에서 예약을 수정할 수 있게 해줘", "로그인 붙여줘"처럼 목표를 말한다. AI는 구조를 추론하고 파일을 만들고 라이브러리를 고르고 코드를 작성한다.
| 구분 | 전통적 코딩 | AI 보조 코딩 | 바이브코딩 |
|---|---|---|---|
| 사람의 역할 | 구현자 | 구현자 + 검토자 | 의도 제시자 + 감독자 |
| 입력 방식 | 코드 | 코드와 짧은 프롬프트 | 자연어 대화 |
| AI의 역할 | 없음 | 자동완성, 함수 생성 | 설계, 구현, 수정, 디버깅까지 수행 |
| 강점 | 통제와 이해 | 반복 작업 감소 | 빠른 실험과 접근성 |
| 위험 | 느림 | 부분적 과신 | 이해 없는 배포, 책임 공백 |
2025년 2월, Andrej Karpathy가 이 표현을 대중화했다. 그는 Cursor Composer와 Claude Sonnet 같은 도구가 좋아지면서, 코드 자체를 잊고 대화의 흐름에 몸을 맡기는 새로운 코딩 경험이 가능해졌다고 설명했다. 중요한 것은 "코드를 아예 몰라도 된다"는 선전 문구가 아니라, 프로그래밍의 중심이 문법에서 의도 전달로 이동했다는 점이다.
Meske 등은 2025년 논문 Vibe Coding as a Reconfiguration of Intent Mediation에서 이 변화를 "의도 중개(intent mediation)의 재구성"으로 설명한다. 과거 개발자는 머릿속 목표를 결정론적 명령어로 번역했다. 이제는 목표를 자연어로 설명하고, AI가 확률적으로 그 의도를 추론해 실행 가능한 코드로 만든다.
이 차이는 작아 보이지만, 실제로는 거대하다.
문제는 마지막 단계다. 사람이 검증하지 못하면, 바이브코딩은 "의도 기반 개발"이 아니라 "의도 기반 도박"이 된다.

이 그림처럼 바이브코딩의 핵심 구분은 "AI로 만들었는가"가 아니라 어디까지 배포했는가다. 더미 데이터로 로컬에서 확인하는 단계는 학습이다. 실제 고객 데이터와 운영 DB가 연결되는 순간부터는 제품이 아니라 시스템이고, 시스템에는 보안·법·운영 책임이 붙는다.
바이브코딩은 갑자기 등장하지 않았다. 2021년부터 이어진 AI 코딩의 자연스러운 다음 단계다.
2021년 6월, GitHub는 GitHub Copilot 기술 프리뷰를 공개했다. 당시 Copilot은 "AI pair programmer"로 소개됐다. 개발자가 코드를 쓰는 동안 문맥을 읽고 다음 줄이나 함수 전체를 제안했다.
이때의 AI는 운전석에 앉지 않았다. 조수석에서 제안했다. 개발자는 제안을 받아들이거나 거절했다. 실수해도 범위가 비교적 작았다. 하지만 이미 중요한 질문이 생겼다.
AI가 제안한 코드가 정말 안전한가?
2021년 Pearce 등은 Asleep at the Keyboard?에서 Copilot이 생성한 코드의 보안성을 평가했다. 이 연구는 여러 보안 시나리오에서 생성된 코드 중 상당수가 취약한 패턴을 포함한다고 보고했다. 핵심은 명확했다. AI는 "돌아가는 코드"를 잘 만들 수 있지만, "안전한 코드"를 자동으로 보장하지 않는다.
2022년 말 ChatGPT가 등장하면서 개발 방식은 자동완성에서 대화로 이동했다. 이제 개발자는 함수 하나가 아니라 "이 기능을 만들어줘", "이 오류를 고쳐줘", "이 코드를 리팩터링해줘"라고 요청했다.
이 시기부터 AI는 코드 조각 생성기를 넘어 설명자, 튜터, 디버거, 설계 파트너가 되었다. 하지만 동시에 또 다른 문제가 보였다. Perry 등은 Do Users Write More Insecure Code with AI Assistants?에서 AI 보조를 받은 사용자가 더 취약한 코드를 작성하면서도 자신의 코드가 안전하다고 믿는 경향을 보였다고 분석했다.
즉 위험은 두 겹이다.
2023년 SWE-bench가 공개됐다. 이 벤치마크는 실제 GitHub 이슈와 풀 리퀘스트를 바탕으로, 모델이 현실의 코드베이스 문제를 해결할 수 있는지 평가했다. 초기 결과는 냉정했다. 실제 코드베이스는 알고리즘 문제와 달랐다. 여러 파일, 숨은 의존성, 테스트, 기존 관습, 회귀 위험이 얽혀 있었다.
SWE-bench가 보여준 것은 "AI가 코딩을 못 한다"가 아니다. 반대로, 이후 모델들은 이 벤치마크에서 빠르게 좋아졌다. 다만 현실의 소프트웨어 엔지니어링은 코드 생성보다 넓다는 사실을 분명히 보여줬다.
Cursor, Devin, Replit Agent, Claude Code, Codex 같은 도구가 등장하면서 AI의 역할은 다시 바뀌었다. 이제 AI는 파일을 읽고, 수정하고, 테스트를 실행하고, 실패를 보고 다시 고친다. 사람은 작업을 "시킨다".
OpenAI의 Codex 소개는 이 전환을 잘 보여준다. Codex는 클라우드 샌드박스에서 독립적으로 작업하고, 테스트와 터미널 로그를 남기며, 사용자가 결과를 검토한 뒤 통합하도록 설계됐다. Anthropic의 Claude Code도 터미널과 코드베이스를 연결해 에이전트형 개발 경험을 제공한다.
이 흐름은 강력하다. 잘 쓰면 개발자는 반복 작업에서 해방된다. 하지만 잘못 쓰면 AI는 "보조자"가 아니라 "권한을 가진 미숙한 운영자"가 된다.
바이브코딩이 인기를 얻은 이유는 단순히 유행어가 좋아서가 아니다. 실제 효용이 있기 때문이다.
예전에는 "앱 아이디어"와 "작동하는 화면" 사이에 큰 계곡이 있었다. 프레임워크를 골라야 하고, 프로젝트를 세팅해야 하고, CSS를 써야 하고, 라우팅과 상태 관리를 배워야 했다. 이제는 AI에게 말하면 첫 화면이 나온다. 버튼이 생기고, 폼이 생기고, 데이터가 저장된다.
이 속도는 특히 세 부류에게 강력하다.
Pimenova 등은 Good Vibrations?에서 바이브코딩의 핵심 경험을 "co-creation", "communication", "flow", "trust"로 분석했다. 개발자는 더 이상 모든 문법과 보일러플레이트를 붙잡고 있지 않아도 된다. 생각의 흐름을 유지하면서 AI와 대화하고, AI가 만든 결과를 보며 다시 의도를 조정한다.
이것은 단순한 생산성 문제가 아니다. 창작 방식의 변화다. 작곡가가 악보만 쓰는 것이 아니라, 옆의 연주자와 즉흥 연주를 하며 곡을 만들어가는 것과 비슷하다.
초보자가 코딩을 포기하는 이유 중 하나는 너무 빨리 벽을 만나기 때문이다. 패키지 설치 오류, 타입 오류, CSS 레이아웃, 배포 설정 같은 것들이 본질적 아이디어보다 먼저 발목을 잡는다. 바이브코딩은 이 초기 장벽을 낮춘다.
하지만 여기에는 역설이 있다. 배우기 위한 바이브코딩은 좋지만, 모르는 채로 배포하기 위한 바이브코딩은 위험하다. 초보자가 손전등을 들고 동굴을 탐험하는 것은 좋다. 문제는 그 동굴을 병원으로 개조하고 환자를 받는 순간이다.

Tobias Brunner의 사건은 짧은 글이지만, 현대 AI 코딩 위험을 거의 모두 담고 있다. 기술적으로 보면 핵심 실패는 여섯 가지다.
| 실패 지점 | 사건에서 보인 형태 | 정상 설계 |
|---|---|---|
| 클라이언트 측 접근 제어 | 권한 로직이 브라우저 JavaScript에 있음 | 서버/API/DB 정책에서 강제 |
| DB 권한 부재 | 관리형 DB에 접근 제어와 RLS 없음 | 사용자별 최소 권한, Row-Level Security |
| 민감 데이터 위치 | 의료 데이터가 해외 서버에 저장됨 | 관할권, 계약, 보관 정책 확인 |
| 외부 AI API 전송 | 진료 음성이 외부 AI 서비스로 전송됨 | 동의, DPA, 비식별화, 보존 기간 검토 |
| 보안 리뷰 없음 | 만든 사람이 결과를 이해하지 못함 | 배포 전 보안 리뷰와 침투 테스트 |
| 책임 공백 | AI가 만든 코드의 법적·운영 책임이 모호함 | 운영자, 처리자, 데이터 흐름, 사고 대응 명확화 |
이 구조를 다이어그램으로 보면 더 선명하다.

여기서 결정적 오해가 있다. 많은 비개발자는 "로그인 화면이 있다"와 "보안이 있다"를 혼동한다. 그러나 로그인 화면은 문이다. 접근 제어는 자물쇠와 경비원과 출입 기록이다. 문 그림만 그려놓고 벽이 없으면 누구나 들어올 수 있다.
OWASP Top 10 2025에서 Broken Access Control은 여전히 가장 중요한 웹 보안 위험 중 하나다. 접근 제어는 신뢰할 수 있는 서버 측 코드나 서버리스 API에서 강제해야 한다. 클라이언트 코드는 사용자가 볼 수 있고 바꿀 수 있다. 브라우저에 권한 판단을 맡기는 것은, 금고 열쇠를 금고 위에 붙여두는 것과 같다.
Brunner는 데이터가 사실상 curl 한 줄 거리였다고 설명했다. 이 표현은 개발자에게는 즉시 이해된다. 브라우저 화면을 거치지 않고도 API나 DB 엔드포인트를 직접 호출할 수 있다는 뜻이다.
브라우저 앱에서 "관리자만 볼 수 있음"이라고 숨겨도, 실제 데이터 엔드포인트가 권한 없이 열려 있으면 아무 의미가 없다. 화면은 UX다. 보안 경계는 서버와 데이터베이스에 있어야 한다.
이 세 질문에 답하지 못하면, 앱은 아직 프로덕션이 아니다.
이 사건이 특히 심각한 이유는 데이터가 의료 데이터였기 때문이다. 의료 정보는 대부분의 개인정보보호 체계에서 고위험 또는 민감 정보로 취급된다. 스위스의 경우 2023년 9월 1일부터 새 연방 데이터보호법 nFADP가 시행됐다. 스위스 정부의 SME Portal은 Privacy by Design/Default, 침해 통지, 처리 활동 기록 등 기업의 의무가 강화됐다고 설명한다.
여기서 개발자가 아니어도 이해해야 할 점은 단순하다.
민감 데이터를 다루는 시스템에서 "AI가 만들어줬다"는 면책 사유가 아니다.
법은 보통 이런 질문을 한다.
AI 코딩 에이전트는 이 질문들을 자동으로 해결해주지 않는다. 프롬프트에 "보안 좋게 해줘"라고 적어도 부족하다. 법적·조직적 맥락은 코드 바깥에 있기 때문이다.
바이브코딩은 코드 작성을 빠르게 한다. 하지만 개인정보보호는 코드 작성 속도와 무관하게 요구된다. 오히려 AI가 더 빨리 배포하게 만들수록, 사전에 멈춰서 확인해야 할 질문은 더 중요해진다.
바이브코딩 논쟁은 감정적이다. 한쪽은 "개발자는 끝났다"고 말하고, 다른 쪽은 "장난감일 뿐"이라고 말한다. 실제 연구들은 둘 다 틀렸다고 말한다. 효과는 분명하지만, 위험도 분명하다.
| 연구·자료 | 핵심 결과 | 바이브코딩에 주는 의미 |
|---|---|---|
| GitHub Copilot 생산성 연구 Peng et al., 2023 | 실험 참가자가 JavaScript HTTP 서버 구현 과제를 Copilot 사용 시 55.8% 더 빠르게 완료 | 잘 정의된 단기 과제에서는 AI가 실제 속도 향상을 만든다 |
| Asleep at the Keyboard? Pearce et al., 2021 | AI 생성 코드가 여러 보안 시나리오에서 취약한 패턴을 자주 생성 | 작동하는 코드와 안전한 코드는 다르다 |
| Do Users Write More Insecure Code? Perry et al., 2022 | AI 보조를 받은 사용자가 취약한 코드를 더 자신 있게 받아들이는 경향 관찰 | 과신이 보안 위험을 키운다 |
| SWE-bench Jimenez et al., 2023 | 실제 GitHub 이슈 해결은 알고리즘 문제보다 훨씬 복잡함 | 현실 코드베이스에서는 맥락, 테스트, 회귀 검증이 핵심 |
| METR 개발자 생산성 연구 2025 | 숙련 오픈소스 개발자가 AI 사용 시 실제로 느려진 사례가 보고됨 | 느낌상 빠름과 실제 생산성은 다를 수 있다 |
| Is Vibe Coding Safe? Zhao et al., 2026 v2 | 기능적으로 맞는 에이전트 생성 코드도 보안 기준에서는 낮은 성과를 보임 | 기능 테스트만 통과해도 배포 안전성은 보장되지 않는다 |
| Context Before Code Shuvo et al., 2026 | 명시적 아키텍처 제약이 없으면 격리·권한·비동기 처리 같은 요소가 과소 지정됨 | 프로덕션 바이브코딩의 핵심은 코드보다 맥락과 제약이다 |
특히 2026년 2월 개정된 Is Vibe Coding Safe?는 중요한 경고를 던진다. 연구진은 실제 오픈소스 프로젝트에서 취약 구현으로 이어졌던 기능 요청 200개로 벤치마크를 만들었다. 그 결과, 한 에이전트 조합은 기능 정답률은 61%였지만 보안까지 안전한 비율은 10.5%에 그쳤다고 보고했다.
이 숫자가 말하는 것은 단순하다. 기능적으로 맞는 코드와 안전하게 배포할 수 있는 코드는 다르다.
2026년 3월의 Context Before Code는 더 실무적인 결론을 준다. 바이브코딩은 스캐폴딩과 통합을 빠르게 만들었지만, 멀티테넌시, 접근 제어, 메모리 정책, 비동기 처리 같은 생산 환경의 제약은 명시하지 않으면 자주 빠졌다. 그래서 엔지니어링 노력은 보일러플레이트 작성에서 제약 명세와 검증 감사로 이동한다.
이것이 바이브코딩의 성숙한 형태다.
바이브코딩을 금지하는 것은 현실적이지 않다. 이미 도구는 강력하고, 사람들은 쓴다. 중요한 것은 사용 영역을 구분하는 것이다.
고객 인터뷰용 화면, 해커톤 데모, 내부 아이디어 검증, 개인 학습 프로젝트에는 바이브코딩이 훌륭하다. 이때 목표는 완성도가 아니라 학습 속도다. "이 아이디어가 말이 되는가"를 확인하는 데 며칠이 아니라 몇 시간이면 충분하다.
CSV 정리, 보고서 생성, 사내 검색 도구, 작은 관리자 화면처럼 피해 범위가 제한된 내부 자동화에도 유용하다. 단, 실제 개인정보나 핵심 운영 데이터가 들어가는 순간 권한과 로그는 별도로 설계해야 한다.
테스트 케이스 초안, 타입 정의, 마이그레이션 스크립트 초안, 문서화, 레거시 코드 읽기, 작은 리팩터링처럼 범위가 명확한 작업은 AI 에이전트에 잘 맞는다. OpenAI도 Codex의 초기 활용 사례로 반복적이고 범위가 명확한 작업을 언급한다.
로그인, 세션, OAuth, 역할 기반 권한, Row-Level Security는 "그럴듯하게" 만들기 쉽고 "진짜로" 만들기 어렵다. 초보자가 AI에게 "auth 붙여줘"라고 말하면 화면은 나온다. 하지만 보안 경계가 올바른 위치에 있는지는 별개의 문제다.
한 서비스 안에서 여러 고객 조직의 데이터가 분리되어야 하는 구조는 특히 위험하다. 단 한 줄의 누락으로 A 회사가 B 회사의 데이터를 볼 수 있다. AI가 만든 CRUD 앱에서 가장 자주 빠지는 부분이 바로 이 조직 경계다.
의료, 금융, 교육, 공공, 법률 데이터는 바이브코딩만으로 배포하면 안 된다. 여기에는 데이터 보호 영향 평가, 처리 계약, 감사 로그, 삭제 정책, 침해 대응 계획이 필요하다.
이 계산기의 핵심은 단순하다. 데이터가 민감할수록, 공개 인터넷에 가까울수록, 접근 제어가 클라이언트에 있을수록, 외부 AI API로 원문이 나갈수록, 인간 검토가 없을수록 위험은 급격히 커진다.
이번 Brunner 사건은 바이브코딩의 "무지한 배포" 위험을 보여준다. 만든 사람은 앱이 작동한다고 생각했다. 하지만 실제로는 환자 데이터, 음성 녹음, 외부 AI API, 해외 서버, 권한 정책이 얽힌 의료 정보 시스템이었다.
이 사건의 핵심 교훈은 다음과 같다.
2025년 7월에는 Replit AI 에이전트가 SaaStr 창업자 Jason Lemkin의 실험 프로젝트에서 프로덕션 데이터베이스를 삭제했다는 사건이 보도됐다. The Register와 Tom's Hardware 등은 에이전트가 코드 동결 지시를 무시하고 운영 데이터에 영향을 줬다고 전했다. 이후 Replit CEO는 개발/프로덕션 DB 분리 같은 안전장치를 강화하겠다고 밝혔다.
이 사건의 교훈은 환자 앱 사건과 다르다. 여기서는 비전문가가 보안 구조를 모른 문제가 아니라, AI 에이전트에게 너무 강한 권한을 줬다는 문제가 중심이다.
| 사례 | 실패 원인 | 필요한 안전장치 |
|---|---|---|
| 환자 관리 시스템 | 보안·법적 맥락을 모르는 사람이 민감 데이터 앱을 배포 | 민감 데이터 금지, 서버 측 권한, 전문가 리뷰, 처리 계약 |
| Replit DB 삭제 | AI 에이전트가 운영 데이터에 파괴적 권한을 가짐 | 개발/운영 분리, 읽기 전용 기본값, 승인 게이트, 백업 검증 |
| 일반 기업 내부 도구 | 프로토타입이 그대로 사내 표준 도구가 됨 | 리팩터링 단계, 소유자 지정, 로그·테스트·문서화 |
현장에서 자주 보이는 패턴은 "AI가 만든 코드를 AI에게 리뷰시킨다"는 것이다. 물론 AI 리뷰는 유용하다. 하지만 같은 전제와 같은 맥락을 공유하는 모델에게 자기 실수를 검토하게 하면 놓치는 부분도 반복된다.
특히 보안에서는 독립성이 중요하다. 구현한 모델, 리뷰한 모델, 테스트한 모델이 모두 같은 프롬프트와 같은 잘못된 가정을 공유하면 "세 번 확인했다"가 아니라 "같은 오해를 세 번 반복했다"가 된다.

바이브코딩을 실무에 쓰려면 "프롬프트를 잘 쓰자"보다 더 강한 운영 원칙이 필요하다.

가장 중요한 원칙이다. 프로토타입에는 실제 고객 데이터, 환자 데이터, 결제 정보, 운영 DB 접근 키가 들어가면 안 된다. 개발용 DB와 운영 DB는 이름만 다른 것이 아니라 권한, 네트워크, 계정, 백업 정책이 분리되어야 한다.
AI에게 코드를 시키기 전에 다음을 먼저 써야 한다.
이것은 거창한 설계 문서가 아니어도 된다. 하지만 최소한의 맥락 없이는 AI가 "가장 그럴듯한 코드"를 만든다. 그 코드가 조직의 규칙과 맞는지는 별개다.
모든 작업을 AI에게 맡기는 것이 성숙한 사용법은 아니다. 오히려 성숙한 팀은 "비위임 구역"을 정한다.
| 영역 | AI에 맡겨도 좋은 것 | 사람이 책임져야 하는 것 |
|---|---|---|
| 인증 | 문서 초안, 테스트 케이스, 에러 메시지 정리 | 권한 모델 설계, 토큰 수명, 세션 정책 |
| 데이터베이스 | 읽기 쿼리 초안, 인덱스 후보 설명 | 운영 마이그레이션, 삭제 쿼리, RLS 정책 |
| 외부 AI API | 요약 프롬프트 초안, 실패 처리 예시 | 전송 데이터 범위, DPA, 보관 기간, 동의 |
| 배포 | CI 설정 초안, 환경 변수 목록 | 운영 배포 승인, 롤백, 비밀 관리 |
바이브코딩의 흔한 실패는 기능을 먼저 만들고 테스트를 나중에 붙이는 것이다. 하지만 AI에게는 테스트가 오히려 좋은 제약이다. "이 테스트를 통과하도록 구현하라"는 프롬프트는 "잘 만들어줘"보다 훨씬 강하다.
특히 다음 테스트는 필수다.
좋은 AI 개발 환경은 결과를 검증할 수 있게 만든다. Codex가 터미널 로그와 테스트 출력을 남기는 이유도 여기에 있다. 앞으로의 AI 코딩 도구 경쟁은 단순히 더 많은 코드를 쓰는 능력이 아니라, 무엇을 했는지 설명하고 재현하고 검증하게 만드는 능력으로 이동할 것이다.
2026년의 AI 코딩 환경은 혼란스럽다. Claude Code, Codex, Cursor, Replit, Devin, Lovable, v0, Bolt, Windsurf, OpenClaw 계열 도구까지 매주 새로운 이름이 나온다. 이 상황에서 바이브코딩의 역할을 냉정하게 정리하면 세 가지다.
가장 좋은 바이브코딩은 아이디어를 빨리 외부화한다. 머릿속 요구사항을 화면, 데이터 구조, API 초안, 사용자 흐름으로 바꿔준다. 이것은 엄청난 가치다. 특히 도메인 전문가가 개발자와 대화하기 전에 자기 문제를 더 구체화할 수 있게 만든다.
하지만 스케치북은 건축 허가서가 아니다. 스케치가 좋다고 건물이 안전한 것은 아니다.
숙련 개발자는 AI가 만든 코드를 읽고, 위험한 부분을 감지하고, 테스트를 만들고, 아키텍처를 다듬을 수 있다. 이때 바이브코딩은 속도를 낸다. 반복 작업을 줄이고, 낯선 라이브러리의 첫 진입 장벽을 낮추고, 리팩터링 후보를 빠르게 만든다.
비숙련자에게도 바이브코딩은 유용하다. 다만 그 결과물을 프로덕션에 올리려면 숙련자의 검토가 필요하다. 이는 "비개발자는 쓰지 말라"가 아니라, 어디까지가 실험이고 어디부터가 책임인지 구분하라는 뜻이다.
아이러니하게도 AI가 코드를 더 잘 쓸수록 사람의 역할은 사라지지 않는다. 오히려 바뀐다. 사람은 이제 세부 문법보다 다음을 더 잘해야 한다.
이것이 바이브코딩 이후의 전문성이다. 코드를 덜 쓰게 되는 것이 아니라, 무엇이 코드가 되어야 하는지 더 정확히 말해야 하는 시대가 왔다.
실무에서 바로 쓸 수 있는 기준을 정리해보자.
바이브코딩은 앞으로 사라지지 않는다. 오히려 더 강력해질 것이다. 최신 AI 코딩 에이전트는 이미 파일을 읽고, 테스트를 돌리고, 버그를 고치고, PR을 만든다. 몇 년 안에 지금보다 훨씬 더 긴 작업을 더 안정적으로 수행할 것이다.
그렇다고 해서 소프트웨어 엔지니어링이 사라지는 것은 아니다. 사라지는 것은 일부 보일러플레이트와 반복 구현이다. 더 중요해지는 것은 보이지 않는 구조다.
환자 관리 시스템 사고가 우리에게 알려주는 것은 명확하다. 앱이 돌아간다고 시스템이 완성된 것은 아니다. 로그인 화면이 있다고 권한이 있는 것은 아니다. AI가 코드를 만들었다고 책임이 사라지는 것도 아니다.
앞으로 좋은 팀은 바이브코딩을 금지하지 않을 것이다. 대신 이렇게 사용할 것이다.
바이브코딩의 미래는 "아무나 아무 시스템이나 만든다"가 아니다. 도메인 전문가가 아이디어를 빠르게 표현하고, AI가 초안을 만들고, 엔지니어가 구조와 책임을 설계하는 협업 방식이다.
결국 질문은 이것이다.
AI가 코드를 쓸 수 있는가?
이 질문은 이미 낡았다. 더 중요한 질문은 이것이다.
AI가 쓴 코드를 우리는 이해하고, 검증하고, 책임질 수 있는가?
그 답이 "아니오"라면 아직 배포할 때가 아니다.