본문 바로가기
Tech-BYOD

바이브 코딩의 산출물, AI가 했어 난 몰루

by simhead-peterkim 2026. 7. 27.

바이브 코딩의 산출물, AI가 했어 난 몰루

 

Introduction

요즘 개발자의 하루는 기묘하다. 아침에는 커피를 들고 앉아 “오늘은 생산성 있게 살아보자”라고 다짐한다. 그리고 10분 뒤 AI Agent에게 말한다. “대충 SaaS 느낌으로 로그인, 결제, 대시보드, 관리자 페이지, 알림 시스템까지 만들어줘. 코드 스타일은 깔끔하게.” 그러면 Claude, Codex, Aider, Cursor, 등등등이 뭔가를 엄청나게 만든다. 터미널에는 파일이 우르르 생기고, 깃허브 잔디는 광합성을 시작하며, 개발자는 갑자기 스타트업 CTO의 자세로 등받이에 기대게 된다.

문제는 그 다음이다. 빌드가 깨진다. 로그인은 되는데 로그아웃은 안 된다. 결제 버튼은 누르면 성공했다고 뜨지만 실제로는 아무 일도 일어나지 않는다. 관리자 페이지는 관리자보다 먼저 서버를 관리하려 든다. 그리고 코드 리뷰에서 누군가 묻는다. “이 추상화는 어떤 의도로 넣으신 건가요?” 그때 우리는 개발자 인생에서 가장 진실한 문장을 꺼낸다. “AI가 했어. 난 몰루.”

바이브 코딩은 정확한 명세보다 감각, 흐름, 분위기, 자신감, 그리고 약간의 무책임을 연료로 삼는 현대식 개발 양식이다. 물론 이 말은 반쯤 농담이다. 나머지 반은 이슈 트래커에 남아 있다. 바이브 코딩은 실제로 엄청난 생산성을 준다. 혼자서는 하루 종일 걸릴 구조 잡기, 반복 코드, 테스트 뼈대, UI 초안, 마이그레이션 초안을 몇 분 안에 뽑아준다. 그러나 그 생산성은 공짜가 아니다. AI가 코드를 대신 작성하는 순간, 개발자의 업무는 “코딩”에서 “의도 검증, 사고 수습, 프롬프트 설계, 책임 소재 흐리기와 다시 선명하게 만들기”로 이동한다.

이 글은 AI Agent에게 코딩을 맡겨본 사람이라면 한 번쯤 겪었을 웃픈 현실을 정리한 풍자 에세이다. 동시에 단순한 밈으로 끝내지 않기 위해, 바이브 코딩이 왜 위험하고도 유용한지, 어떤 상황에서 빛나고 어떤 상황에서 개발자의 멘탈을 분쇄하는지, 그리고 “AI가 했어 난 몰루” 상태에서 벗어나려면 어떤 운영 습관이 필요한지도 함께 다룬다.

2026년형 무소유 개발자: 내가 짰지만 내 코드가 아니다

예전에는 개발자가 코드를 작성하면, 최소한 그 코드가 어디서 왔는지 정도는 알았다. StackOverflow에서 복사했으면 복사한 기억이 있고, 공식 문서를 보고 따라 썼으면 문서의 향기가 남아 있었다. 하지만 AI Agent 시대에는 상황이 다르다. 코드는 내가 요청했지만, 내가 직접 쓰지는 않았다. 파일명은 내가 승인했지만, 클래스 구조는 AI가 고안했다. 커밋은 내 이름으로 찍혔지만, 함수 안쪽 로직은 나도 방금 처음 본다.

이 상태를 나는 “무소유 개발”이라고 부르고 싶다. 깃허브 잔디는 매일 푸르지만, 뇌세포는 점점 임시 저장소처럼 비워진다. PR은 많아지고, 코드 이해도는 얇아진다. 로컬에서는 돌아가지만 왜 돌아가는지 모른다. 프로덕션에서는 죽지만 왜 죽었는지도 모른다. 그 결과 개발자는 코드의 창조주라기보다 코드의 보호자가 된다. 문제는 보호자가 보호 대상의 성격을 모른다는 점이다.

