바이브코딩 배포 가이드: 비개발자도 Firebase, Supabase로 앱 공개하기
바이브코딩 결과물, 이제 세상에 공개하자: 비개발자를 위한 DB 연결 & 배포 완전 가이드
[바이브코딩 흐름도: Code → Database → Deploy]
"AI로 앱 만드는 건 했는데... 그 다음은요?"
바이브코딩으로 멋진 To-Do 앱을 만들었습니다. 버튼도 예쁘고, 기능도 잘 동작해요. 그런데 새로고침하면 데이터가 사라집니다. 친구한테 보여주고 싶은데, 내 컴퓨터에서만 열립니다.
데이터베이스? 배포? 보안? 용어부터 막막하시죠?
걱정 마세요. 이 글에서는 GitHub 계정 없이, 프롬프트 몇 줄로 데이터베이스 연결과 배포까지 끝내는 방법을 알려드립니다.
바이브코딩, 왜 여기서 막히는 걸까?
바이브코딩(Vibe Coding)은 AI에게 "이런 앱 만들어줘"라고 말하면 코드를 자동으로 생성해주는 개발 방식입니다. Claude Code, Cursor, AntiGravity 같은 도구로 프롬프트만 잘 쓰면 그럴듯한 앱이 뚝딱 나옵니다.
문제는 그 다음입니다.
- 만든 앱에 데이터를 저장하고 싶다 → 데이터베이스 연결 필요
- 다른 사람도 쓸 수 있게 하고 싶다 → 배포 필요
- 하지만 서버 설정, 환경변수, CLI 명령어... 복잡해 보인다
"코드는 AI가 써주는데, 배포는 왜 아직도 복잡하지?"
2025년 MCP(Model Context Protocol) 가 등장하면서 상황이 바뀌었습니다. 이제 AI가 데이터베이스와 배포 서비스를 직접 제어할 수 있게 되었거든요.
두 가지 선택지: Firebase vs Supabase + Vercel

[바이브코딩 배포 옵션 비교 - Firebase vs Supabase+Vercel]
비개발자가 바이브코딩 결과물을 세상에 공개하는 가장 쉬운 방법은 두 가지입니다.
한눈에 비교
| 항목 | Firebase (올인원) | Supabase + Vercel |
|---|---|---|
| 데이터베이스 타입 | NoSQL (문서형) | SQL (PostgreSQL) |
| SQL 지식 필요? | 필요 없음 | 기초 필요 |
| 무료 저장 용량 | 1GB | 500MB |
| 비활성 제한 | 없음 | 7일 미사용 시 일시정지 |
| Google 로그인 연동 | 매우 쉬움 | 가능하지만 설정 필요 |
| 장기 확장성 | 벤더 종속 있음 | 오픈소스, 이전 용이 |
| MCP 지원 | Firebase MCP | Supabase MCP |
어떤 걸 선택해야 할까?
Firebase를 선택하세요:
- 무료로 써보고 싶다
- SQL이 뭔지 모르겠다
- 일단 빨리 만들어보고 싶다
- 가끔 쓰는 사이드 프로젝트다 (비활성 제한 없음)
- Google 로그인을 쉽게 붙이고 싶다
Supabase + Vercel을 선택하세요:
- 나중에 본격 서비스로 키울 수도 있다
- 데이터 이전 가능성을 열어두고 싶다
저의 추천: 비개발자라면 Firebase로 시작하세요. 비활성 제한 없이 무료로 쓸 수 있고, 설정이 가장 간단합니다.
MCP란? AI가 직접 DB와 배포를 다루는 마법

[MCP(Model Context Protocol)로 AI가 Firebase와 Supabase를 직접 제어하는 개념도]
MCP(Model Context Protocol) 는 AI가 외부 서비스를 직접 제어할 수 있게 해주는 표준입니다.
쉽게 말하면, 예전에는 이랬습니다:
나: "Firebase에 배포해줘"
AI: "firebase deploy 명령어를 터미널에 입력하세요" (방법만 알려줌)
나: (직접 타이핑, 오류 발생, 구글링...)
MCP가 있으면 이렇게 됩니다:
나: "Firebase MCP로 배포해줘"
AI: (직접 Firebase에 접속해서 배포 진행)
AI: "배포 완료! https://my-app.web.app 에서 확인하세요"
Claude Code, AntiGravity, Cursor 모두 MCP를 지원합니다. 한 번 설정해두면 프롬프트 한 줄로 DB 연결과 배포가 가능해집니다.
[튜토리얼 A] Firebase로 한 번에 끝내기
Firebase는 Google이 제공하는 올인원 백엔드 서비스입니다. 데이터베이스, 사용자 인증, 배포(호스팅)까지 한 곳에서 해결됩니다.
Step 1: Firebase 프로젝트 생성

