← All guides

Claude Code로 스타트업 MVP 1주일 안에 만들기 (2026 실전 가이드)

Claude Code를 사용해 스타트업 MVP를 1주일 안에 만드는 법 — 아이디어 검증부터 Next.js 앱 배포까지, 솔로 개발자가 실제 쓰는 워크플로우와 CLAUDE.md 설정 완전 공개.

Claude Code로 스타트업 MVP 1주일 안에 만들기 (2026 실전 가이드)

Claude Code로 MVP를 만드는 핵심은 CLAUDE.md에 프로젝트 맥락을 한 번만 잘 정의하고, 기능 단위로 반복 요청하는 것이다. 솔로 개발자가 1주일 안에 실제 배포 가능한 MVP를 만들 수 있다는 건 과장이 아니다 — 단, 올바른 설정과 워크플로우를 따를 때의 이야기다. 이 가이드는 아이디어 구체화부터 Vercel 배포까지 7일 타임라인으로 정리한다.


왜 Claude Code인가? (다른 도구와의 차이)

Claude Code는 단순한 코드 자동완성이 아니다:

Cursor와 비교하면: Cursor는 파일 편집 중심, Claude Code는 프로젝트 수준의 작업 실행에 강하다.


1일차: 아이디어 → 기술 스택 결정

먼저 Claude Code에게 검증을 맡겨라

아이디어: [한 줄 설명]

다음을 분석해줘:
1. 이 아이디어의 MVP 범위 (3개 핵심 기능만)
2. Next.js + Vercel 스택으로 1주일 안에 가능한지
3. 빠른 구현을 위한 기술 스택 추천 (ORM, 인증, DB)
4. 가장 큰 기술적 리스크 1가지

권장 MVP 스택 (2026 기준)

프론트엔드: Next.js 15 App Router
스타일링: Tailwind CSS + shadcn/ui
인증: Clerk (소셜 로그인 10분 설정)
DB: Neon (Postgres Serverless) + Drizzle ORM
배포: Vercel (프리 티어 충분)
결제 (선택): Stripe 또는 Gumroad

이 스택을 선택하는 이유: 모두 Claude Code가 깊이 학습한 도구들이다. 코드 품질과 오류율이 낮다.


1일차 오후: 프로젝트 세팅

프로젝트 초기화

npx create-next-app@latest my-mvp --typescript --tailwind --app
cd my-mvp
npx shadcn@latest init

CLAUDE.md 작성 (가장 중요)

프로젝트 루트에 CLAUDE.md를 만들어라. 이게 이번 주 내내 Claude Code의 두뇌가 된다:

# [프로젝트명] — Claude Code 가이드

## 프로젝트 개요
[한 문단: 무엇을 만드는지, 타겟 사용자, 핵심 가치]

## 기술 스택
- Next.js 15 App Router
- TypeScript (strict mode)
- Tailwind + shadcn/ui
- Drizzle ORM + Neon (Postgres)
- Clerk (인증)

## 개발 명령어
```bash
bun run dev          # 개발 서버
bun run typecheck    # 타입 체크 (작업 완료 전 항상 실행)
bun run db:generate  # Drizzle 마이그레이션 생성
bun run db:migrate   # 마이그레이션 적용
bun run build        # 프로덕션 빌드 테스트

핵심 기능 (MVP 범위)

  1. [기능 1]: [한 줄 설명]
  2. [기능 2]: [한 줄 설명]
  3. [기능 3]: [한 줄 설명]

파일 구조 규칙

코딩 규칙

현재 작업 중인 기능

[매일 업데이트: 오늘 만들 기능 한 줄]


---

## 2일차: DB 스키마 + 인증

### DB 스키마 설계

Claude Code에게 요청:

우리 프로젝트의 DB 스키마를 Drizzle ORM으로 작성해줘.

핵심 엔티티:

규칙:


### 생성된 스키마 예시 (SaaS 도구 MVP)

```typescript
// lib/db/schema.ts
import { pgTable, text, timestamp, integer, boolean } from "drizzle-orm/pg-core";
import { relations } from "drizzle-orm";

export const users = pgTable("users", {
  id: text("id").primaryKey(), // Clerk userId
  email: text("email").notNull().unique(),
  name: text("name"),
  plan: text("plan").notNull().default("free"), // free | pro
  createdAt: timestamp("created_at").defaultNow().notNull(),
  updatedAt: timestamp("updated_at").defaultNow().notNull(),
});

