--- id: wiki-2026-0508-cssom-css-object-model title: CSSOM(CSS Object Model) 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 --- # [[CSSOM(CSS Object Model)|CSSOM(CSS Object Model]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) [[CSSOM|CSSOM]](CSS Object Model)์€ ์›น ํŽ˜์ด์ง€์˜ DOM(Document Object Model) ์š”์†Œ๋“ค์ด ์–ด๋–ป๊ฒŒ ์Šคํƒ€์ผ๋ง๋˜๋Š”์ง€์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค [1, 2]. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ œ๊ณต๋ฐ›์€ CSS ๊ทœ์น™์„ ํŒŒ์‹ฑํ•˜์—ฌ ๋ถ€๋ชจ, ์ž์‹, ํ˜•์ œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„ ๋…ธ๋“œ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค [3, 4]. ์™„์„ฑ๋œ CSSOM์€ DOM๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ํ™”๋ฉด์— ํ”ฝ์…€์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•œ ๋ Œ๋” ํŠธ๋ฆฌ([[Render Tree|Render Tree]])๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [5, 6]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **๋ Œ๋”๋ง ์ฐจ๋‹จ ํŠน์„ฑ (Render-[[Blocking|Blocking]]):** DOM ํŠธ๋ฆฌ์˜ ์ƒ์„ฑ์€ ์ ์ง„์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€๋งŒ, CSSOM ์ƒ์„ฑ์€ ์ ์ง„์ ์ด์ง€ ์•Š์€ ๋ Œ๋”๋ง ์ฐจ๋‹จ(render-blocking) ์ž‘์—…์ž…๋‹ˆ๋‹ค [1, 2]. ๋ธŒ๋ผ์šฐ์ €๋Š” ์Šคํƒ€์ผ์ด ์ ์šฉ๋˜์ง€ ์•Š์€ ๋‚  ๊ฒƒ์˜ HTML ์ฝ˜ํ…์ธ ๊ฐ€ ํ™”๋ฉด์— ๋ฒˆ์ฉ์ด๋ฉฐ ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ(FOUC, Flash of Unstyled Content)์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜์—ฌ CSSOM์ด ์™„์„ฑ๋  ๋•Œ๊นŒ์ง€ ํŽ˜์ด์ง€ ๋ Œ๋”๋ง์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค [1, 2]. - **ํŠธ๋ฆฌ ๊ตฌ์กฐ์™€ ์บ์Šค์ผ€์ด๋”ฉ (Cascading):** CSSOM์€ CSS ๊ทœ์น™์— ๋”ฐ๋ผ ๋…ธ๋“œ ํŠธ๋ฆฌ๋ฅผ ํ˜•์„ฑํ•˜๋ฉฐ, ํ•˜์œ„ ๋…ธ๋“œ๋Š” ์ƒ์œ„ ๋…ธ๋“œ์˜ ์Šคํƒ€์ผ ์ผ๋ถ€๋ฅผ ์ƒ์†๋ฐ›์Šต๋‹ˆ๋‹ค(ํ•˜ํ–ฅ์‹ ์ข…์†) [3, 7]. ์ดํ›„์— ํŒŒ์‹ฑ๋œ ๊ทœ์น™์ด ์ด์ „ ๊ทœ์น™์„ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ „์ฒด CSS๊ฐ€ ์™„์ „ํžˆ ํŒŒ์‹ฑ๋  ๋•Œ๊นŒ์ง€ CSSOM์„ ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์„ฑ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค [7]. CSSOM ํŠธ๋ฆฌ์—๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ(User Agent) ์Šคํƒ€์ผ์‹œํŠธ ์ •๋ณด๋„ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ทœ์น™๋ถ€ํ„ฐ ๊ตฌ์ฒด์ ์ธ ๊ทœ์น™์„ ๊ฑฐ๋“ญ ์ ์šฉํ•˜์—ฌ ์ตœ์ข… ์Šคํƒ€์ผ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค [8]. - **์„ ํƒ์ž ํŒŒ์‹ฑ ์›๋ฆฌ์™€ ์„ฑ๋Šฅ:** ๋ธŒ๋ผ์šฐ์ €๋Š” CSS ์„ ํƒ์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ํŒŒ์‹ฑํ•ฉ๋‹ˆ๋‹ค [9]. ๋”ฐ๋ผ์„œ ํด๋ž˜์Šค ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๊ฒฐํ•ฉ๋œ ๊ตฌ์ฒด์ ์ธ ์„ ํƒ์ž(์˜ˆ: `.container.navigation.item`)๋Š” ์กฐ์ƒ ๊ด€๊ณ„๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด DOM ํŠธ๋ฆฌ๋ฅผ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€์•ผ ํ•˜๋ฏ€๋กœ, ๋‹จ์ˆœํ•œ ์„ ํƒ์ž(์˜ˆ: `.item`)์— ๋น„ํ•ด ๋ธŒ๋ผ์šฐ์ €์— ์•ฝ๊ฐ„์˜ ์ž‘์—… ๋ถ€ํ•˜๋ฅผ ๋” ์ค๋‹ˆ๋‹ค [9, 10]. - **๋ Œ๋” ํŠธ๋ฆฌ(Render Tree)์™€์˜ ๊ฒฐํ•ฉ:** ๋ธŒ๋ผ์šฐ์ €๋Š” ํ™”๋ฉด์— ํ‘œ์‹œ๋  ์š”์†Œ์˜ ๋ ˆ์ด์•„์›ƒ์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด DOM ํŠธ๋ฆฌ์™€ CSSOM ํŠธ๋ฆฌ๋ฅผ ๋ณ‘ํ•ฉํ•˜์—ฌ ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค [6, 11]. DOM ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ์—์„œ ์‹œ์ž‘ํ•ด ๋ˆˆ์— ๋ณด์ด๋Š” ๊ฐ ๋…ธ๋“œ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์ ์ ˆํ•œ CSSOM ๊ทœ์น™์„ ์ฐพ์•„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค [6]. ์ด๋•Œ ํ™”๋ฉด์— ์‹œ๊ฐ์  ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๋…ธ๋“œ๋‚˜ `display: none` ์Šคํƒ€์ผ์ด ์ ์šฉ๋œ ๋…ธ๋“œ๋Š” ๋ Œ๋” ํŠธ๋ฆฌ์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค [6, 11]. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[DOM (Document Object Model)|DOM(Document Object Model]], Render Tree, Critical Rendering Path, [[Reflow & Repaint|Reflow & Repaint]] - **Projects/Contexts:** ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ์ตœ์ ํ™”([[Browser|Browser]] Rendering [[Optimization|Optimization]]) - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด CSSOM ๊ตฌ์ถ•์€ ์ค‘์š”ํ•œ ๋ Œ๋”๋ง ์ฐจ๋‹จ ๊ณผ์ •์ด์ง€๋งŒ, ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์—์„œ CSSOM ์ƒ์„ฑ ๋ฐ ์Šคํƒ€์ผ ๊ณ„์‚ฐ ์†๋„๋Š” ๋งˆ์ดํฌ๋กœ์ดˆ ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์งˆ ๋งŒํผ ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค [8-10]. ๋”ฐ๋ผ์„œ CSS ์„ ํƒ์ž์˜ ๊ตฌ์ฒด์„ฑ์„ ๋‚ฎ์ถ”๋Š” ๋“ฑ์˜ ๋งˆ์ดํฌ๋กœ ์ตœ์ ํ™”๋ณด๋‹ค๋Š”, ํ•„์š” ์—†๋Š” CSS ๊ทœ์น™์„ ์ตœ์†Œํ™”ํ•˜๊ฑฐ๋‚˜ ๋…ผ๋ธ”๋กœํ‚น(non-blocking) ์š”์ฒญ์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์˜๋ฏธ ์žˆ๋Š” ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ง€์ ํ•ฉ๋‹ˆ๋‹ค [8, 10, 12]. --- *Last updated: 2026-04-25* ## ๐Ÿค– 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: ๋ฌด์—‡์„ ํ•˜๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€ + ์ด์œ  + ๋Œ€์‹  ๋ฌด์—‡์„)*