--- id: wiki-2026-0508-vanilla-extract title: vanilla extract category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [] duplicate_of: none source_trust_level: A confidence_score: 0.92 tags: [uncategorized] raw_sources: [] last_reinforced: 2026-05-08 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[vanilla-extract|vanilla-extract]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) vanilla-extractλŠ” λΉŒλ“œ νƒ€μž„μ— 정적 CSSλ₯Ό μƒμ„±ν•˜λŠ” 제둜 λŸ°νƒ€μž„(Zero-runtime) [[CSS-in-JS|CSS-in-JS]] λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€ [1-3]. κΈ°μ‘΄ CSS-in-JSκ°€ μ§€λ‹ˆλ˜ λŸ°νƒ€μž„ μ˜€λ²„ν—€λ“œ 문제 없이, JavaScript 및 TypeScriptλ₯Ό ν™œμš©ν•œ νƒ€μž… μ•ˆμ „(type-safe)ν•œ μŠ€νƒ€μΌλ§ 개발 κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€ [2, 3]. 특히 [[React Server Components|React Server Components]](RSC)와 μ™„λ²½ν•˜κ²Œ ν˜Έν™˜λ˜λ©°, μ—¬λŸ¬ ν…Œλ§ˆλ₯Ό 관리해야 ν•˜λŠ” λŒ€κ·œλͺ¨ λ””μžμΈ μ‹œμŠ€ν…œ ꡬ좕에 κ°•λ ₯히 ꢌμž₯λ˜λŠ” μ ‘κ·Ό λ°©μ‹μž…λ‹ˆλ‹€ [2, 4-6]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **제둜 λŸ°νƒ€μž„κ³Ό μ„±λŠ₯ μ΅œμ ν™”:** vanilla-extractλŠ” κΈ°μ‘΄ λŸ°νƒ€μž„ CSS-in-JS(예: [[styled-components|styled-components]], Emotion)κ°€ μ•ΌκΈ°ν•˜λŠ” λΈŒλΌμš°μ € λŸ°νƒ€μž„ μ˜€λ²„ν—€λ“œ 및 λ²ˆλ“€ 크기 증가 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ“±μž₯ν•œ λŒ€μ•ˆμž…λ‹ˆλ‹€ [3, 4, 7]. λΉŒλ“œ μ‹œμ μ— 정적 CSSλ₯Ό 생성해 λ‚΄κΈ° λ•Œλ¬Έμ—, JavaScript μ‹€ν–‰ 쀑 μŠ€νƒ€μΌμ„ νŒŒμ‹±ν•˜κ³  DOM에 μ£Όμž…ν•˜λŠ” 데 λ“œλŠ” λΉ„μš©(CPU 사이클 λ“±)이 μ „ν˜€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ [2, 3]. * **νƒ€μž… μ•ˆμ •μ„±κ³Ό 개발자 κ²½ν—˜:** 이 λ„κ΅¬λŠ” TypeScriptλ₯Ό μ‚¬μš©ν•˜μ—¬ νƒ€μž… μ•ˆμ „ν•œ μŠ€νƒ€μΌλ§μ„ μ§€μ›ν•©λ‹ˆλ‹€ [2]. 이λ₯Ό 톡해 JavaScript 기반 μŠ€νƒ€μΌλ§μ΄ μ œκ³΅ν•˜λŠ” ν›Œλ₯­ν•œ 개발자 κ²½ν—˜κ³Ό 동적 μ œμ–΄μ˜ 이점을 μœ μ§€ν•˜λ©΄μ„œλ„, [[CSS Modules|CSS Modules]]와 같은 정적 CSS의 μ„±λŠ₯적 이점을 λ™μ‹œμ— 확보할 수 μžˆλŠ” 쀑간 지점(middle ground) 역할을 ν•©λ‹ˆλ‹€ [2, 3]. * **RSC(React [[Server Components|Server Components]]) ν˜Έν™˜μ„±:** 기쑴의 Context 기반 CSS-in-JS λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ€ λΈŒλΌμš°μ €κ°€ μ•„λ‹Œ μ„œλ²„μ—μ„œ μ‹€ν–‰λ˜λŠ” React Server Components(RSC) ν™˜κ²½κ³Ό 근본적으둜 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” 문제λ₯Ό μ•ˆκ³  μžˆμŠ΅λ‹ˆλ‹€ [4, 5]. κ·ΈλŸ¬λ‚˜ vanilla-extractλŠ” λΉŒλ“œ νƒ€μž„μ— 정적 CSSλ₯Ό μΆ”μΆœν•˜λŠ” 방식을 μ·¨ν•˜λ―€λ‘œ, RSC 및 [[Next.js App Router|Next.js App Router]] ν™˜κ²½μ—μ„œλ„ λ¬Έμ œμ—†μ΄ μ™„λ²½ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€ [2, 5]. * **λŒ€κ·œλͺ¨ λ””μžμΈ μ‹œμŠ€ν…œ 및 ν…Œλ§ˆ 적용:** μ—¬λŸ¬ μ‹œκ°μ  ν…Œλ§ˆ(라이트/닀크 λͺ¨λ“œ, 고객사별 λΈŒλžœλ”© λ“±)λ₯Ό μ μš©ν•΄μ•Ό ν•˜λŠ” μ œν’ˆμ—μ„œ 높은 κ°€μΉ˜λ₯Ό μ§€λ‹™λ‹ˆλ‹€ [6, 7]. λŒ€κ·œλͺ¨ λ””μžμΈ μ‹œμŠ€ν…œμ„ λ‹€λ£¨λ©΄μ„œλ„ ν…Œλ§ˆ 적용이 ν•„μš”ν•œ 경우, 제둜 λŸ°νƒ€μž„κ³Ό νƒ€μž… μ•ˆμ •μ„±μ„ λͺ¨λ‘ μž‘μ€ vanilla-extractλŠ” κ°€μž₯ μΆ”μ²œλ˜λŠ” μŠ€νƒ€μΌλ§ μ „λž΅ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€ [6]. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[CSS-in-JS|CSS-in-JS]], CSS Modules, λ””μžμΈ μ‹œμŠ€ν…œ κ°œλ…, [[ᄉα…₯α†Όα„‚α…³α†Ό α„Žα…¬α„Œα…₯ᆨᄒα…ͺ(Performance Optimization)|μ„±λŠ₯ μ΅œμ ν™”(Performance Optimization]] - **Projects/Contexts:** [[React Server Components (RSC)|React Server Components (RSC]], [[Next.js App Router|Next.js App Router]] - **Contradictions/Notes:** μ†ŒμŠ€μ— λ”°λ₯΄λ©΄ κΈ°μ‘΄ λŸ°νƒ€μž„ CSS-in-JS 라이브러리(styled-components, Emotion)λŠ” React μ»¨ν…μŠ€νŠΈ λΆ€μ‘±μœΌλ‘œ 인해 React Server Components(RSC) ν™˜κ²½μ—μ„œ ν˜Έν™˜λ˜μ§€ μ•Šμ§€λ§Œ, vanilla-extractλŠ” λΉŒλ“œ μ‹œμ μ— CSSλ₯Ό μ •μ μœΌλ‘œ μΆ”μΆœν•˜λ―€λ‘œ RSC와 μ™„λ²½ν•˜κ²Œ ν˜Έν™˜λ˜μ–΄ 이λ₯Ό λŒ€μ²΄ν•  수 μžˆλŠ” κ²ƒμœΌλ‘œ 평가받고 μžˆμŠ΅λ‹ˆλ‹€ [2, 4, 5]. --- *Last updated: 2026-04-26* ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μ—†μŒ - **μ •μ±… λ³€ν™”:** μ—†μŒ ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*