--- id: wiki-2026-0508-shadcn-ui title: shadcn ui 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 --- # shadcn/ui ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) shadcn/ui๋Š” [[Tailwind CSS|Tailwind CSS]]๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ React UI ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค [1, 2]. ์ฃผ๋กœ Radix์™€ ๊ฐ™์€ Headless UI์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ณต์žกํ•œ ์ƒํ˜ธ์ž‘์šฉ๊ณผ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์ •๊ตํ•˜๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [3, 4]. ํŠนํžˆ [[Next.js App Router|Next.js App Router]]๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ค‘์†Œ๊ทœ๋ชจ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ Tailwind CSS์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์žฅ ๊ถŒ์žฅ๋˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค [2]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **Tailwind CSS ๊ธฐ๋ฐ˜ ์ƒํƒœ๊ณ„:** shadcn/ui๋Š” Tailwind CSS ํ™˜๊ฒฝ์— ์™„๋ฒฝํ•˜๊ฒŒ ๋งž์ถฐ ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ์ฃผ๋กœ [[Radix UI|Radix UI]] ๋ฐ Headless UI์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [1, 3]. ์ด๋Š” [[CSS-in-JS|CSS-in-JS]]์˜ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ํ”ผํ•˜๊ณ  ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์˜ ๋น ๋ฅธ ๋ Œ๋”๋ง ์„ฑ๋Šฅ์„ ํ™œ์šฉํ•˜๋Š” ํ˜„๋Œ€์ ์ธ ์Šคํƒ€์ผ๋ง ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๋งž๋‹ฟ์•„ ์žˆ์Šต๋‹ˆ๋‹ค [2, 5]. - **์ปดํฌ๋„ŒํŠธ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ์ œ๊ณต:** ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ(ํŠนํžˆ [[Next.js|Next.js]] App Router ๊ธฐ๋ฐ˜์˜ ์ค‘์†Œ๊ทœ๋ชจ ์•ฑ)๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ, ์ฒ˜์Œ๋ถ€ํ„ฐ UI๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ(Component primitives) ์—ญํ• ์„ ํ•˜์—ฌ ๋น ๋ฅธ ๊ฐœ๋ฐœ์„ ๋•์Šต๋‹ˆ๋‹ค [2]. - **๊ณ ๊ธ‰ ์ปดํฌ๋„ŒํŠธ ํŒจํ„ด ์ง€์›:** ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ API๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์ปดํŒŒ์šด๋“œ ์ปดํฌ๋„ŒํŠธ(Compound component) ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค [4]. ์ด๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ์ปดํฌ๋„ŒํŠธ์— ์ˆ˜๋งŽ์€ prop์„ ์ „๋‹ฌํ•˜๋Š” ๋Œ€์‹ , ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ˜‘๋ ฅํ•˜๋Š” ์—ฌ๋Ÿฌ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ฑ…์ž„์„ ๋ถ„์‚ฐ์‹œ์ผœ ๋ณต์žกํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค [3, 6]. - **ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์Šคํƒ€์ผ๋ง ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”:** ๋ณ€ํ˜•(variant) ์‹œ์Šคํ…œ, ๋ฐ˜์‘ํ˜• ๋””์ž์ธ, ํ…Œ๋งˆ ํ†ตํ•ฉ๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ์Šคํƒ€์ผ๋ง ๊ธฐ๋ฒ•์„ ๋งˆ์Šคํ„ฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [4]. ํšจ์œจ์ ์ธ ๋ Œ๋”๋ง๊ณผ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ์ˆ ๋„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [4]. - **ํƒ€์ž… ์•ˆ์ •์„ฑ ๋ณด์žฅ:** TypeScript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์–ด ์žˆ์–ด, ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์™„๋ฒฝํ•œ ํƒ€์ž… ์•ˆ์ •์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ ๋ฐ API ์„ค๊ณ„๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค [4]. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Tailwind CSS|Tailwind CSS]], Compound Components, [[Headless UI|Headless UI]], Radix - **Projects/Contexts:** [[Next.js App Router แ„‘แ…ณแ„…แ…ฉแ„Œแ…ฆแ†จแ„แ…ณ|Next.js App Router ํ”„๋กœ์ ํŠธ]], ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ React ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค๊ณ„ - **Contradictions/Notes:** ์†Œ์Šค ์ƒ์—์„œ shadcn/ui๋Š” ์ „ํ†ต์ ์ธ ์˜๋ฏธ์˜ ๋ฌด๊ฑฐ์šด UI ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ธฐ๋ณด๋‹ค๋Š”, Tailwind CSS์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ฐ•๋ ฅํ•œ ํ†ต์ œ๊ถŒ๊ณผ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ๋ชจ์Œ์œผ๋กœ ๋ฌ˜์‚ฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [1, 2]. --- *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: ๋ฌด์—‡์„ ํ•˜๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€ + ์ด์œ  + ๋Œ€์‹  ๋ฌด์—‡์„)*