Files
2nd/10_Wiki/Topics/Domain_Programming/Architecture/프로토타이핑 및 개념 증명(PoC).md
T
Antigravity Agent c24165b8bc refactor(topics): 멀티 에이전트용 지식 재편 — _Common(공통 기본기) + Domain_* 구조
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게
[공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류.
문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인).

- Topic_Programming → Domain_Programming (내부 구조 보존)
- Topic_Graphic → Domain_Design
- Topic_Business → Domain_Product
- Topic_General → Domain_General
- _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning),
  Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing)
- 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서)
- 빈 폴더 정리 (memory/procedures)
- 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 11:05:56 +09:00

7.3 KiB
Raw Blame History


id: wiki-2026-0508-프로토타이핑-및-개념-증명-poc title: 프로토타이핑 및 개념 증명(PoC) category: 10_Wiki/Topics status: verified canonical_id: self aliases: [PoC, Proof of Concept, Prototype, Spike] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [process, prototyping, poc, architecture, methodology] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: - framework: -

프로토타이핑 및 개념 증명(PoC)

매 한 줄

"매 production 이전에 매 risk-laden hypothesis 를 매 cheapest 형태로 검증하는 throwaway 작업.". 매 prototype = 매 UX / 형태 검증, 매 PoC = 매 기술적 feasibility 검증. 매 둘 다 매 disposable — 매 production code 로 graduating 매 매 흔한 antipattern. 2026 modern stack 에서 매 LLM (Claude Opus 4.7 코드 생성) + 매 v0 / Bolt / Cursor 가 매 prototype turnaround 를 매 hours → minutes 로 단축.

매 핵심

매 용어 구분

  • Sketch / Wireframe: 매 visual idea, 매 non-functional. Figma, paper.
  • Prototype: 매 interactive UX, 매 hardcoded data. Figma prototype, v0.
  • PoC (Proof of Concept): 매 핵심 technical risk 한 점 만 검증. CLI script, jupyter notebook.
  • Spike (Agile): 매 timeboxed exploration. 매 13 days.
  • MVP (Minimum Viable Product): 매 production-grade. 매 PoC 의 X.

매 PoC 의 가치

  • De-risk: 매 architecture 결정 전 매 unknown 제거.
  • Cost compression: 매 wrong path 의 매 cheap pivot.
  • Stakeholder alignment: 매 demo > spec.
  • Estimation: 매 effort estimate 의 grounding.

매 흔한 실패 모드

  1. PoC → production graduation: 매 hardcoded auth, 매 single-tenant assumption 이 매 그대로 prod.
  2. Scope creep: 매 PoC 가 매 mini-MVP 로 비대.
  3. No success criteria: 매 언제 끝났는지 의 unclear.
  4. Confusion of UX vs tech: 매 prototype + PoC 를 매 동일 산출물에.

매 응용

  1. New ML model 의 latency / accuracy 검증.
  2. Third-party API 의 rate limit / behavior 탐색.
  3. Architecture migration (REST → gRPC) 의 risk 측정.
  4. UX hypothesis 의 user testing.

💻 패턴

Pattern 1 — PoC scope contract (markdown template)

# PoC: <Title>

## Hypothesis
"매 <X> 가 매 <constraint> 안에서 매 가능하다."

## Success criteria (매 binary, 매 measurable)
- [ ] 매 latency p95 < 200ms
- [ ] 매 accuracy >= 0.85
- [ ] 매 cost per request < $0.01

## Out of scope
- 매 auth, 매 multi-tenancy, 매 retry, 매 observability.

## Timebox
- 매 3 days. 매 day 4 의 결정 (proceed / pivot / stop).

## Disposal
- 매 결과 wiki page 로 정리, 매 code 는 매 archive branch 로.

Pattern 2 — Notebook PoC (LLM model eval)

# poc_llm_eval.ipynb
import asyncio, time
from anthropic import AsyncAnthropic

client = AsyncAnthropic()
PROMPTS = open('eval_set.txt').read().splitlines()  # 매 50 prompts.

async def run_one(p):
    t = time.perf_counter()
    msg = await client.messages.create(
        model='claude-opus-4-7',
        max_tokens=1024,
        messages=[{'role': 'user', 'content': p}],
    )
    return time.perf_counter() - t, msg.content[0].text

