바이브코딩·AI ·
바이브코딩으로 80% 만든 앱, 출시 못 하는 나머지 20%
화면은 거의 다 됐는데 출시가 몇 달째 미뤄진다면, 남은 건 기능보다 결정이에요. 회원가입 · 권한 · 환불 · 관리자 · 데이터 · 배포 비용 · 계정 명의까지 출시 전에 확인할 것을 한 번에 정리했어요.
상담에서 자주 듣는 말이 있어요. "거의 다 만들었는데 출시를 못 하겠어요."
프로젝트를 열어 보면 대부분 React · Next.js · Supabase 조합이에요. AI 코딩 도구가 기본으로 고르는 경우가 많거든요. 어떤 기술로 만들었는지 본인도 모르는 경우가 많아요.
처음 몇 달은 신나요. 말만 하면 화면이 생기니까요. 그런데 출시가 가까워지면 세 가지가 한꺼번에 와요.
- 만든 줄 알았던 기능에 빠진 부분이 보여요.
- AI 에게 에러를 고쳐 달라고 해도 같은 자리를 맴돌아요.
- 보안은 괜찮은지, 서버는 안 죽는지, 비용은 얼마인지 답할 수 없어요.
제목의 80%와 20%는 잰 숫자가 아니라 비유예요. 보이는 화면은 거의 다 됐는데, 안 보이는 나머지가 더 오래 걸린다는 뜻이에요.
왜 출시 직전에 막힐까요
실력 문제가 아닌 경우가 훨씬 많았어요. 처음에 깔린 구조의 문제였어요.
React · Next.js · Supabase 는 좋은 기술이에요. 다만 화면 · 서버 · 데이터베이스 · 결제를 따로 이어 붙이는 조립형이에요. 잇는 방법이 하나로 정해져 있지 않아요. 그래서 AI 가 요청마다 다른 구조를 내놓기 쉬워요.
몇 달이 지나면 스타일이 다른 코드가 겹겹이 쌓여요. 에러 하나를 고치려 해도 AI 가 얽힌 구조 전체를 이해해야 해요. 같은 자리를 맴도는 수정이 여기서 시작돼요.
기술 비교는 왜 루비온레일즈인가에 정리했어요. 이 글은 남은 20%가 무엇인지에 집중할게요.
남은 20%에는 무엇이 들어 있나요
기능 목록이 아니라 결정 목록이에요. 코드는 AI 가 짜요. 무엇을 어떻게 할지는 만드는 사람이 정해야 해요.
| 영역 | 먼저 답할 질문 |
|---|---|
| 회원가입 | 비밀번호를 잊은 사람은 어떻게 다시 들어오나요? |
| 권한 · 보안 | 다른 사람의 데이터가 보이지는 않나요? |
| 결제 · 환불 | 환불 요청이 오면 무엇을 누르나요? |
| 관리자 | 회원과 주문은 어디서 보나요? |
| 데이터 | 기능을 고치다 손님 데이터가 지워지지 않나요? |
| 배포 · 도메인 · 비용 | 어디에 올리고, 매달 얼마가 나가나요? |
| 모니터링 | 에러가 나면 누가 먼저 알게 되나요? |
| 명의 | 코드 · 서버 · 도메인 계정은 누구 이름인가요? |
하나씩 볼게요.
회원가입은 정말 끝났나요
AI 에게 회원가입을 시키면 5분이면 나와요. 가입하고 로그인되면 끝났다고 느끼기 쉬워요. 그런데 서비스를 열면 바로 필요한 다섯 가지가 빠져 있어요.
- 비밀번호 찾기 — 없으면 첫 문의가 "로그인이 안 돼요"예요. 재설정 링크를 몇 분 동안 살려 둘지, 한 번 쓰면 없앨지도 정해요.
- 내 정보 수정 — 비밀번호를 바꿀 때 지금 비밀번호를 한 번 더 물을지 정해요.
- 회원 탈퇴 — 사용자는 자기 정보 삭제를 요구할 수 있어요. 결제 기록은 세법상 남겨야 해요. 그래서 보통 개인정보는 익명화하고 거래 기록은 남겨요.
- 개인정보 처리방침 — 이메일 하나만 받아도 정해서 공개해야 해요. 남의 것을 복사하면 실제 수집 항목과 어긋나요.
- 이용약관 — 문제 회원을 정지할 근거가 돼요.
카카오 · 구글 로그인만 붙이면 비밀번호 찾기는 빠져요. 나머지 넷은 그대로 필요해요.
다른 사람의 데이터가 보이지는 않나요
가장 조용히 터지는 문제예요. 화면에는 아무 표시가 없거든요.
- 브라우저가 데이터베이스에 바로 붙는 구조라면 테이블마다 권한 설정이 있어야 해요. Supabase 에서는 RLS 라고 불러요. 하나만 빠져도 그 테이블이 열려요.
- 관리자인지 브라우저에서만 확인하면 안 돼요. 브라우저에 저장된 값은 사용자가 바꿀 수 있어요. 결제 안 한 회원이 유료 기능을 쓰는 사고가 여기서 나요.
- API 키를 코드에 적어 두면 안 돼요. 저장소에 올라가는 순간 퍼져요.
Supabase 를 쓰고 있다면 DB 가 열려 있는지 5분 안에 확인하기부터 해 보세요.
환불 요청이 오면 무엇을 누르나요
결제 버튼이 눌리는 데까지는 AI 가 금방 만들어요. 문제는 반대쪽이에요. 취소하고, 환불하고, 끝내 주는 쪽이요.
- 금액은 서버가 다시 확인해요. 브라우저가 보낸 금액은 바꿀 수 있어요. 대조하지 않으면 10만 원짜리가 1원에 결제돼요.
- 주문 상태를 나눠요. 결제 대기 · 결제 완료 · 취소 · 환불 진행 중 · 환불 완료. 고객 문의에 답할 때 이 상태를 보고 말해요.
- 환불 기한은 법에 있어요. 전자상거래법상 소비자는 원칙적으로 7일 안에 청약철회를 할 수 있어요. 사업자는 3영업일 안에 돌려줘야 해요. 디지털 콘텐츠처럼 예외가 있다면 미리 알려야 해요.
- 부분 환불 규칙을 정해요. 쿠폰을 쓴 주문에서 하나만 환불하면 얼마를 돌려줄지요.
- 이중 결제를 막아요. 버튼을 두 번 눌러도 한 건만 잡혀야 해요.
- 실패 안내를 써요. "오류가 발생했습니다" 대신 무엇을 확인하면 되는지 알려 줘요.
- 결제 내역과 환불 규정을 보이게 둬요. 해지 · 환불 버튼을 일부러 찾기 어렵게 만들면 제재 대상이 될 수 있어요.
기한과 예외는 서비스마다 달라요. 오픈 전에 법령 원문과 결제대행사 안내로 한 번 더 확인하세요.
운영자는 어디서 회원과 주문을 보나요
데이터는 데이터베이스 화면에서 보면 된다고 생각하기 쉬워요. 대표님 혼자일 때는 버틸 수 있어요. 직원이 생기면 데이터베이스 전체를 열어 줄 수 없어요.
출시 전에 최소한 이 정도는 있어야 해요.
- 회원 검색 · 탈퇴 여부 · 계정 정지 버튼
- 주문 상태별 검색 · 환불 신청 대기함
- 환불 신청 뒤 며칠 지난 건에 경고 표시
관리자가 볼 수 있는 범위도 정해요. 비밀번호는 원래 운영자도 못 봐요. 이메일처럼 문의 응대에 필요한 만큼만 보여 주세요.
기능을 고치다 손님 데이터가 지워지지 않나요
출시가 끝이 아니에요. 출시하면 수정 요청이 오고, 수정에는 데이터베이스 구조 변경이 따라와요.
해외에서 AI 에이전트가 실서버 데이터베이스를 통째로 지운 사고가 있었어요. 그 회사가 내놓은 재발 방지책 첫 번째가 개발용과 실서버용 데이터베이스를 나누는 거였어요.
- 개발 DB 와 실서버 DB 를 나눠요. 내 컴퓨터에서 한 실험이 손님 데이터에 닿지 않게요.
- 테스트 데이터는 개발 쪽에만 넣어요. 실서버 주문 목록에 "테스트" 주문이 있다면 이게 안 된 거예요.
- 구조 변경은 마이그레이션 파일로만 해요. 실서버 DB 를 직접 고치지 않아요.
- 데이터가 사라지는 변경은 천천히 해요. 입력을 먼저 막고, 칸은 몇 주 뒤에 지워요.
- 되돌리는 방법과 백업을 배포 전에 만들어요. 구조는 되돌릴 수 있어도 지운 내용은 못 돌려요.
Supabase 도 테스트용 프로젝트를 따로 두거나 브랜칭 기능으로 나눌 수 있어요. 다만 기본값은 프로젝트 하나에 데이터베이스 하나라서 사람이 챙겨야 해요. 레일즈는 처음부터 개발 · 테스트 · 실서버 데이터베이스가 나뉘어 있어요.
어디에 올리고, 매달 얼마가 나가나요
화면만 있는 사이트라면 버튼 몇 번으로 올라가요. 데이터베이스 · 파일 업로드 · 예약 발송이 붙으면 따질 게 늘어요.
- 요금이 사용량 따라 바뀌나요, 고정인가요? 서버리스 플랫폼은 시작이 쉬워요. 대신 트래픽이 늘면 청구서를 예측하기 어려워요. 제 고객사 중에는 Vercel 과 Supabase 에 매달 1천만 원 넘게 내던 곳도 있었어요.
- 서버를 빌리면 고정이에요. 헤이제임스 기준으로 DigitalOcean 서버 한 대에 월 21달러 안팎이에요. 서버 12달러 · 일일 백업 3.6달러 · 파일 저장소 5달러예요. 2026년 9월 기준이에요.
- 도메인을 연결해요. 도메인을 사서 서버 주소를 가리키게 설정해요.
Supabase 요금이 실제로 어떻게 늘어나는지는 Supabase 요금, 실제로 얼마 나올까에 있어요. 내 서버에 올리는 순서는 버셀 말고 내 서버에 올리기에 정리했어요.
에러가 나면 누가 먼저 알게 되나요
사용자가 알려 주기 전에 내가 먼저 알아야 해요. 출시 전에 세 가지만 정해 두세요.
- 에러가 나면 누구에게 알림이 가나요?
- 서버가 멈추면 어떻게 알 수 있나요?
- 방금 배포한 것을 되돌리려면 무엇을 하나요?
코드와 계정은 누구 이름인가요
바이브코딩 도구 · 호스팅 · 데이터베이스 계정이 누구 명의인지 확인해 보세요. 외주 개발자나 지인 계정으로 만들었다면 문제가 생겨요. 그 사람과 연락이 끊기면 서비스를 고칠 수 없어요.
- 코드 저장소(GitHub)는 대표님이나 회사 계정에 있나요?
- 서버 · 도메인 · 결제 카드는 회사 명의인가요?
- 외부 API 키는 회사 명의로 발급했나요?
저장소를 내 계정으로 넘겨받는 방법은 GitHub 저장소 소유권 이전에 정리했어요.
계속 고칠까요, 다시 세울까요
지금 구조에서 계속 고쳐도 되는 경우가 있어요. 코드를 읽는 개발자가 있고, 위 질문에 답이 대부분 있다면요.
이런 상태라면 다시 세우는 쪽을 권해요.
- 같은 에러를 몇 주째 AI 와 주고받고 있어요.
- 권한이 어디서 정해지는지 설명할 수 없어요.
- 위 질문의 절반 넘게 답이 없어요.
다시 세울 때는 규칙이 정해져 있고 필요한 게 내장된 풀스택 프레임워크를 권해요. 저는 루비온레일즈를 써요. 로그인 · 데이터베이스 · 파일 업로드 · 백그라운드 작업 · 배포 도구가 한 프로젝트에 들어 있어요. 권한 확인도 서버 한 곳에서 해요. AI 가 새 구조를 발명하지 않고 정해진 자리에 코드를 채워요.
그 몇 달은 버린 시간이 아니에요. 어떤 화면과 기능이 필요한지 이미 검증됐어요. 그래서 다시 세울 때 방향을 헤매지 않아요.
오늘 하나만 해 보세요. AI 에게 "이 프로젝트는 어떤 기술로 만들어져 있어?"라고 물어보세요. 그 답이 다음 판단의 출발점이에요.
4시간 세션에서는 무엇을 하나요
화면을 같이 띄워 놓고 레일즈로 다시 만들어요. 두세 달 바이브코딩한 서비스가 4시간 만에 거의 다 다시 만들어지는 경우가 많았어요. 로그인 · 결제 · 관리자 화면까지 실서버에 올라가요. 이 글의 결정 목록은 그 자리에서 대표님과 같이 정해요.
- 비용 — 4시간 한 세션에 440만 원(부가세 포함)이에요. 2026년 9월 기준이에요. 한 세션에 안 들어가는 규모면 세션을 나눠요.
- 남는 것 — 실제 서비스, 소스코드와 저작권 전부예요. 서버 · 도메인 계정도 대표님 명의로 넘겨요.
- 이어서 고치기 — 클로드 코드로 문구와 화면을 직접 고치는 방법을 알려 드려요.
세션 진행 방식은 외주 개발 맡기기 전에에 있어요. 지금 서비스가 4시간 분량인지는 셀프 견적에서 확인할 수 있어요. 바로 진행하려면 예약 신청을 남겨 주세요.
이 글은 유튜브 영상 여섯 편을 정리한 거예요.
- 바이브코딩으로 3개월 헤맨 서비스, 루비온레일즈로 4시간 만에 재구현했습니다
- AI로 만든 회원가입에 빠져 있는 5가지
- AI로 결제 기능 만들 때 정해야 할 7가지 — 진짜 문제는 환불에서 시작됩니다
- AI가 실서버 데이터를 지웠습니다 — 출시 전에 정해야 할 5가지
- 바이브코딩 앱 보안 결함, 해킹당하기 전 꼭 확인할 3가지
- 만든 앱, 어떻게 세상에 내놓지? 웹과 앱 배포
쓴 사람 — 제임스
연세대 컴퓨터과학을 전공한 23년차 개발자예요. 개발 에이전시를 운영하며 스타트업 플랫폼 350개를 만들었어요. React · Next.js · Svelte · Supabase 를 거쳐 레일즈로 정착했고, 3,000명에게 개발과 바이브코딩을 가르쳤어요.