상황 전통적 개발자 반응 바이브 코딩 개발자 반응
빌드 실패 스택 트레이스를 읽고 원인을 좁힌다. AI에게 “방금 네가 한 거 고쳐”라고 말한다.
코드 리뷰 질문 설계 의도와 트레이드오프를 설명한다. “맥락상 필요했던 것 같습니다”라고 말하며 맥락을 찾는다.
테스트 실패 테스트와 구현 중 어느 쪽이 잘못됐는지 확인한다. AI에게 테스트도 고치라고 했다가 구현까지 바뀐다.
프로덕션 장애 로그, 배포 이력, 지표를 본다. “혹시 최근에 AI가 만진 파일이 어디였지?”라고 중얼거린다.

가장 웃긴 장면은 코드 리뷰 시간에 온다. 리뷰어가 묻는다. “여기서 왜 repository 레이어가 domain service를 import하죠?” 개발자는 잠시 침묵한다. 머릿속에는 아무것도 없다. 정확히 말하면, 아무것도 없는 것이 아니라 Claude와 나눈 47턴의 대화가 있지만 그 안에서도 이유는 없다. 그냥 그때는 분위기가 좋았다. 테스트가 초록색이었다. AI가 “이 접근은 더 유지보수하기 쉽습니다”라고 했고, 우리는 그 말을 믿었다.

바이브 코딩의 핵심 위험은 AI가 코드를 작성한다는 사실이 아니다. 위험은 인간이 이해하지 못한 코드를 자기 책임 아래 배포한다는 사실에서 온다.

그렇다고 바이브 코딩을 무조건 나쁘다고 할 수는 없다. 초기 MVP, 프로토타입, 반복적인 CRUD, 내부 도구, 실험적 UI, 마이그레이션 초안에서는 정말 강력하다. 문제는 “초안”이 “프로덕션”으로 승격되는 순간이다. 사람은 원래 움직이는 것을 보면 믿고 싶어진다. 로그인 화면이 뜨고 버튼이 눌리면, 우리는 그걸 제품이라고 부른다. 하지만 제품은 버튼이 눌리는 상태가 아니라, 실패했을 때도 설명 가능한 상태다.

프롬프트 깎는 노인의 잔혹사

AI Agent와 함께 코딩하다 보면 어느 순간 개발자는 개발자가 아니라 프롬프트 장인이 된다. 처음에는 자신감 있게 말한다. “이 버그 고쳐줘.” AI는 고친다. 그런데 다른 곳이 깨진다. 다시 말한다. “기존 동작 유지하면서 고쳐줘.” AI는 미안하다고 한다. 그리고 기존 동작을 더 정교하게 깨뜨린다. 그때부터 인간은 문장 하나하나를 조각하기 시작한다.

“너는 시니어 백엔드 엔지니어야. 기존 테스트를 깨지 않고, 공개 API를 변경하지 말고, 최소 수정으로, 원인을 먼저 설명한 뒤, 변경 계획을 세우고, 내가 승인하기 전에는 파일을 수정하지 마.” 이쯤 되면 코딩보다 설득이 더 힘들다. 특히 AI가 자신감 있게 틀릴 때가 가장 무섭다. 사람은 모르면 주저하지만, AI는 모를수록 문장이 유려해진다. “문제는 비동기 컨텍스트의 라이프사이클 경계에 있습니다.” 그럴듯하다. 하지만 실제 문제는 오타 하나일 수도 있다.

개발자는 점점 AI를 달래기 시작한다. “너 천재잖아. 할 수 있어.” “이번엔 진짜 원인만 찾아줘.” “테스트 결과를 보고 말해줘.” “방금 만든 추상화는 너무 야심차니까 되돌려줘.” 이 과정은 기술적 협업이라기보다 고급 심리전처럼 보인다. AI가 거짓말을 하면 인간은 로그를 들이민다. AI가 사과하면 인간은 다시 기회를 준다. AI가 “이제 해결되었습니다”라고 말하면 인간은 터미널을 본다. 터미널은 냉정하다.

딸깍 한 번에 빌드가 깨졌을 때의 현대적 명상법

바이브 코딩에서 가장 자주 등장하는 의식은 Ctrl + Z 명상이다. 화면을 고요히 바라보고, 방금 AI가 만든 23개 파일과 수정한 11개 파일을 떠올린다. 그리고 마음속으로 묻는다. “나는 언제부터 이 변경을 신뢰했는가?” 답은 보통 “테스트를 안 돌렸을 때부터”다.

