무료 데이터베이스 및 스토리지로 구현하는 개발 환경 (2026)
요약
본 글은 비용 부담 없이 개발 환경을 구축하는 방법을 다루며, 무료 데이터베이스 및 스토리지를 활용하는 가이드를 제공합니다. Neon(서버리스 Postgres), Supabase, Turso, Cloudflare R2 등 다양한 서비스를 비교 분석하여 각 서비스의 최적 사용 용도와 무료 할당량, 그리고 주의해야 할 '절벽(Cliff)' 지점을 안내합니다.
핵심 포인트
- Neon: 서버리스 Postgres를 필요로 할 때 적합하며 scale-to-zero가 특징입니다.
- Supabase는 인증과 스토리지까지 통합적으로 제공하지만, 비활성 시 프로젝트 중단 위험이 있습니다.
- Cloudflare R2는 Egress 비용이 없어 객체 스토리지를 구현하는 데 유리합니다.
- 각 서비스의 무료 등급 할당량은 변동되므로, 사용량을 기록해두는 것이 중요합니다.
vibe 코딩 프로젝트에 무료 Postgres, Redis, 파일 스토리지를 추가하는 방법 — 시작 지점으로는 Neon을 사용하고, 그다음 Supabase, Turso, D1, R2, 그리고 무료 등급이 종료될 때까지의 과정.
무료 vibe 코딩 스택 — 파트 4 (데이터베이스 및 스토리지).
무료 vibe 코딩 스택 파트 1에서는 무료 클라우드 AI API 키를 다루었습니다. 파트 2는 강좌였고, 파트 3은 호스팅였습니다. 상태가 없는 라이브 URL은 브로슈어에 불과합니다. 파트 4는 데이터베이스와 스토리지 — 비용을 지불하지 않고도 첨부할 수 있는 Postgres, Redis, 파일들입니다.
이 장은 지속성(persistence): 연결 문자열과 무료 등급의 절벽에 관한 것입니다. 만약 Supabase를 선택하여 로그인 기능까지 함께 사용하더라도, 오늘 데이터베이스에서 멈추세요 — 이 변경 사항에서 인증(auth)을 만들지 마십시오.
시작 지점: 실제 SQL 데이터베이스가 필요하다 → Neon (서버리스 Postgres, scale-to-zero,
DATABASE_URL). 인증(Auth) + 스토리지 + 실시간 기능을 하나의 제품에서 필요하다 → Supabase (여전히 Postgres; 비활성 상태로 일주일이 지나면 무료 프로젝트가 중단됩니다). Neon 옆의 파일들 → Cloudflare R2 (egress 비용 없음). 파트 3에서 이미 Vercel을 사용하고 있다면 → Vercel Blob.
데이터베이스 지도
| 제공업체 | 가장 적합한 용도 | 무료 할당량 | 카드? | 절벽(Cliff) |
|---|---|---|---|---|
| Neon | 서버리스 Postgres | 100 프로젝트; 0.5 GB + 100 CU-h / 프로젝트 / 월 | 아니요 | 5분 후 scale-to-zero (무료 등급에서 비활성화 불가) |
| ... | ||||
| 공식 문서에서 2026년 8월 18일 확인됨. 할당량은 변동되므로, 출시 주간의 사용량을 스크린샷으로 찍어두세요. |
스토리지 / CDN 지도
스토리지 / CDN 지도
| Provider | Best for | Free quota | Card? | Cliff |
|---|---|---|---|---|
| Cloudflare R2 | Object storage next to Neon | 10 GB-month; 1M Class A; 10M Class B | No | Egress $0 from R2 |
| ... | ||||
| Cloudflare KV (테이블에 없음): Workers Free에서 1 GB 저장, 일일 100k 읽기 — D1/R2 옆의 키/값 스토리지이며 SQL 데이터베이스가 아님. *B2 청구는 10 GB 포함 후 시작. |
Cursor에서 연결하기 (Wire it from Cursor)
모든 제공업체에 대해 같은 루프를 따릅니다: 프로젝트 생성, 연결 문자열 또는 토큰 복사, .env 파일에 붙여넣기, Vercel / Cloudflare / Netlify에 같은 이름 추가 (파트 3). 절대 .env 파일을 커밋하지 마세요. 에이전트가 하나의 데이터베이스에 머물도록 하려면 다음 내용을 붙여넣으세요:
Wire this app to Neon Postgres using DATABASE_URL from .env.
Walk me through: (1) creating the Neon project if needed,
(2) putting DATABASE_URL in .env and .gitignore,
...
Neon Postgres (여기서 시작)
Neon은 서버리스 Postgres입니다: Free 플랜에서는 5분 동안 유휴 상태가 되면 컴퓨팅이 0으로 축소됩니다 (이것을 끌 수 없습니다). 유휴 프로토타입은 0 CU-시간을 누적합니다. 이 사이트는 Neon을 사용합니다. 공식 플랜: Free는 영구적이며, 카드 필요 없음 — 100개 프로젝트, 프로젝트당 10개 브랜치, 프로젝트당 월 100 CU-시간, 최대 2 CU까지 자동 확장, 프로젝트당 0.5 GB 스토리지, 월 5 GB 공개 네트워크 전송량입니다.
솔직히 말해서: 스토리지와 CU-시간에는 여전히 상한선이 있습니다. CU-시간 또는 외부 전송량이 한계에 도달하면 다음 청구 기간까지(또는 업그레이드할 때까지) 컴퓨팅이 중단됩니다. 0.5 GB에 도달하고 저장 공간을 늘리는 쓰기가 실패합니다. Free 플랜을 초과하는 경우 사용한 만큼 지불(월 최소 비용 없음) 방식입니다.
- neon.com에서 가입 → 새 프로젝트 → 풀링된
DATABASE_URL복사. - 로컬:
.env파일에DATABASE_URL=postgres://…설정. 호스트: 대시보드에 같은 이름 사용. - 선택 사항: 에이전트가 채팅창에 덤프를 붙여넣지 않고 스키마를 검사하도록 하려면 Cursor의 Neon MCP 사용.
Supabase
Supabase
Supabase는 Postgres에 Auth, Storage, Realtime, Edge Functions 기능을 추가한 서비스입니다. 무료 플랜의 경우: 활성 프로젝트 2개, 데이터베이스 500 MB, 파일 스토리지 1 GB, 이그레스(egress) 5 GB, 월간 활성 사용자 수(MAU) 5만 명을 제공합니다. 공식적으로는, 무료 프로젝트가 비활동 상태로 1주일 경과 시 일시 중지될 수 있습니다. 대시보드에서 복원할 수 있으며 데이터는 삭제되지 않습니다. Pro 플랜은 월 $25부터 시작하며 일시 중지되지 않습니다.
Supabase가 통합 기능을 실제로 필요할 때 사용하세요. Neon과 Supabase를 같은 앱에 동시에 사용하지 마세요. 오늘날에는 DATABASE_URL 또는 anon/service 키를 .env 파일에 복사하여 붙여넣고 끝내세요. 이 과정에서 로그인 정보를 임의로 만들지 마십시오.
- supabase.com/dashboard에서 새 프로젝트 생성.
- Project Settings → Database → URI 또는 JS 클라이언트를 위한 API 키 확인.
- 사이드 프로젝트가 일주일간 조용하면 일시 중지되었다는 이메일을 받을 수 있습니다.
Turso
Turso는 edge 레플리카를 갖춘 libSQL(SQLite 포크)입니다. 무료 플랜의 경우: 5 GB, 100개 데이터베이스, 월간 5억 건 읽기 및 1,000만 건 쓰기가 가능합니다. 유료 플랜은 Developer부터 (~월 $5) 시작합니다. 사람들이 놀라는 청구 항목은 바로 **읽은 행(rows read)**입니다. 인덱싱되지 않은 SELECT * 쿼리 하나로도 사용량을 크게 소모할 수 있습니다. 로컬 우선(local-first)/SQLite 형태의 앱에 적합하며, Neon 옆에 두 번째 Postgres로 사용해서는 안 됩니다.
- Turso 콘솔에서 DB를 생성하고
TURSO_DATABASE_URL과TURSO_AUTH_TOKEN을 복사합니다. @libsql/client또는 Drizzle을 통해 연결합니다. 필터링하는 컬럼에는 반드시 인덱스를 설정해야 합니다.
Cloudflare D1
D1은 Workers 위에서 동작하는 SQLite입니다. 만약 Part 3에서 Cloudflare Pages를 사용했다면, D1이 같은 계열의 데이터베이스입니다. Workers 무료 플랜: 총 5 GB 스토리지, 데이터베이스당 500 MB, 10개 데이터베이스, 일일 5백만 건 읽기 / 일일 10만 건 쓰기가 가능합니다. D1 이그레스 비용은 없습니다. 일일 할당량은 UTC 자정마다 초기화되며, 다음 날까지 소진하면 쿼리가 실패합니다 (또는 Workers 유료 플랜 사용).
- 대시보드 → Workers & Pages → D1 → 데이터베이스 생성.
wrangler.toml또는 Pages 프로젝트 설정에 바인딩(Bind)합니다. 클래식한DATABASE_URL은 없으며, 이는 Worker 바인딩 방식입니다.
MongoDB Atlas
Atlas Free (M0): 512 MB, 공유 CPU/RAM, 프로젝트당 무료 클러스터 1개 제공, ~100 ops/sec, 7일 주기 동안 입출력 각각 10 GB. Cursor가 이미 Mongoose를 생성했다면 사용하세요. Neon 옆에 “유연성을 위해” 추가하지 마세요.
- 무료 클러스터 생성 → 데이터베이스 액세스 + 네트워크 액세스 (자신의 IP 또는 데모용으로 0.0.0.0/0 설정 후 나중에 강화).
.env파일에MONGODB_URI를 추가합니다.
Upstash Redis
Upstash Free: 256 MB, 월 50만 명령어 제공, 10 GB 대역폭, 데이터베이스 1개. 이는 캐시(cache), 속도 제한(rate limits), 그리고 메시지 큐(queues)를 위한 것이며, 사용자의 테이블은 아닙니다. 예전의 “일일 1만 명령어” 같은 정보는 구식이니, 월간 명령어 한도를 사용하세요.
- Redis DB 생성 →
UPSTASH_REDIS_REST_URL과UPSTASH_REDIS_REST_TOKEN(또는 Redis URL)을 복사합니다. - 캐시 키에 TTL(Time-To-Live)을 설정하여 256 MB를 쓰레기로 채우지 않도록 합니다.
Cloudflare R2
R2는 **출구 비용(egress)**이 R2 자체에서 발생하지 않는 S3 호환 객체 스토리지입니다. Free: 월 10 GB, Class A (쓰기/목록) 1백만 건, Class B (읽기) 1천만 건. Neon을 데이터베이스로 사용하는 경우 기본 파일 선택기가 사용됩니다. 공개 버킷과 사용자 정의 도메인 또는 URL에 서명하는 Worker와 페어링하여 사용하세요.
- 대시보드 → R2 → 버킷 생성. 객체 읽기 및 쓰기 권한이 있는 API 토큰을 만듭니다.
- 환경 변수(Env):
R2_ACCOUNT_ID,R2_ACCESS_KEY_ID,R2_SECRET_ACCESS_KEY,R2_BUCKET. S3 클라이언트를https://<accountid>.r2.cloudflarestorage.com을 가리키도록 설정합니다.
Vercel Blob
Vercel Blob은 Part 3에서 Vercel에 머물게 된 경우 사용하기 쉬운 파일 스토리지입니다. Hobby 플랜에는 공유 사용량 범위 내의 Blob이 포함되어 있지만, Hobby는 추가 구매가 불가능합니다. 한도에 도달하면 창(window)이 재설정될 때까지 Blob이 일시 중지됩니다. Pro 플랜은 초과 사용량을 지불하며 (여전히 Part 3의 상업적 이용 규칙을 따릅니다). 이 사이트는 유료 다운로드 zip 파일을 위해 비공개 Blob을 사용합니다.
- Vercel 대시보드 → Storage → Blob → 스토어 생성 →
BLOB_READ_WRITE_TOKEN복사. @vercel/blob의put()/head()사용. 대시보드 탐색은 고급 작업(advanced operations)으로 계산됩니다.
Backblaze B2
B2: 처음 10 GB의 스토리지 비용은 항상 무료입니다. 이그레스(Egress)는 평균 월간 스토리지의 3배까지 무료이며, CDN 파트너(Cloudflare, bunny.net, Fastly 등)를 통해 무제한으로 사용할 수 있습니다. 기본 공개 이미지 CDN이 아닌, R2 옆에 있는 좋은 S3 호환 백업/아카이브 솔루션입니다.
- 버킷을 생성하고 해당 버킷에 접근할 수 있는 애플리케이션 키(Application Key)를 만듭니다.
- B2의 리전 URL을 사용하여 R2와 동일한 방식으로 S3 호환 엔드포인트를 사용합니다.
UploadThing
UploadThing은 “Next에 더 적합한 S3”: 서버에서 인증(auth)을 처리하고, 그들의 인프라에서 업로드를 수행합니다. 무료 플랜: 앱 전반에 걸쳐 2 GB의 스토리지 공유, 무제한 업로드/다운로드가 가능합니다. 100 GB 앱은 월 $10입니다.
- 앱을 생성하고
.env파일에UPLOADTHING_TOKEN을 넣습니다. - 파일 라우터(file router)를 정의하며, 사용자 생성 데이터 덤프용으로 2 GB 제한을 염두에 둡니다.
ImageKit
ImageKit은 영구 무료 플랜을 제공합니다: 월 20 GB 대역폭(bandwidth) 및 3 GB DAM 스토리지. 전송량이 대역폭 한도에 도달하면 서비스가 중단됩니다 (다음 달 캘린더일에 초기화됨). 초과 사용량에 따라 Lite는 월 $9입니다. 트랜스폼(변환, resize, format) 용도로 사용하며, R2가 원본을 보관하고 있다면 두 번째 오브젝트 스토어로 사용해서는 안 됩니다.
bunny.net
bunny.net은 저렴한 유료 CDN입니다: 14일 체험 후, 월 최소 $1과 유럽 및 북미 지역에서 약 $0.01/GB로 사용량 기반(pay-as-you-go) 결제 방식입니다. 무료 데이터베이스도 아니며 영구 무료 CDN도 아닙니다. Cloudflare의 무료 정적/R2 경로가 원하는 CDN이 아닐 때, 그리고 소액의 비용 지불을 감수할 수 있을 때 고려해 볼 만합니다.
또한: Cloudflare KV
Workers KV는 무료 플랜에서 1 GB 저장 가능하며, 일 10만 건 읽기(reads), **일 1,000건 쓰기(writes)**가 제공됩니다. 세션 플래그, 설정, A/B 테스트 등 관계형 데이터가 아닌 데이터를 저장하는 용도입니다. D1처럼 바인딩하여 사용하며, KV 이그레스 비용은 없습니다.
무료 vs 유료 (솔직한 절벽)
무료 티어는 취미용, 데모 및 학습용입니다. 첫 유료 단계는 보통 화려한 기능이 아니라 항상 켜져 있어야 하는 컴퓨팅(always-on compute) 또는 스토리지 용량 제한 초과인 경우가 많습니다.
- Neon — 스케일-투-제로(scale-to-zero)를 비활성화해야 하거나, 0.5 GB를 초과하거나, 더 많은 CU-시간이 필요할 때 시작합니다. 사용한 만큼 지불하며, 가짜 $25 최소 금액은 없습니다.
- Supabase — Pro 플랜($25/월)을 사용하면 7일 일시 중지 기능이 제거되고 디스크/스토리지 용량이 늘어납니다. 이것이 바로 “이 URL은 계속 살아 있어야 한다”는 비용입니다.
- D1 / R2 / KV — 일일 행 또는 요청 제한에 걸릴 때 Workers가 유료화됩니다. R2의 유료 스토리지 비용은 저렴하며, R2에서는 이그레스(egress) 비용이 $0으로 유지됩니다.
- Vercel Blob — 취미용 사용만으로는 부족하여 Pro 플랜을 사용해야 하거나, Part 3에서 Stripe/상업적 용도로 인해 이미 Pro가 강제된 경우에 필요합니다.
- Redis — 캐시 목적으로는 무료로 유지하고, 실제 데이터베이스를 설계하는 것을 피하기 위해 “Redis 업그레이드”를 하지 마십시오.
실용적인 팁
- 주요 데이터베이스는 하나만 — Neon 또는 Supabase 또는 D1. Redis는 보조적으로 사용해도 괜찮습니다. 두 개의 SQL 엔진을 사용하는 것은 데모가 망가지게 만드는 방법입니다.
- 호스트 대시보드의 환경 변수(Env vars) — 로컬과 동일한 이름을 사용합니다. URL이 GitHub에 노출될 경우 순환시키십시오(Rotate).
- 풀링된 Neon URL (Pooled Neon URL) — 서버리스 호스팅은 풀러(pooler) 없이 개별 격리 공간(isolate)마다 장기 실행되는 클라이언트가 아닌, 풀링된 연결 문자열을 원합니다.
- 할당량 이동 (Quotas move) — 출시하는 주에 사용량을 스크린샷으로 찍어두십시오.
- Supabase 일시 중지 (pause) — 조용한 한 주만 지나도 충분합니다. Neon은 유휴 상태일 때 저렴하지만, Supabase는 유휴 상태가 되면 잠들 수 있습니다.
무료 분위기 코딩 스택의 다음 단계
- 인증(Auth) — 무료 사용자 로그인 스택 (Part 5)
- 이메일 및 SMS — 카드 정보 없이도 트랜잭션 메일을 처리하는 방법
- 모니터링 — Search Console, 분석(analytics), 알림(alerts)
- 결제(Payments) — 취미용으로는 더 이상 충분하지 않을 때 체크아웃 진행
vibecoderslife.com/tools에서 실제로 사용하는 도구들을 확인해 보세요 (Neon, Vercel, GitHub, Cursor — 활성화된 경우 제휴 링크 표시).
FAQ
vibe 코딩 프로젝트에 무료 데이터베이스를 추가하는 방법은 무엇인가요?
vibe 코딩 프로젝트에 무료 데이터베이스를 추가하는 방법은 무엇인가요?
Neon 프로젝트를 생성하고, 풀링된 DATABASE_URL을 .env 파일과 호스팅 환경에 넣고, 위의 Cursor 프롬프트를 붙여넣으세요. 만약을 대비해 두 번째 SQL 데이터베이스는 추가하지 마세요.
Neon vs Supabase?
Postgres만 필요하다면 (브랜칭, scale-to-zero, 이 사이트의 스택) Neon을 사용하세요. Auth + 파일 스토리지 + Realtime 기능을 하나의 대시보드에서 원한다면 그리고 Free 플랜에서의 7일 일시 중지를 감수할 수 있다면 Supabase를 사용하세요. 둘 다 내부적으로는 Postgres를 사용합니다.
Redis가 제 앱에 무료 데이터베이스인가요?
아닙니다. Upstash Redis는 캐시/속도 제한(rate-limit)/큐입니다. 사용자 및 주문 정보는 256MB의 Redis가 아닌 Postgres (또는 SQLite/D1)에 저장해야 합니다.
R2와 Vercel Blob은 어떤가요?
R2는 S3 호환 스토리지와 제로 이그레스(zero egress)를 원할 때 적합합니다. Blob은 앱이 이미 Vercel에서 운영되고 있고 추가적인 벤더 없이 토큰 + SDK를 원하는 경우에 적합합니다. Hobby Blob으로는 추가 사용량을 구매할 수 없습니다.
신용카드가 필요한가요?
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기