"매 좋은 frontend 는 매 framework choice 가 아니라 매 trade-off 의 매 명시적 분석에서 나온다.". Performance / DX / accessibility / bundle size / SEO 의 매 weight 가 매 product context 에 따라 매 다르다. Judgment 는 매 가르칠 수 있는 skill — checklist + heuristic.
매 핵심
매 Trade-off 축
Performance vs DX: SSR + island vs CSR SPA.
Bundle vs Feature: tree-shake-able lib vs all-in-one.
Type safety vs Velocity: strict TS vs JS prototyping.
A11y vs Custom: native element vs custom component.
Cache vs Freshness: SWR vs no-store.
매 Heuristic
Native first: 매 platform primitive 가 매 free win.
Measure before optimize: 매 Lighthouse / RUM 먼저.
Latency budget: 매 LCP < 2.5s, INP < 200ms, CLS < 0.1 (Core Web Vitals 2026).
Bundle budget: 매 route 당 매 100KB gzip.
Dependency cost: 매 add 마다 매 maintenance + bundle + supply chain risk.
매 Decision framework
Reversible vs One-way door: framework choice = one-way. 매 careful.
Time horizon: 매 6 개월 vs 매 5 년 — 매 다른 답.
Team skill: 매 unfamiliar tech 의 매 hidden cost.
매 응용
SSR vs CSR — 매 SEO / TTI / DX matrix.
State manager 선택 — 매 server vs client state 분리.
CSS strategy — 매 atomic / module / runtime.
💻 패턴
Decision matrix template (Markdown)
| 기준 | Option A | Option B | Weight |
|---|---|---|---|
| Bundle size | 12KB | 45KB | 0.3 |
| DX | High | Medium | 0.2 |
| Maintenance | Active | Stale | 0.3 |
| TS support | Native | Patchy | 0.2 |
| **Score** | 0.84 | 0.51 | — |
Bundle budget enforcement (CI)
// vite.config.ts
exportdefault{build:{rollupOptions:{output:{manualChunks:{vendor:['react','react-dom']}},},chunkSizeWarningLimit:100,// KB
},};// Then: bundlesize / size-limit in CI
- [ ] Can we roll back in 1 day? (file flag, env var)
- [ ] Can we roll back in 1 week? (revert PR)
- [ ] One-way door? (DB schema, public API) — 매 RFC 필수
매 결정 기준
상황
Approach
매 SEO 우선
SSR / SSG (Next.js, Astro, SvelteKit)
매 dashboard (auth-only)
CSR SPA (Vite + React)
매 content site
Astro / 11ty (zero JS default)
매 realtime collaborative
CSR + WebSocket / CRDT
매 mobile app
RN / Expo (Hermes)
매 desktop app
Tauri (Rust) > Electron
기본값: 매 measure → matrix → smallest reversible step.