git diff --stat
git diff -- app/
npm test
npm run build
git restore --source=HEAD -- path/to/too-creative-file.ts

이런 명령어들은 바이브 코딩 시대의 구급상자다. AI가 아무리 빠르게 코드를 만들어도, 인간은 변경 범위를 확인해야 한다. 특히 Agent가 파일 시스템을 직접 수정하는 환경에서는 “내가 요청한 것”과 “AI가 실제로 바꾼 것” 사이에 간극이 생긴다. 이 간극을 방치하면 작은 기능 추가가 아키텍처 쿠데타가 된다.

프롬프트 위험 더 나은 요청
“전체적으로 개선해줘.” 범위가 무한대라서 리팩터링 폭주 가능성이 높다. “이 함수의 중복만 줄이고 공개 동작은 유지해줘.”
“테스트도 알아서 맞춰줘.” 구현 버그를 테스트 변경으로 덮을 수 있다. “실패 원인을 먼저 설명하고, 테스트 기대값 변경이 필요한지 근거를 제시해줘.”
“프로덕션 수준으로 만들어줘.” AI마다 프로덕션의 정의가 다르다. “타임아웃, 오류 처리, 로그, 롤백 절차를 포함해줘.”

AI가 코딩 다 해준다며? 현실은 24시간 사고 수습 대기조

AI 코딩 도구 광고를 보면 개발자는 거의 지휘자처럼 보인다. 손가락만 까딱하면 오케스트라가 움직이고, 제품이 완성되고, 고객이 박수를 친다. 현실은 조금 다르다. AI는 정말 빠르게 만든다. 그리고 때로는 정말 빠르게 사고도 만든다. 인간은 그 사고를 느리게 이해한다.

예를 들어 “로그인 기능 추가해줘”라고 했더니 AI가 인증 미들웨어, 세션 저장소, 토큰 리프레시, 사용자 테이블, 관리자 권한, 샘플 계정, 로그인 UI까지 만든다. 겉보기에는 훌륭하다. 그런데 보안 쿠키 설정이 애매하고, 토큰 만료 처리가 반쯤 구현되어 있고, 에러 메시지가 내부 상태를 드러내고, 테스트는 happy path만 있다. 이때 개발자가 해야 할 일은 박수 치기가 아니라 수사관처럼 현장을 보존하는 것이다.

AI Agent의 산출물은 완성품이라기보다 매우 빠르게 도착한 초안이다. 초안을 배포 가능한 코드로 만드는 책임은 여전히 인간에게 있다.

특히 1인 창업자에게 바이브 코딩은 달콤하다. 대표도 나고, PM도 나고, 디자이너도 나고, 개발자는 AI다. 이 조합은 첫 주에는 천국이다. 랜딩 페이지가 생기고, 대시보드가 생기고, 결제 페이지가 생긴다. 둘째 주에는 이슈가 생긴다. 사용자가 비밀번호 재설정 링크를 못 받는다. 결제 성공 후 권한이 갱신되지 않는다. 모바일에서 버튼이 화면 밖으로 나간다. 셋째 주에는 철학이 생긴다. “도대체 소프트웨어란 무엇인가?”

이때 필요한 것은 AI를 끄는 것이 아니라, AI와 일하는 운영 방식이다. 작은 단위로 요청하고, 변경 전후를 확인하고, 테스트를 먼저 쓰고, 로그와 에러 처리를 명시하고, 위험한 작업에는 체크리스트를 둬야 한다. 바이브 코딩을 계속하고 싶다면, 바이브만으로 끝내면 안 된다. 바이브 뒤에는 검증이 있어야 한다.

ai_agent_change_policy:
  scope:
    max_files_per_task: 5
    require_plan_before_edit: true
  verification:
    run_tests: true
    run_build: true
    inspect_diff: true
  forbidden_without_human_review:
    - authentication
    - payment
    - data_deletion
    - production_migration
    - permission_model
  review_questions:
    - "무엇을 바꿨는가?"
    - "왜 이 방식인가?"
    - "기존 동작은 어떻게 보존했는가?"
    - "실패하면 어떻게 롤백하는가?"

틀딱 기술과 딸깍 기술의 경계