export const projects = pgTable("projects", {
  id: text("id").primaryKey().$defaultFn(() => crypto.randomUUID()),
  userId: text("user_id").notNull().references(() => users.id, { onDelete: "cascade" }),
  name: text("name").notNull(),
  description: text("description"),
  isPublic: boolean("is_public").default(false),
  createdAt: timestamp("created_at").defaultNow().notNull(),
  updatedAt: timestamp("updated_at").defaultNow().notNull(),
});

export const usersRelations = relations(users, ({ many }) => ({
  projects: many(projects),
}));

export const projectsRelations = relations(projects, ({ one }) => ({
  user: one(users, { fields: [projects.userId], references: [users.id] }),
}));

Clerk 인증 10분 설정

npm install @clerk/nextjs
// middleware.ts
import { clerkMiddleware, createRouteMatcher } from "@clerk/nextjs/server";

const isProtectedRoute = createRouteMatcher(["/dashboard(.*)", "/api/protected(.*)"]);

export default clerkMiddleware((auth, req) => {
  if (isProtectedRoute(req)) auth().protect();
});

3-4일차: 핵심 기능 구현

기능별 개발 루프

각 기능을 이 순서로 요청:

[기능명]을 구현해줘.

사용자 스토리: "[사용자]로서 [행동]을 하고 싶다, 왜냐면 [목적]이기 때문이다"

요구사항:
- [구체적 요구사항 1]
- [구체적 요구사항 2]

만들어야 할 것:
1. DB 쿼리 함수 (lib/db/queries/[feature].ts)
2. 서버 액션 (app/actions/[feature].ts)
3. UI 컴포넌트 (components/[feature]/)
4. 페이지 연결 (app/dashboard/[feature]/page.tsx)

실제로 잘 작동하는 요청 패턴

# 나쁜 요청
"프로젝트 관리 기능 만들어줘"

# 좋은 요청
"projects 테이블에서 현재 로그인한 사용자의 프로젝트를 가져와서
/dashboard/projects 페이지에 카드 그리드로 보여줘.
각 카드에는 프로젝트 이름, 설명, 생성일, 편집 링크가 있어야 해.
빈 상태(empty state)도 처리해줘 — '첫 프로젝트를 만들어보세요' 메시지 + CTA 버튼."

오류가 나면 바로 붙여넣기

이 오류가 났어:

[에러 메시지 전체 복붙]

파일: [파일 경로]
상황: [어떤 작업 중이었는지]

Claude Code는 오류 메시지를 읽고 원인을 찾아 수정안을 제시한다. 직접 디버깅하지 마라.


5일차: UI 폴리시

shadcn/ui 컴포넌트 활용

# 필요한 컴포넌트 추가
npx shadcn@latest add button card dialog form input table toast

Claude Code에게 UI 개선 요청:

/dashboard/projects 페이지의 UI를 개선해줘:

1. 로딩 상태: Skeleton 컴포넌트로 카드 플레이스홀더
2. 오류 상태: 재시도 버튼이 있는 에러 메시지
3. 프로젝트 생성: Dialog로 인라인 폼 (페이지 이동 없이)
4. 삭제 확인: AlertDialog로 실수 방지
5. 반응형: 모바일에서 1열, 태블릿 2열, 데스크탑 3열

성능 체크리스트

Claude Code야, 현재 /dashboard/projects 페이지를 검토해줘:
- 불필요한 클라이언트 컴포넌트가 있는지
- N+1 쿼리 문제가 있는지  
- 이미지 최적화가 필요한지
- Suspense 경계를 추가해야 하는지

6일차: 테스트 + 버그 수정

종합 검토 요청

프로젝트 전체를 검토하고 배포 전 체크리스트를 만들어줘:

1. 보안: 각 API route/서버 액션의 인증 체크 여부
2. 에러 핸들링: try/catch 누락된 부분
3. 타입 안전성: any 타입 사용 여부
4. DB: 미적용 마이그레이션 여부
5. 환경변수: .env.local에만 있고 코드에 하드코딩된 키 없는지

Edge case 테스트

Claude Code에게 직접 테스트하게 할 수 없지만, 테스트 케이스 작성은 가능:

