---
id: wiki-2026-0508-minimal-viable-product
title: Minimal Viable Product
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [MVP, Minimum Viable Product]
duplicate_of: none
source_trust_level: A
confidence_score: 0.95
verification_status: applied
tags: [product, lean-startup, validation]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: conceptual
  framework: lean-startup
---

# Minimal Viable Product (MVP)

## 매 한 줄
> **"매 학습 단위로서의 가장 작은 product"**. 매 Eric Ries (2011) 가 정의한 MVP 는 매 customer hypothesis 를 매 minimum effort 로 validate 하는 product version. 매 2026 의 MVP 는 매 AI-augmented prototyping (Claude Opus, Replit Agent) 으로 매 days-not-weeks scale.

## 매 핵심

### 매 MVP 의 진짜 의미
- **Minimum**: 매 build effort 의 minimization (X feature count).
- **Viable**: 매 real user 의 real job 을 매 end-to-end 수행 가능.
- **Product**: 매 learning vehicle — 매 metric capture 가능해야.

### 매 MVP 의 X
- 매 buggy half-product (X — viable 아님).
- 매 feature-complete v1 (X — minimum 아님).
- 매 internal demo (X — product 아님, no users).

### 매 응용
1. **Concierge MVP**: 매 manual backend, 매 user 는 magic UX 로 인식.
2. **Wizard-of-Oz**: 매 fake automation, 매 human-in-loop.
3. **Landing page**: 매 product X, 매 demand signal capture only.
4. **Single-feature**: 매 one core job, 매 polished.

## 💻 패턴

### Hypothesis canvas
```yaml
mvp:
  hypothesis: "User X will pay $Y for solving Z"
  riskiest_assumption: "User X actually has problem Z"
  minimum_test:
    type: landing_page
    success_metric: "100 sign-ups in 7 days"
    kill_metric: "<10 sign-ups → pivot"
```

### Concierge MVP scaffold
```python
# Fake the backend, learn from real users
from fastapi import FastAPI

app = FastAPI()

@app.post("/recommend")
async def recommend(user_query: str):
    # MVP: send query to founder's phone
    await sms_to_founder(user_query)
    # Founder manually crafts recommendation
    response = await wait_for_founder_reply()
    return {"recommendation": response}
```

### Build-Measure-Learn loop
```python
class MVPCycle:
    def __init__(self, hypothesis):
        self.hypothesis = hypothesis
    def build(self):  # smallest experiment
        return prototype(self.hypothesis)
    def measure(self, prototype, n_users=20):
        return collect_metrics(prototype, n_users)
    def learn(self, metrics):
        if metrics["activation"] > 0.4:
            return "persevere"
        return "pivot"
```

### AI-augmented MVP (2026)
```bash
# Claude Code + Replit Agent stack
claude-code "build MVP for <hypothesis>" --scaffold next.js
# Days-not-weeks: AI generates 80% boilerplate
```

### Kill criteria gate
```python
def should_kill(metrics: dict, kill_threshold: dict) -> bool:
    """매 honest evaluation — sunk cost ignore."""
    return all(
        metrics[k] < kill_threshold[k]
        for k in kill_threshold
    )
```

## 매 결정 기준
| 상황 | MVP type |
|---|---|
| 매 demand 의 unknown | Landing page |
| 매 UX 의 unknown, backend 매 hard | Concierge / Wizard-of-Oz |
| 매 demand 매 confirmed, 매 build feasible | Single-feature MVP |
| 매 enterprise B2B | Design partner pilot (X cold MVP) |

**기본값**: Landing page → Concierge → Single-feature 의 progression.

## 🔗 Graph
- 부모: [[Lean-Startup]]

## 🤖 LLM 활용
**언제**: 매 hypothesis articulation, 매 riskiest assumption 의 surfacing, 매 MVP scaffold generation.
**언제 X**: 매 already-validated product 의 v2 — MVP framing 의 X.

## ❌ 안티패턴
- **Feature creep MVP**: 매 minimum 무시 → 매 8주 build, 매 launch 실패.
- **Vanity metrics**: 매 page views / signups 만 측정 → activation / retention X.
- **No kill criteria**: 매 sunk cost trap.
- **MVP = bad quality**: 매 minimum 은 scope, X quality.

## 🧪 검증 / 중복
- Verified (Ries 2011 *The Lean Startup*; Blank *Four Steps to the Epiphany*).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — MVP types, build-measure-learn, AI-augmented 2026 stack |