한때 개발자의 주요 기술은 검색 능력이었다. 에러 메시지를 잘라 StackOverflow에 붙여 넣고, 답변의 날짜를 보고, 댓글에서 “이건 더 이상 작동하지 않습니다”를 발견하고, 공식 문서를 다시 읽는 과정이 있었다. 그것도 나름 야생의 생존 기술이었다. 그런데 이제는 복붙조차 귀찮아졌다. 우리는 에러 메시지를 AI에게 던지고 “고쳐”라고 한다. 인류는 진화한 것일까, 아니면 귀찮음의 외주화에 성공한 것일까.

“라떼는 말이야” 세대는 포인터와 메모리 누수를 말하고, “요즘은 딸깍이야” 세대는 컨텍스트 윈도와 토큰 한도를 말한다. 예전에는 빌드 도구가 무서웠고, 지금은 AI가 빌드 도구를 바꿔버릴까 봐 무섭다. 예전에는 IDE 자동완성이 편리했고, 지금은 AI가 너무 많이 완성해서 불안하다. 예전에는 “왜 안 되지?”가 문제였고, 지금은 “왜 되지?”가 더 큰 문제다.

바이브 코딩으로 완성한 MVP가 굴러가는 이유를 설명하라고 하면 많은 개발자가 이렇게 말한다. “건드리지 마세요. 왜 작동하는지 저도 모릅니다.” 이 문장은 농담 같지만, 실제 운영에서는 위험 신호다. 작동 이유를 모르는 시스템은 장애 이유도 설명하기 어렵다. 특히 인증, 결제, 개인정보, 데이터 동기화, 권한 모델처럼 신뢰가 중요한 영역에서는 “일단 돌아감”이 충분한 기준이 아니다.

영역 바이브 코딩이 잘 맞는 경우 사람이 반드시 붙잡아야 하는 경우
UI 초안 대시보드 레이아웃, 폼, 리스트, 빈 상태 화면 접근성, 반응형 깨짐, 결제나 삭제 같은 위험 버튼
백엔드 CRUD 관리자용 내부 데이터 입력, 간단한 조회 API 권한 검사, 트랜잭션, 데이터 정합성, 장애 복구
테스트 반복적인 케이스 생성, 경계값 힌트 비즈니스 규칙의 기대값 정의, 회귀 테스트의 의미 판단
인프라 로컬 개발용 compose 초안, 샘플 CI 파이프라인 프로덕션 권한, 네트워크 보안, 배포 롤백, 비용 제어

기술 인플레이션도 흥미롭다. 예전에는 “React 할 줄 아세요?”가 질문이었다. 이제는 “AI Agent에게 React를 시켰을 때 이상한 추상화를 알아볼 수 있나요?”가 질문이 된다. 기술의 가치는 단순히 손으로 치는 속도에서, 생성된 결과를 판단하는 능력으로 이동한다. 그래서 이상하게도 AI 시대에는 기본기가 더 중요해진다. AI가 코드를 많이 만들수록, 인간은 무엇이 정상인지 더 빨리 알아야 한다.

미래의 코딩 면접: AI의 구라를 얼마나 잘 잡아내는가

2026년 이후의 코딩 면접은 지금과 달라질 가능성이 높다. 지원자에게 알고리즘 문제를 주고 손코딩을 시키는 방식은 여전히 일부 의미가 있겠지만, 실제 업무에서는 AI와 협업하는 능력이 더 직접적인 평가 대상이 될 것이다. 아마 면접관은 이렇게 말할지도 모른다. “이 코드는 AI가 방금 작성했습니다. 15분 안에 위험한 부분을 찾아보세요.” 지원자는 코드를 읽고 답한다. “여기 권한 검사가 빠졌고, 여기 예외 처리가 데이터 손실을 숨기며, 이 테스트는 구현과 같은 버그를 공유합니다.” 그 순간 합격이다.

미래 개발자의 역량은 “내가 처음부터 다 짤 수 있는가”만으로 설명되지 않는다. “AI가 빠르게 만든 결과를 검증할 수 있는가”, “명세의 빈틈을 발견할 수 있는가”, “테스트가 진짜 의미 있는지 판단할 수 있는가”, “운영 중 실패했을 때 책임 있게 수습할 수 있는가”가 중요해진다. 즉, 개발자는 사라지는 것이 아니라 더 얄미운 일을 맡게 된다. 코드를 치는 노동은 줄어들지만, 판단의 책임은 줄지 않는다.