현재 프로젝트 생성 기능의 엣지 케이스를 나열하고
각각 어떻게 처리하고 있는지 코드에서 확인해줘:
- 같은 이름의 프로젝트 중복
- 빈 이름 제출
- 동시 다중 제출 (form double-submit)
- DB 오류 시 사용자 피드백

7일차: 배포

Vercel 배포 전 확인

# 로컬에서 프로덕션 빌드 테스트
bun run build

# 타입 에러 확인
bun run typecheck

# 환경변수 목록 확인
grep -r "process.env" . --include="*.ts" --include="*.tsx" | grep -v node_modules

Vercel 환경변수 설정

필수 환경변수:
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
- CLERK_SECRET_KEY
- DATABASE_URL (Neon 연결 문자열)
- NEXT_PUBLIC_APP_URL (배포 후 Vercel URL)

배포 후 즉시 확인

# 배포 완료 후 Claude Code에게 요청
"배포된 URL에서 다음을 확인해줘:
1. 로그인/로그아웃 플로우
2. 핵심 기능 3가지 smoke test
3. 모바일 뷰 레이아웃"

실제 1주일 타임라인

날짜 목표 Claude Code 사용 비율
1일차 (월) 스택 결정 + 프로젝트 세팅 + CLAUDE.md 60%
2일차 (화) DB 스키마 + 인증 + 기본 레이아웃 80%
3일차 (수) 핵심 기능 #1 + #2 구현 90%
4일차 (목) 핵심 기능 #3 + 연동 90%
5일차 (금) UI 폴리시 + 반응형 70%
6일차 (토) 버그 수정 + 엣지 케이스 80%
7일차 (일) 배포 + 도메인 연결 + 최종 확인 50%

자주 하는 실수

1. CLAUDE.md 없이 시작

CLAUDE.md 없이 시작하면 매번 프로젝트 컨텍스트를 반복 설명해야 한다. 프로젝트를 만들기 전에 CLAUDE.md부터 써라.

2. 너무 큰 기능을 한 번에 요청

❌ "대시보드 전체를 만들어줘"
✅ "대시보드의 사이드바 네비게이션만 만들어줘 — 링크 5개, 현재 경로 하이라이트, 모바일 햄버거 메뉴"

3. 생성된 코드를 검토 없이 사용

Claude Code가 생성한 코드도 반드시 검토해야 한다. 특히:

4. 빌드 없이 배포

# 항상 로컬에서 먼저
bun run build && bun run typecheck
# 통과 후에만 vercel --prod

비용 현실

1주일 MVP 개발 기준 Claude Code 비용:

ROI 계산: 시니어 프리랜서 주 1인 개발 비용 (한국 기준 약 150-300만원) → Claude Code로 90% 이상 대체 가능.


자주 묻는 질문

Q: 완전 혼자 개발하는 비개발자도 가능한가요? 기본적인 터미널 사용법, HTML/CSS 이해, 코드 읽기 능력이 있으면 가능하다. 완전 비개발자는 2주로 잡는 게 현실적이다.

Q: Next.js가 아닌 다른 프레임워크도 되나요? 가능하다. SvelteKit, Nuxt, Django, FastAPI 모두 지원한다. 단, Next.js + Vercel 조합이 Claude Code의 학습 데이터에 가장 많이 포함되어 있어 품질이 높다.

Q: MVP 이후 팀으로 확장할 때 문제가 없나요? CLAUDE.md에 코딩 규칙을 명확히 정의하고, TypeScript strict mode를 쓰면 팀 온보딩이 어렵지 않다. 처음부터 any 타입을 쓰지 않는 게 핵심이다.

Q: 얼마나 복잡한 앱까지 만들 수 있나요? 1주일 MVP는 3-5개 핵심 기능이 현실적이다. 월 $100-200 매출을 목표로 하는 마이크로 SaaS에는 충분하다. 대규모 엔터프라이즈 시스템은 아키텍처 설계를 더 신중하게 해야 한다.


관련 가이드


더 깊게 배우기

Power Prompts 300: Claude Code 생산성 패턴 — $29 — MVP 개발에 최적화된 300개 프롬프트 패턴. CLAUDE.md 템플릿, 기능별 요청 패턴, 오류 처리 공식 포함.

→ Power Prompts 300 구매 — $29

30일 환불 보장. 즉시 다운로드.

AI Disclosure: Claude Code로 작성; 모든 예제 실제 프로젝트 기반.

도구와 자료