[Firebase 홈페이지]
Firebase 홈페이지에서 시작하기를 클릭하세요
- firebase.google.com 접속
- Google 계정으로 로그인
- "프로젝트 만들기" 클릭
- 프로젝트 이름 입력 (예:
my-first-app) - Google Analytics는 비활성화해도 됩니다 (간단하게 시작하려면)
- "프로젝트 만들기" 완료
Step 2: Realtime Database 활성화
- 왼쪽 메뉴에서 빌드 → Realtime Database 클릭
- "데이터베이스 만들기" 클릭
- 위치는 기본값 유지
- "테스트 모드에서 시작" 선택 (30일 후 보안 규칙 설정 필요)
- 완료!
이제 데이터베이스가 준비되었습니다.
Step 3: 코딩 에이전트에서 Firebase MCP 설치
AntiGravity를 사용한다면:
- 상단 메뉴에서 Additional Options → MCP Server 클릭
- 검색창에 "Firebase" 입력
- "Firebase MCP" 설치
- 설치 완료!
Claude Code를 사용한다면:
claude mcp add firebase -- npx -y firebase-mcp
Step 4: 프롬프트 한 줄로 연결 & 배포
이제 마법의 프롬프트를 입력합니다:
Firebase MCP를 사용해서 이 앱에 Realtime Database를 연결하고 배포해줘
AI가 자동으로 진행합니다:
- Firebase 로그인 링크 제공 → 브라우저에서 로그인
- 인증 코드가 나오면 → 복사해서 붙여넣기
- 프로젝트 목록이 나오면 → 방금 만든 프로젝트 선택
- 배포 진행 → 완료!
실제 프롬프트 예시 모음
데이터베이스 연결:
Firebase Realtime Database에 연결해서 메모 데이터가 저장되게 해줘
회원가입/로그인 추가:
Firebase Authentication을 이용해서 이메일/비밀번호 로그인 기능 만들어줘
배포:
Firebase Hosting으로 이 앱 배포해줘
오류 발생 시:
[오류 메시지 붙여넣기]
이 오류가 왜 발생하는지 알려주고 해결해줘
완료 후 확인
배포가 완료되면 이런 URL을 받게 됩니다:
https://my-first-app-12345.web.app
이 링크를 친구에게 공유하면, 누구나 여러분의 앱을 사용할 수 있습니다!
[튜토리얼 B] Supabase + Vercel로 확장 가능하게
Supabase는 Firebase의 오픈소스 대안입니다. PostgreSQL 기반이라 SQL 표준을 따르고, 나중에 다른 서비스로 이전하기 쉽습니다.
Step 1: Supabase 프로젝트 생성

[Supabase 홈페이지]
Supabase 홈페이지에서 시작하기를 클릭하세요
- supabase.com 접속
- "Start your project" 클릭
- GitHub 또는 이메일로 가입 (GitHub 없어도 이메일로 가능)
- "New Project" 클릭
- 프로젝트 이름과 데이터베이스 비밀번호 입력
- Region은 Northeast Asia (Seoul) 선택 (가장 가까움)
- "Create new project" 클릭
Step 2: 테이블 만들기 (시각적 에디터)
Supabase의 장점은 SQL을 몰라도 테이블을 만들 수 있다는 것입니다.
- 왼쪽 메뉴에서 Table Editor 클릭
- "New Table" 클릭
- 테이블 이름 입력 (예:
todos) - 컬럼 추가:
id(자동 생성됨)title- text 타입completed- bool 타입created_at- timestamptz 타입 (기본값: now())
- "Save" 클릭
Step 3: API 키 확인
- 왼쪽 메뉴에서 Project Settings → API 클릭
- 두 가지 정보를 메모장에 복사:
- Project URL:
https://xxxxxxxx.supabase.co - anon public key:
eyJhbGci...(매우 긴 문자열)
- Project URL:
Step 4: 앱에 Supabase 연결하기
AI 코딩 도구에서 다음 프롬프트를 입력합니다:
Supabase를 연결해줘.
URL: https://xxxxxxxx.supabase.co
anon key: eyJhbGci...
todos 테이블에서 데이터를 읽고 쓸 수 있게 해줘
AI가 자동으로:
- Supabase 패키지 설치
- 연결 코드 작성
- 데이터 읽기/쓰기 기능 구현
Step 5: Vercel로 배포하기 (GitHub 없이)