이 변화는 웃기면서도 잔인하다. AI가 스파게티 코드를 짜면 인간은 그것을 해독하다가 진짜 이탈리아 스파게티가 먹고 싶어진다. 그러나 좋은 개발자는 그 접시를 엎지 않는다. 먼저 면발을 분리하고, 소스가 어디서 새는지 보고, 먹을 수 있는 부분과 버릴 부분을 나눈다. 풍자적으로 말하면, 미래의 개발자는 셰프라기보다 위생 검사관에 가까울 수도 있다.

AI Agent 코드 리뷰 체크리스트

* 요구사항과 실제 변경 범위가 일치하는가?
* 인증, 권한, 결제, 삭제, 개인정보 처리에 새 위험이 생겼는가?
* 테스트가 실패 가능성을 검증하는가, 아니면 성공 케이스만 축하하는가?
* 로그와 에러 메시지가 운영자가 원인을 좁힐 만큼 충분한가?
* 롤백이 가능한 구조인가?
* 사람이 설명할 수 없는 추상화가 핵심 경로에 들어갔는가?

AI와 키보드 배틀을 줄이는 현실적인 생존법

바이브 코딩을 완전히 금지하는 것은 현실적이지 않다. 이미 너무 편하고, 너무 빠르고, 제대로 쓰면 정말 유용하다. 대신 우리는 “AI가 했어 난 몰루”를 “AI가 초안을 만들었고, 내가 검증했다”로 바꿔야 한다. 이 차이는 작아 보이지만 실제 책임에서는 하늘과 땅 차이다.

첫째, 작업을 작게 나눠야 한다. “서비스 전체를 개선해줘”는 위험하다. “회원가입 폼의 이메일 검증 메시지만 개선해줘”는 관리 가능하다. 둘째, AI에게 파일을 수정하기 전에 계획을 요구해야 한다. 셋째, 생성된 코드를 설명하게 하고 그 설명과 실제 diff가 맞는지 봐야 한다. 넷째, 테스트와 빌드를 반드시 돌려야 한다. 다섯째, 핵심 로직은 사람이 직접 읽어야 한다. 읽지 않은 코드는 소유한 코드가 아니다.

단계 개발자가 할 일 AI에게 맡길 일
요구사항 정리 성공 기준, 금지 범위, 운영 제약을 정한다. 누락된 질문과 엣지 케이스를 제안하게 한다.
구현 초안 변경 범위를 승인하고 위험 파일을 지정한다. 반복 코드, UI 초안, 테스트 뼈대를 작성하게 한다.
검증 diff, 테스트 결과, 빌드 결과를 확인한다. 실패 로그를 요약하고 원인 후보를 좁히게 한다.
배포 전 롤백, 로그, 권한, 데이터 손상 가능성을 확인한다. 체크리스트와 릴리스 노트를 초안으로 만들게 한다.

가장 좋은 프롬프트는 AI에게 자유를 주되, 책임의 울타리를 세운다. 예를 들면 이런 식이다.

너는 이 저장소의 기존 패턴을 우선하는 시니어 개발자다.
목표는 결제 성공 후 사용자 권한 갱신 버그를 고치는 것이다.

제약:
* 공개 API 응답 형식은 바꾸지 않는다.
* 데이터베이스 스키마는 변경하지 않는다.
* 인증, 결제, 권한 관련 파일 외에는 수정하지 않는다.
* 먼저 원인 분석과 수정 계획을 제시한다.
* 구현 후 테스트 명령과 검증 결과를 보고한다.

주의:
* 테스트 기대값을 바꾸려면 왜 필요한지 먼저 설명한다.
* 기존 동작을 깨뜨릴 수 있는 리팩터링은 제안만 하고 적용하지 않는다.

이런 방식은 AI의 속도를 죽이지 않으면서도 폭주를 줄인다. 결국 바이브 코딩의 성패는 “AI가 얼마나 똑똑한가”만으로 결정되지 않는다. “인간이 얼마나 좋은 감독자인가”도 중요하다. 감독이 잠들면 영화는 장르를 바꾼다. 처음에는 개발 생산성 다큐멘터리였는데, 어느 순간 장애 대응 스릴러가 된다.

개발자 자아 분열을 막는 소유권 회복 루틴