results = await asyncio.gather(*(run_one(p) for p in PROMPTS))
latencies = [r[0] for r in results]
print(f'p50={sorted(latencies)[25]:.2f}s, p95={sorted(latencies)[47]:.2f}s')
# 매 single notebook → success criteria 즉시 평가.

Pattern 3 — v0 / Bolt prototype (UX validation)

// 매 v0.dev prompt:
// "Build a Linear-style task board with drag-and-drop columns,
//  using shadcn/ui, Next.js 15 App Router, TailwindCSS."
//
// 매 30초 → 매 working demo URL.
// 매 stakeholder 에 매 link 공유 → 매 feedback 1 hour 안 수집.

Pattern 4 — Cursor + Opus 4.7 spike

# 매 1 day spike — gRPC migration feasibility.
$ cursor agent
> Take src/api/rest/*, generate equivalent gRPC service definitions
  in proto/, and a thin BFF layer that translates REST → gRPC.
  Don't touch tests. Generate a benchmark script comparing p95 latency
  on 1000 sequential requests.

Pattern 5 — Disposable infra (PoC sandbox)

# 매 PoC env — 매 1-day TTL 의 매 ephemeral cluster.
$ neon branches create --name poc-grpc --parent main --ttl 24h
$ vercel deploy --prebuilt --target preview
$ render blueprint apply poc.yaml --env ephemeral
# 매 끝나면 매 자동 destroy — 매 cost / sprawl 방지.

Pattern 6 — Spike commit hygiene

$ git checkout -b spike/grpc-feasibility
$ # 매 hack 자유 — 매 lint, test 의 X.
$ git commit -am 'spike: hardcoded auth, no error handling'
$ git push origin spike/grpc-feasibility
# 매 PR 의 X — 매 결과만 wiki / RFC 로 추출.
$ git branch -D spike/grpc-feasibility  # 매 disposal.

Pattern 7 — Decision record (post-PoC)

# ADR-042: gRPC migration

## Status
Accepted, 2026-05-10.

## Context
PoC (spike/grpc-feasibility) — 매 3 days.

## Result
- 매 p95 latency: REST 180ms → gRPC 45ms.
- 매 client SDK regen 의 매 30 min CI.
- 매 browser 의 grpc-web bridge 필요 (Connect-Web 채택).

## Decision
- 매 internal service-to-service 는 매 gRPC.
- 매 browser-facing 은 매 Connect (gRPC-compatible).
- 매 migration order: 매 order-svc → 매 inventory-svc → 매 user-svc.

## Consequences
- 매 +1 dev week / service migration.
- 매 OTel gRPC instrumentation 추가 필요.

Pattern 8 — Anti-graduation guard

# .github/workflows/no-spike-to-main.yml
name: Block spike merges
on: pull_request
jobs:
  guard:
    runs-on: ubuntu-latest
    steps:
      - run: |
          if [[ "${{ github.head_ref }}" == spike/* || "${{ github.head_ref }}" == poc/* ]]; then
            echo "::error::spike/poc branches must not be merged. Extract findings to ADR/wiki."
            exit 1
          fi

매 결정 기준

상황 Tool
매 UX hypothesis Figma + v0 prototype
매 API / model behavior Notebook PoC
매 architecture decision Spike + ADR
매 stakeholder demo v0 / Bolt
매 production migration MVP, 매 not PoC

기본값: 매 PoC 는 매 timeboxed (13 days), 매 success criteria binary, 매 disposable, 매 finding → ADR. 매 graduation 금지.

🔗 Graph

🤖 LLM 활용

언제: 매 hypothesis 정의, 매 PoC 코드 작성 (Cursor / Claude Code), 매 결과 ADR 정리. 언제 X: 매 PoC 코드를 매 production 으로 의 graduation. 매 success criteria 의 LLM-fabricated metric (실제 측정 X).

안티패턴

  • Graduation: 매 PoC code 가 매 main 에 — 매 hardcoded debt.
  • Open-ended PoC: 매 timebox X — 매 weeks drift.
  • No criteria: 매 "잘 되면 좋겠다" — 매 stop condition 없음.
  • Demo-driven: 매 PoC 가 매 polished demo 로 — 매 effort 낭비.
  • 재활용 환상: 매 "그래도 일부 reusable" — 매 거의 항상 매 false economy.

🧪 검증 / 중복

  • Verified (Lean Startup, Pragmatic Programmer, Google SRE workbook chapter "Spike").
  • 신뢰도 A.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — PoC vs Prototype + 8 process patterns