올해 12개의 바이브 코딩 앱을 정리해 봤는데, 매번 똑같은 7가지 문제가 발생함
I've cleaned up a dozen vibe-coded apps this year. The same 7 problems show up every single time
핵심 요약
AI로 만든 앱에서 반복적으로 발견되는 7가지 보안 및 안정성 문제와 해결책을 공유함.
- 보안 취약점 — API 키 노출 및 서버 측 권한 검증 부재가 빈번함.
- 데이터 격리 — 사용자 간 데이터 접근 제어가 제대로 이루어지지 않음.
- 운영 안정성 — 에러 추적 부재와 검증되지 않은 백업 시스템이 위험함.
- 결제 로직 — 클라이언트 측 가격 조작 및 웹훅 검증 누락이 치명적임.
개발 팀을 운영 중인데, 올해 우리 업무의 상당 부분은 AI로 만든 앱을 실제 사용자가 쓸 수 있게 다듬는 일이었음. 거의 매번 똑같은 상황임: 앱은 돌아가고 창업자는 (당연히) 자랑스러워하지만, 첫 번째 실제 사용자가 이상한 짓을 하면 모든 게 불타오름.
우리가 거의 모든 코드베이스에서 발견하는 7가지 문제는 다음과 같음:
-
코드 내 시크릿. 프론트엔드에 API 키가 있거나 레포에 커밋됨. 본인 코드에서 sk-, secret, password를 검색해 볼 것. 실제 값이 나오면 출시 후가 아니라 오늘 당장 교체해야 함.
-
UI가 유일한 보안 수단임. 관리자가 아닌 사용자에겐 버튼을 숨기지만, API는 직접 호출하는 누구에게나 친절하게 응답함. AI 도구는 '해피 패스'만 구축함. 공격자는 당신의 UI를 쓰지 않음. 모든 엔드포인트는 서버 측 권한 검증이 필요함.
-
한 사용자가 다른 사용자의 데이터를 볼 수 있음. 앱에 계정 기능이 있다면, 계정 두 개를 만들고 첫 번째 계정으로 데이터를 만든 뒤, 두 번째 계정에서 ID로 조회를 시도해 볼 것. 이게 얼마나 자주 성공하는지 보면 깜짝 놀랄 거임.
-
에러 추적 전무. 사용자는 버그를 제보하지 않고 그냥 떠나버림. Sentry 무료 티어는 설정하는 데 20분밖에 안 걸리고, 이 목록 중에서 가장 가성비가 좋음.
-
한 번도 복구해 본 적 없는 백업. 다들 백업이 있다고 말하지만, 실제로 복구해 본 사람은 거의 없음. 복구 테스트를 안 해봤다면 그건 백업이 아니라 희망 고문임.
-
클라이언트를 신뢰하는 결제. 프론트엔드에서 가격을 가져오거나 웹훅 서명을 검증하지 않음. Stripe의 통합 체크리스트는 지루하지만 정확함. 그냥 그대로 따라 할 것.
-
조용한 재작성. AI가 당신이 보지 않는 앱의 일부를 멋대로 바꿈. 가장 중요한 페이지 5개에 스크린샷 테스트(Playwright, 설정에 오후 반나절 소요)를 도입하면 당신의 눈이 놓치는 부분을 잡아낼 수 있음.
이 중 어떤 것도 재작성이 필요하지 않음. 대부분 몇 달이 아니라 며칠이면 끝날 작업임. 불타오르는 도중에 하는 것보다 출시 전에 하는 게 훨씬 나음.
AI로 만든 코드에서 다른 반복적인 문제들을 발견했다면 아래에 공유해 주길 바람. 다들 뭘 발견하고 있는지 진심으로 궁금함.


