"매 mostly-static HTML 의 sea 의 isolated interactive 'island' 의 selective hydration 의 통한 ship-less-JS". 매 Katie Sylor-Miller (2019) 의 term, Jason Miller (2020) 의 popularization, 매 Astro (2021) / Fresh (Deno) / Marko / Qwik 의 implementation — 매 SPA-everything 의 over-hydration 의 backlash.
매 핵심
매 핵심 idea
Server 의 HTML 의 render (default).
매 interactive component (island) 의 isolated hydration boundary.
매 island 의 own JS bundle, 매 nothing else 의 ship.
매 island 간 의 share state 의 X (or framework-specific signal).
// src/routes/index.tsx
import{component$,useSignal}from'@builder.io/qwik';exportdefaultcomponent$(()=>{constcount=useSignal(0);return(<buttononClick$={()=>count.value++}>Clicks:{count.value}</button>);});// 매 click 의 시 의 only 의 download — true progressive
언제: page 의 island boundary 의 propose, hydration directive 의 select, JS bundle 의 reduction 의 suggest.
언제 X: 매 framework 의 final choice (team skill, ecosystem fit 의 human decision).
❌ 안티패턴
Island sprawl: 매 component 의 client:load → SPA equivalent.
Cross-island state: 매 island 의 shared store 의 hack — 매 framework boundary 의 violation.
Server-only data 의 island leak: secret/PII 의 client island prop 의 pass.
client:only overuse: server render 의 skip → SEO 의 hurt + LCP 의 regress.
Wrong tool: 매 highly interactive app (Figma-like) 의 Astro 의 force-fit.