LEVEL 57 QUEST
SaaS 배포와 도메인 세팅
SaaS 배포와 도메인 세팅 — DevFoil 바이브코딩 Stage 12, Lv.57
프로덕션 배포 준비
개발 환경과 프로덕션 환경의 차이
[개발 환경 (localhost)]
- 에러 상세 메시지 노출
- 핫 리로딩 (코드 수정 즉시 반영)
- 테스트 API 키 사용
- DB: 로컬 또는 개발용 Supabase
[프로덕션 환경 (vercel.app / 커스텀 도메인)]
- 에러 메시지 숨김 (사용자 친화적 에러 페이지)
- 코드 최적화 (minify, tree-shaking)
- 실제 API 키 사용 (Stripe 라이브 키 등)
- DB: 프로덕션 Supabase 프로젝트
[환경 분리 방법]
.env.local → 로컬 개발용
.env.production → 프로덕션용 (Vercel 대시보드에서 설정)
데이터베이스 마이그레이션
Supabase DB 스키마 관리
// Prisma를 사용한 DB 스키마 관리
// prisma/schema.prisma
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id String @id @default(cuid())
email String @unique
name String?
image String?
plan String @default("free") // free, pro, enterprise
stripeCustomerId String? @unique
subscriptionId String?
subscriptionStatus String? // active, canceled, past_due
createdAt DateTime @default(now())
invoices Invoice[]
}
model Invoice {
id String @id @default(cuid())
userId String
user User @relation(fields: [userId], references: [id])
title String
amount Int
status String @default("draft") // draft, sent, paid
pdfUrl String?
createdAt DateTime @default(now())
}
마이그레이션 실행
# Prisma 마이그레이션 명령어
# 개발 환경: 스키마 변경 → 마이그레이션 파일 생성 → 적용
npx prisma migrate dev --name init
# 프로덕션 환경: 마이그레이션 적용만
npx prisma migrate deploy
# DB 스키마 확인
npx prisma studio
# → 브라우저에서 DB 데이터를 직접 확인/수정 가능
# Supabase 프로덕션 DB에 마이그레이션 적용
DATABASE_URL="postgresql://user:pass@host:5432/db" \
npx prisma migrate deploy
DB 마이그레이션 안전 규칙
절대 프로덕션 DB를 직접 수정하지 마세요.
항상 마이그레이션 파일을 통해 변경하세요.
컬럼 삭제 시에는 데이터 백업 후 진행하세요.
🔒
여기까지는 미리보기입니다
SaaS 배포와 도메인 세팅
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.
Google로 3초 만에 시작 →🧵 Threads로 시작무료 공개 강의 둘러보기 (Lv.1~3)무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.