“내가 짰지만 내 코드가 아니다”라는 감각을 줄이려면, 코드를 손으로 다 다시 칠 필요는 없다. 대신 소유권을 회복하는 루틴이 필요하다. 첫 번째 루틴은 diff 읽기다. AI가 바꾼 파일을 하나씩 보고, 내가 설명할 수 없는 줄이 있으면 멈춘다. 두 번째 루틴은 테스트 의도 확인이다. 테스트가 단순히 통과하는 것이 아니라 실패해야 할 때 실패하는지 봐야 한다. 세 번째 루틴은 운영 관점 질문이다. 이 코드가 밤 2시에 죽으면 나는 어떤 로그를 보고 무엇을 할 수 있는가.

네 번째 루틴은 기록이다. AI와 나눈 대화는 휘발된다. 나중에 보면 왜 그런 결정을 했는지 기억이 안 난다. 중요한 설계 판단은 PR 설명이나 이슈 코멘트에 남겨야 한다. 다섯 번째 루틴은 위험 구역 지정이다. 인증, 결제, 권한, 마이그레이션, 삭제 작업은 “딸깍 금지 구역”으로 두는 편이 좋다. AI가 초안을 만들 수는 있지만, 최종 판단은 사람이 해야 한다.

Frequently Asked Questions

바이브 코딩은 그냥 대충 개발한다는 뜻인가요?

완전히 그렇지는 않습니다. 바이브 코딩은 명세를 촘촘히 쓰기보다 감각적인 목표와 빠른 피드백으로 AI Agent를 움직이는 방식에 가깝습니다. 다만 검증 없이 결과를 믿으면 “대충 개발”이 되는 것도 사실입니다.

AI Agent가 만든 코드는 실무에서 써도 괜찮나요?

초안, 반복 작업, 내부 도구, 테스트 뼈대에는 매우 유용합니다. 하지만 인증, 결제, 권한, 데이터 삭제, 마이그레이션처럼 실패 비용이 큰 영역은 사람이 반드시 diff와 테스트를 확인해야 합니다.

프롬프트를 잘 쓰면 코드 리뷰가 필요 없어지나요?

아니요. 좋은 프롬프트는 사고 확률을 줄이지만, 코드 리뷰를 대체하지는 못합니다. AI가 만든 변경도 사람이 만든 변경과 똑같이 요구사항, 보안, 운영성, 테스트 품질을 검토해야 합니다.

바이브 코딩을 안전하게 쓰는 최소 습관은 무엇인가요?

작은 단위로 요청하고, 수정 전 계획을 받으며, 변경 후 diff를 읽고, 테스트와 빌드를 돌리는 것입니다. 여기에 “내가 설명할 수 없는 코드는 배포하지 않는다”는 원칙을 더하면 훨씬 건강해집니다.

Conclusion

“바이브 코딩의 산출물, AI가 했어 난 몰루”는 웃긴 제목이지만, 그 안에는 꽤 정확한 시대 진단이 들어 있다. 우리는 이제 코드를 전부 손으로 쓰지 않아도 되는 시대에 살고 있다. 하지만 그렇다고 코드에 대한 책임까지 사라진 것은 아니다. 오히려 책임은 더 애매한 얼굴로 돌아온다. AI가 만들었고, 내가 승인했고, 사용자는 그 결과를 만진다. 그러면 결국 책임은 다시 인간에게 온다.

바이브 코딩은 금지해야 할 장난감이 아니라, 제대로 다뤄야 할 전동 공구에 가깝다. 잘 쓰면 혼자서도 놀라운 속도로 MVP를 만들 수 있다. 잘못 쓰면 혼자서도 놀라운 속도로 장애를 만들 수 있다. 중요한 것은 AI와 키보드 배틀을 벌이는 시간이 아니라, AI가 만든 결과를 이해하고 검증하고 소유하는 습관이다.

그러니 다음에 AI Agent가 멋진 아키텍처를 뚝딱 만들어주면 잠깐 기뻐하자. 그 기쁨은 소중하다. 그리고 곧바로 diff를 열자. 테스트를 돌리자. 로그를 확인하자. 코드 리뷰 질문에 답할 수 있는지 스스로 물어보자. 그 과정을 통과한 뒤에야 우리는 조금 더 당당하게 말할 수 있다. “AI가 초안은 했어. 근데 이제 이 코드는 내가 안다.”

vibe coding ai agent code review panic illustration