[Vercel 홈페이지]
Vercel은 무료로 웹앱을 배포할 수 있는 플랫폼입니다
Vercel은 Next.js를 만든 회사의 배포 플랫폼입니다. GitHub 없이도 배포할 수 있습니다.
방법 1: Vercel CLI 사용
Vercel CLI로 이 앱을 배포해줘
AI가 안내하는 대로:
- Vercel 로그인 (이메일 또는 GitHub)
- 프로젝트 설정 (기본값 사용)
- 환경 변수 입력:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY
- 배포 완료!
방법 2: 폴더 직접 업로드
- vercel.com 접속 및 가입
- "Add New → Project" 클릭
- "Import from your computer" 옵션 찾기 (CLI 설치 안내가 나오면
npx vercel사용) - 프로젝트 폴더 선택
- 환경 변수 입력
- Deploy 클릭
실제 프롬프트 예시 모음
테이블에서 데이터 읽기:
Supabase의 todos 테이블에서 모든 할 일 목록을 가져와서 화면에 보여줘
데이터 추가:
새로운 할 일을 입력하면 Supabase todos 테이블에 저장되게 해줘
완료 상태 토글:
할 일을 클릭하면 completed 값이 true/false로 토글되게 해줘
배포 시 환경 변수 오류:
Vercel에 환경 변수를 추가해야 해.
NEXT_PUBLIC_SUPABASE_URL과 NEXT_PUBLIC_SUPABASE_ANON_KEY를 설정하는 방법 알려줘
반드시 알아야 할 보안 3가지
바이브코딩으로 앱을 만들 때 꼭 알아야 할 보안 수칙이 있습니다.
1. 환경 변수: 열쇠를 금고에 보관하기
API 키는 집 열쇠와 같습니다. 코드에 직접 적어두면 누구나 복사할 수 있어요.
잘못된 방법:
// 절대 이렇게 하지 마세요!
const apiKey = "sk-1234567890abcdef"
올바른 방법:
// 환경 변수에서 가져오기
const apiKey = process.env.API_KEY
환경 변수는 .env 파일에 저장합니다:
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGci...
프롬프트 예시:
API 키를 환경 변수로 분리해줘. .env.local 파일을 만들고 거기에 저장해
2. .gitignore: 민감한 파일 보호하기
.env 파일이 인터넷에 올라가면 큰일납니다. .gitignore 파일에 추가해서 보호하세요.
# .gitignore에 이 내용이 있는지 확인
.env
.env.local
.env*.local
프롬프트 예시:
.gitignore에 .env 파일이 포함되어 있는지 확인하고, 없으면 추가해줘
3. 개발/프로덕션 환경 분리
2025년 7월, 어떤 개발자가 바이브코딩 중 AI가 전체 데이터베이스를 삭제하는 사고가 있었습니다. 원인은 개발 환경과 프로덕션 환경을 분리하지 않았기 때문이었어요.
반드시 지켜야 할 것:
- 개발용 프로젝트와 실제 서비스용 프로젝트를 분리
- AI에게 프로덕션 DB 직접 접근 권한 주지 않기
- 중요한 작업 전 백업
프롬프트 예시:
이 프로젝트를 개발용과 프로덕션용으로 분리하고 싶어. 어떻게 설정하면 될까?
마치며
이제 정리해볼까요?
- 바이브코딩 + MCP = 프롬프트 한 줄로 DB 연결과 배포 가능
- 비개발자는 Firebase로 시작 추천 (비활성 제한 없음, 설정 간단)
- 장기 프로젝트라면 Supabase + Vercel 고려 (확장성, 이전 용이)
- 보안 3가지: 환경 변수, .gitignore, 환경 분리 꼭 지키기
지금 바로 해보세요
- Firebase 콘솔에서 프로젝트 하나 만들기
- AntiGravity나 Claude Code에서 Firebase MCP 설치
- "Firebase MCP로 이 앱 배포해줘" 입력
"코드 다음 단계"는 더 이상 장벽이 아닙니다.
여러분이 만든 앱, 이제 세상에 공개할 차례예요.
이 글이 도움이 되셨다면, 실제로 배포에 성공한 경험을 댓글로 공유해주세요!
부록: 자주 쓰는 프롬프트 모음
Firebase
| 작업 | 프롬프트 |
|---|---|
| DB 연결 | Firebase Realtime Database 연결해서 데이터 저장되게 해줘 |
| 로그인 추가 | Firebase Authentication으로 이메일 로그인 만들어줘 |
| Google 로그인 | Firebase로 Google 소셜 로그인 추가해줘 |
| 배포 | Firebase Hosting으로 배포해줘 |
| 오류 해결 | [오류 메시지] 이게 왜 발생하는지 알려주고 해결해줘 |
Supabase + Vercel
| 작업 | 프롬프트 |
|---|---|
| 연결 | Supabase 연결해줘. URL: [URL], Key: [KEY] |
| 테이블 읽기 | [테이블명]에서 모든 데이터 가져와서 보여줘 |
| 데이터 추가 | 폼 제출하면 [테이블명]에 저장되게 해줘 |
| 배포 | Vercel CLI로 배포해줘 |
| 환경 변수 | Vercel에 환경 변수 설정하는 방법 알려줘 |
부록: 비개발자를 위한 개발 용어 가이드
처음 접하면 어려운 개발 용어들, 쉬운 비유로 정리했습니다.
기본 개념
| 용어 | 쉬운 설명 | 비유 |
|---|---|---|
| 프론트엔드 (Frontend) | 사용자가 보고 클릭하는 화면 부분 | 식당의 홀 (손님이 보는 곳) |
| 백엔드 (Backend) | 데이터 처리, 저장 등 보이지 않는 부분 | 식당의 주방 (손님이 안 보는 곳) |
| 데이터베이스 (Database) | 데이터를 저장하는 창고 | 엑셀 파일이 모여있는 폴더 |
| 서버 (Server) | 앱을 실행하고 데이터를 주고받는 컴퓨터 | 24시간 켜져 있는 컴퓨터 |
| API | 프로그램끼리 대화하는 방법 | 식당 웨이터 (주문을 주방에 전달) |
데이터베이스 관련
| 용어 | 쉬운 설명 | 비유 |
|---|---|---|
| 테이블 (Table) | 데이터를 담는 표 | 엑셀 시트 하나 |
| 컬럼 (Column) | 테이블의 열 (항목 이름) | 엑셀의 열 (이름, 나이, 이메일 등) |
| 로우/레코드 (Row/Record) | 테이블의 행 (실제 데이터) | 엑셀의 행 (홍길동, 30, hong@...) |
| 스키마 (Schema) | 데이터 구조를 정의한 설계도 | 엑셀 템플릿 (어떤 열이 있어야 하는지) |
| 쿼리 (Query) | 데이터베이스에 요청하는 질문 | "30대 회원 목록 보여줘" |
| SQL | 데이터베이스와 대화하는 언어 | 데이터베이스용 명령어 |
| NoSQL | SQL이 아닌 방식의 데이터베이스 | JSON 형태로 저장하는 방식 |
배포 관련
| 용어 | 쉬운 설명 | 비유 |
|---|---|---|
| 배포 (Deploy) | 앱을 인터넷에 올려서 누구나 접근 가능하게 만드는 것 | 가게 오픈 |
| 호스팅 (Hosting) | 앱을 올려두는 서버 공간 | 가게 임대 공간 |
| 도메인 (Domain) | 웹사이트 주소 (예: google.com) | 가게 간판/주소 |
| 빌드 (Build) | 코드를 실행 가능한 형태로 변환 | 레시피를 실제 요리로 만들기 |
| 로컬 (Local) | 내 컴퓨터에서만 실행 | 집에서 혼자 요리해 먹기 |
| 프로덕션 (Production) | 실제 서비스되는 환경 | 실제 영업 중인 가게 |
인증/보안 관련
| 용어 | 쉬운 설명 | 비유 |
|---|---|---|
| 인증 (Authentication) | "당신이 누구인지" 확인 | 신분증 검사 |
| API 키 (API Key) | 서비스 이용 권한을 증명하는 비밀 열쇠 | 출입증, 열쇠 |
| 환경 변수 (Environment Variable) | 비밀 정보를 코드 외부에 저장하는 방법 | 금고에 열쇠 보관 |
| .env 파일 | 환경 변수를 저장하는 파일 | 비밀번호 메모장 (절대 공개 금지) |
| .gitignore | 공유하지 않을 파일 목록 | "이건 올리지 마" 리스트 |
개발 도구 관련
| 용어 | 쉬운 설명 | 비유 |
|---|---|---|
| CLI | 글자로 명령을 입력하는 방식 | 터미널, 검은 화면에 타이핑 |
| GUI | 마우스로 클릭하는 방식 | 일반적인 윈도우 프로그램 |
| 패키지 (Package) | 다른 사람이 만든 코드 묶음 | 레고 블록 (가져다 조립) |
| npm | JavaScript 패키지 관리자 | 레고 블록 가게 |
| MCP | AI가 외부 서비스를 제어하는 표준 | AI용 리모컨 |
| SDK | 특정 서비스를 쉽게 쓰게 해주는 도구 모음 | 설명서 + 도구 세트 |