주니어에게 '바이브코딩'을 알려줬더니, 15만 루피짜리 외주를 따와서 앱을 만들었네요. 오늘 코드 리뷰했는데 정신과 상담이 필요합니다.
I introduced my junior to "vibecoding." He landed a ₹1.5L freelance client, built the whole app, and today I audited it. I need therapy.
핵심 요약
바이브코딩으로 만든 앱의 처참한 보안과 성능 문제를 폭로하며, 기본기 없는 AI 코딩의 위험성을 경고하는 글입니다.
- 보안 취약점 — 하드코딩된 자격 증명과 세션 위조 가능성 등 심각한 보안 결함이 발견됨
- 성능 문제 — 비효율적인 DB 쿼리와 메모리 낭비로 인해 앱이 사실상 시한폭탄 수준임
- 바이브코딩의 한계 — AI는 프롬프트대로만 작동하므로 개발자의 기본 지식이 필수적임
- 기술적 조언 — 실제 서비스 배포 전 데이터베이스 설계와 네트워크 기초 학습이 선행되어야 함
몇 달 전, 내 후배한테 '바이브코딩(vibecoding)'을 알려줬거든. LLM, 빠른 프롬프팅, 커서(Cursor) 마법, 그리고 빠르게 배포하는 것까지, 그야말로 꿈의 개발 방식이지.
이 녀석이 그걸 배우더니 아주 날아다니더라. 인정할 건 인정해야지, 이 친구 추진력 하나는 진짜 미쳤거든. 실제 고객 하나 물어와서 버스 셔틀 및 티켓팅 플랫폼으로 15만 루피(약 1,570달러)짜리 계약을 따내더니, 몇 주 동안 기능을 미친 듯이 뽑아내더라고.
겉으로 보기엔? 완전 대성공이었어. 버튼 하나하나 다 잘 작동하고, 예약도 되고, 결제도 문제없었거든. 고객도 만족했고, 내 후배는 자기가 무슨 제2의 저커버그라도 된 줄 알았겠지.
오늘, 이 녀석이 런칭 전에 코드 좀 한번 봐달라고 하더라고.
난 그냥 CSS 좀 지저분하거나 try/catch 블록 몇 개 빠졌겠거니 하고 레포를 열었지. 근데 웬걸, 아키텍처가 그냥 심연 그 자체더라. 기본기도 없이 '바이브'만으로 프로덕션 소프트웨어를 만들면 어떤 꼴이 나는지 똑똑히 봐라. 이건 그냥 겉핥기로 훑어본 수준이다:
당장 터질 보안 위험들
-
하드코딩된 기본 자격 증명:
user-actions.ts에"driver123"이랑"shuttle123"이 그대로 박혀 있더라. -
기본값으로 설정된 세션 위조: 소스 코드에 하드코딩된 인증 시크릿 키가 있네. 배포할 때
.env변수 설정 안 하면, 누구나 관리자 세션을 위조할 수 있는 상태야. -
셀프 DDoS 미들웨어: 커스텀 미들웨어가 들어오는 모든 요청마다 자기 서버로 HTTP fetch를 날리고 있었어.
-
뚫리는 레이트 리미터: 프록시 검증도 없이 들어오는 IP 헤더를 그대로 믿는 레이트 리미터라니. 가짜 헤더 하나만 던지면 누구나 우회 가능함.
-
락(Lock)과 크론(Cron)의 불일치: 좌석 락 타임아웃은 5분인데, 정작 데이터 정리하는 크론 작업은... 하루에 한 번 돌게 설정해놨더라.
-
결제 레이스 컨디션: 결제 검증할 때 UTR 고유성 체크하는 부분에서 전형적인 레이스 컨디션 발생.
성능 다 갉아먹는 주범들


