--- id: wiki-2026-0508-css-grid title: CSS Grid 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 --- # [[CSS Grid|CSS Grid]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) CSS GridλŠ” ν–‰(Row)κ³Ό μ—΄(Column)을 λ™μ‹œμ— 닀루어 λ³΅μž‘ν•˜κ³  체계적인 μ›Ή νŽ˜μ΄μ§€ ꡬ쑰λ₯Ό 섀계할 수 μžˆλ„λ‘ λ•λŠ” 2차원 λ ˆμ΄μ•„μ›ƒ μ‹œμŠ€ν…œμž…λ‹ˆλ‹€ [1, 2]. [[Flexbox|Flexbox]]와 달리 λ ˆμ΄μ•„μ›ƒ ꡬ쑰λ₯Ό λ¨Όμ € μ •μ˜ν•˜κ³  μš”μ†Œλ₯Ό λ°°μΉ˜ν•˜λŠ” 'λ ˆμ΄μ•„μ›ƒ μš°μ„ (layout in)' 방식을 μ·¨ν•˜λ©°, λŒ€κ·œλͺ¨ νŽ˜μ΄μ§€ λ ˆμ΄μ•„μ›ƒμ΄λ‚˜ λŒ€μ‹œλ³΄λ“œ, 가러리 λ“± μ •λ°€ν•œ λ°°μΉ˜κ°€ ν•„μš”ν•œ 곳에 κ°€μž₯ μ ν•©ν•©λ‹ˆλ‹€ [3-5]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **2차원 λ ˆμ΄μ•„μ›ƒ μ œμ–΄:** * 1차원(ν–‰ λ˜λŠ” μ—΄)으둜만 μž‘λ™ν•˜λŠ” Flexbox와 λ‹€λ₯΄κ²Œ, CSS GridλŠ” κ°€λ‘œμ™€ μ„Έλ‘œ 두 λ°©ν–₯의 λ ˆμ΄μ•„μ›ƒμ„ λ™μ‹œμ— μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [2, 6]. * λ³΅μž‘ν•œ 쀑첩 μ»¨ν…Œμ΄λ„ˆλ₯Ό 생성할 ν•„μš” 없이 κΉ”λ”ν•œ λ§ˆν¬μ—…μœΌλ‘œ λ³΅μž‘ν•œ λ””μžμΈ(예: 헀더, ν‘Έν„°, μ‚¬μ΄λ“œλ°”, 메인 μ½˜ν…μΈ  배치)을 μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [7, 8]. * **μ •λ°€ν•œ 배치 및 μ˜€λ²„λž©(Overlap):** * `grid-template-columns`, `grid-template-rows`, `grid-template-areas` λ“±μ˜ 속성을 톡해 μ•„μ΄ν…œμ„ μ›ν•˜λŠ” μœ„μΉ˜μ— μ •ν™•νžˆ λ°°μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [9, 10]. * `grid-column` 및 `grid-row` 속성을 ν™œμš©ν•΄ λ³΅μž‘ν•œ λ§ˆμ§„μ΄λ‚˜ μ ˆλŒ€ μœ„μΉ˜ μ§€μ •(Absolute positioning) 없이도 μš”μ†Œλ“€μ„ 겹치게 λ§Œλ“€ 수 μžˆμ–΄ μ‹œκ°μ μΈ 계측을 ν‘œν˜„ν•˜λŠ” 데 μœ λ¦¬ν•©λ‹ˆλ‹€ [11, 12]. * **κ°•λ ₯ν•œ λ°˜μ‘ν˜• 섀계 κΈ°λŠ₯:** * μ—¬λ°± μ œμ–΄μš© `gap`(`grid-gap`) 속성을 λ„€μ΄ν‹°λΈŒλ‘œ μ§€μ›ν•˜λ―€λ‘œ marginκ³Ό κ΄€λ ¨λœ λΆ€μž‘μš©μ„ λ°©μ§€ν•©λ‹ˆλ‹€ [6, 12]. * `fr`(λΆ„μˆ˜) λ‹¨μœ„μ™€ `minmax()` ν•¨μˆ˜, 그리고 `repeat(auto-fit, ...)` 같은 κΈ°λŠ₯을 κ²°ν•©ν•˜μ—¬, λ―Έλ””μ–΄ 쿼리에 크게 μ˜μ‘΄ν•˜μ§€ μ•Šκ³ λ„ κ°€μš© 곡간에 따라 νŠΈλž™ μˆ˜κ°€ λ™μ μœΌλ‘œ λ³€ν•˜λŠ” μœ μ—°ν•œ λ°˜μ‘ν˜• λ ˆμ΄μ•„μ›ƒμ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [13-17]. * **λ‹€λ₯Έ CSS κΈ°λŠ₯과의 μƒν˜Έμž‘μš©:** * **μ ˆλŒ€ μœ„μΉ˜ μ§€μ •:** Grid μ»¨ν…Œμ΄λ„ˆμ— `position: relative`λ₯Ό μ£Όλ©΄ λ‚΄λΆ€μ˜ μ ˆλŒ€ μœ„μΉ˜(`position: absolute`) μš”μ†Œκ°€ 전체 κ·Έλ¦¬λ“œ λ˜λŠ” ν• λ‹Ήλœ κ·Έλ¦¬λ“œ μ˜μ—­(Grid Area)을 κΈ°μ€€μœΌλ‘œ μ •λ°€ν•˜κ²Œ 배치될 수 μžˆμŠ΅λ‹ˆλ‹€ [18-20]. * **`display: contents` ν™œμš©:** Grid ν•­λͺ©μ˜ 래퍼(Wrapper) μš”μ†Œμ— `display: contents`λ₯Ό μ μš©ν•˜λ©΄, ν•΄λ‹Ή 래퍼의 λ°•μŠ€λŠ” 사라지고 λ‚΄λΆ€ μžμ‹ μš”μ†Œλ“€μ΄ 직접 Grid μ‹œμŠ€ν…œμ˜ ν•­λͺ©μœΌλ‘œ νŽΈμž…λ˜μ–΄ κ·Έλ¦¬λ“œμ˜ μ •λ ¬ κ·œμΉ™μ„ λ”°λ₯΄κ²Œ λ©λ‹ˆλ‹€ [21-23]. * **싀무 μœ μ§€λ³΄μˆ˜λ₯Ό μœ„ν•œ 섀계 μ „λž΅ (Flexboxμ™€μ˜ μ‘°ν•©):** * λͺ¨λ˜ ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜μ—μ„œλŠ” CSS Grid와 Flexbox 쀑 ν•˜λ‚˜λ§Œ μ„ νƒν•˜λŠ” 것이 μ•„λ‹ˆλΌ, λͺ©μ μ— 맞게 두 κ°€μ§€λ₯Ό ν˜Όμš©ν•˜λŠ” 것이 ν•΅μ‹¬μž…λ‹ˆλ‹€ [24, 25]. * 전체 νŽ˜μ΄μ§€μ˜ ꡬ쑰(Major layout)λ‚˜ λŒ€κ·œλͺ¨ λΌˆλŒ€λŠ” 2차원인 **CSS Grid**둜 작고, ν•΄λ‹Ή μ…€ 내뢀에 λ“€μ–΄κ°€λŠ” UI μ»΄ν¬λ„ŒνŠΈλ“€μ˜ 세뢀적인 정렬은 1차원인 **Flexbox**둜 μ²˜λ¦¬ν•˜λŠ” 것이 μœ μ§€λ³΄μˆ˜μ„± 높은 μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” λͺ¨λ²” μ‚¬λ‘€μž…λ‹ˆλ‹€ [26-29]. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Flexbox|Flexbox]], [[ᄇᅑᆫ응형 α„ƒα…΅α„Œα…‘α„‹α…΅α†«|λ°˜μ‘ν˜• λ””μžμΈ]] - **Projects/Contexts:** μœ μ§€λ³΄μˆ˜ κ°€λŠ₯ν•œ CSS λ ˆμ΄μ•„μ›ƒ 섀계, μ›Ή νŽ˜μ΄μ§€ 및 λŒ€μ‹œλ³΄λ“œ ꡬ쑰화 - **Contradictions/Notes:** FlexboxλŠ” μ½˜ν…μΈ μ˜ 크기λ₯Ό 기반으둜 곡간을 λΆ„λ°°ν•˜λŠ” 'μ½˜ν…μΈ  μš°μ„ (content out)' λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜μ§€λ§Œ, CSS GridλŠ” μ •μ˜λœ λ ˆμ΄μ•„μ›ƒμ˜ ν˜•νƒœμ— μš”μ†Œλ₯Ό λΌμ›Œ λ§žμΆ”λŠ” 'λ ˆμ΄μ•„μ›ƒ μš°μ„ (layout in)' 방식을 μ·¨ν•©λ‹ˆλ‹€ [5, 30]. CSS Gridκ°€ 더 λ³΅μž‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•˜μ§€λ§Œ λ‹¨μˆœν•œ 1차원 μ •λ ¬(ν–‰, μ—΄ λ‚΄μ—μ„œμ˜ μ•„μ΄ν…œ μ •λ ¬)에 μ‚¬μš©ν•˜κΈ°μ—λŠ” κ³Όλ„ν•œ μ„€μ •(overkill)이 될 수 μžˆμœΌλ―€λ‘œ 상황에 맞게 Flexbox와 ꡬ별해 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [6, 27, 31]. --- *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: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*