# [[CSS Grid 맟 Flexbox|CSS Grid 및 Flexbox]] ## πŸ“ŒBrief μ‹ Summary CSS [[Flexbox|Flexbox]]와 [[CSS Grid|CSS Grid]]λŠ” μ›Ή νŽ˜μ΄μ§€μ˜ μš”μ†Œλ“€μ„ λ°°μΉ˜ν•˜κ³  μ •λ ¬ν•˜κΈ° μœ„ν•΄ λ„μž…λœ μ΅œμ‹  CSS λ ˆμ΄μ•„μ›ƒ λͺ¨λ“ˆμž…λ‹ˆλ‹€ [1-3]. FlexboxλŠ” ν–‰(Row)μ΄λ‚˜ μ—΄(Column) 쀑 ν•˜λ‚˜μ˜ λ°©ν–₯으둜 μš”μ†Œλ₯Ό λ°°μΉ˜ν•˜λŠ” 1차원 λ ˆμ΄μ•„μ›ƒμ— νŠΉν™”λ˜μ–΄ 있으며, CSS GridλŠ” ν–‰κ³Ό 열을 λ™μ‹œμ— μ œμ–΄ν•˜λŠ” 2차원 λ ˆμ΄μ•„μ›ƒ μ‹œμŠ€ν…œμž…λ‹ˆλ‹€ [4-6]. 이 두 κΈ°μˆ μ€ 과거의 floatμ΄λ‚˜ λ³΅μž‘ν•œ μœ„μΉ˜ μ§€μ •(positioning) 방식을 λŒ€μ²΄ν•˜μ—¬, 예츑 κ°€λŠ₯ν•˜κ³  μœ μ§€λ³΄μˆ˜κ°€ μš©μ΄ν•œ λ°˜μ‘ν˜• λ””μžμΈμ„ κ΅¬μΆ•ν•˜λŠ” 핡심 λ„κ΅¬λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€ [7-9]. ## πŸ“– Core Content **1. Flexbox (1차원 λ ˆμ΄μ•„μ›ƒ 및 μ»΄ν¬λ„ŒνŠΈ μ •λ ¬)** * **λͺ©μ  및 νŠΉμ§•:** FlexboxλŠ” 단일 차원(ν–‰ λ˜λŠ” μ—΄)μ—μ„œ ν•­λͺ©μ„ μ •λ ¬ν•˜κ³  간격을 λΆ„λ°°ν•˜λŠ” 데 μ΅œμ ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€ [4, 9, 10]. 주둜 λ‚΄λΉ„κ²Œμ΄μ…˜ λ°”, 폼 ν•„λ“œ, μΉ΄λ“œ μ»΄ν¬λ„ŒνŠΈ λ‚΄μ˜ ν…μŠ€νŠΈμ™€ 이미지 μ •λ ¬ λ“± μ†Œκ·œλͺ¨ λ ˆμ΄μ•„μ›ƒμ— μ ν•©ν•©λ‹ˆλ‹€ [3, 11, 12]. * **λ™μž‘ 원리 (Content-out):** FlexboxλŠ” 'μ½˜ν…μΈ  쀑심(Content-out)'으둜 λ™μž‘ν•©λ‹ˆλ‹€. μš”μ†Œλ“€μ˜ λ‚΄λΆ€ μ½˜ν…μΈ  크기에 따라 ν•­λͺ©μ΄ μ»€μ§€κ±°λ‚˜(`flex-grow`) 쀄어듀며(`flex-shrink`), κ°€μš© 곡간을 μœ μ—°ν•˜κ²Œ μ±„μ›λ‹ˆλ‹€ [1, 13-16]. ν™”λ©΄ 크기가 쀄어듀면 `flex-wrap` 속성을 톡해 μžμ—°μŠ€λŸ½κ²Œ λ‹€μŒ μ€„λ‘œ λ„˜μ–΄κ°€κ²Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [17, 18]. **2. CSS Grid (2차원 λ ˆμ΄μ•„μ›ƒ 및 νŽ˜μ΄μ§€ ꡬ쑰화)** * **λͺ©μ  및 νŠΉμ§•:** CSS GridλŠ” ν–‰(Row)κ³Ό μ—΄(Column)을 λ™μ‹œμ— λ‹€λ£° 수 μžˆλŠ” κ°€μž₯ κ°•λ ₯ν•œ 2차원 λ ˆμ΄μ•„μ›ƒ λ„κ΅¬μž…λ‹ˆλ‹€ [5, 6, 19]. 전체 νŽ˜μ΄μ§€ ꡬ쑰, 데이터 λŒ€μ‹œλ³΄λ“œ, λ³΅μž‘ν•œ 이미지 가러리 λ“± μ •λ°€ν•œ λ°°μΉ˜κ°€ ν•„μš”ν•œ λŒ€κ·œλͺ¨ λ ˆμ΄μ•„μ›ƒμ— μ ν•©ν•©λ‹ˆλ‹€ [20-22]. * **λ™μž‘ 원리 (Layout-in):** CSS GridλŠ” 'λ ˆμ΄μ•„μ›ƒ 쀑심(Layout-in)'으둜 λ™μž‘ν•©λ‹ˆλ‹€. λ¨Όμ € κ·Έλ¦¬λ“œ ꡬ쑰(ν–‰κ³Ό μ—΄μ˜ ν‹€)λ₯Ό μ •μ˜ν•œ λ’€, κ·Έ ν‹€ μ•ˆμ˜ νŠΉμ • μ…€μ΄λ‚˜ μ˜μ—­μ— μ½˜ν…μΈ λ₯Ό λ°°μΉ˜ν•©λ‹ˆλ‹€ [16, 23]. μ•„μ΄ν…œλ“€μ΄ μ—¬λŸ¬ ν–‰κ³Ό 열에 걸쳐 병합(spanning)λ˜κ±°λ‚˜ κ²ΉμΉ˜λ„λ‘ μ •λ°€ν•˜κ²Œ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [22, 24, 25]. **3. λ°˜μ‘ν˜• λ””μžμΈμ—μ„œμ˜ μ—­ν• ** * 두 기술 λͺ¨λ‘ κ³ μ •λœ ν”½μ…€ 폭 λŒ€μ‹  μœ μ—°ν•œ μœ λ‹›κ³Ό 논리λ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜λ§Žμ€ λ―Έλ””μ–΄ 쿼리(Media Queries)λ₯Ό μ€„μ΄λŠ” 데 κΈ°μ—¬ν•©λ‹ˆλ‹€ [26, 27]. * 예λ₯Ό λ“€μ–΄, CSS Grid의 `auto-fit` 속성과 `minmax()` ν•¨μˆ˜λ₯Ό κ²°ν•©ν•˜λ©΄ ν™”λ©΄μ˜ κ°€μš© 곡간에 맞좰 μ—΄μ˜ 개수λ₯Ό λ™μ μœΌλ‘œ μžλ™ μ‘°μ ˆν•˜λŠ” λ°˜μ‘ν˜• κ·Έλ¦¬λ“œλ₯Ό μ†μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [28-31]. **4. 싀무 λ ˆμ΄μ•„μ›ƒ 톡합 μ „λž΅ (Grid + Flexbox)** * λŒ€κ·œλͺ¨ ν”„λ‘ νŠΈμ—”λ“œ ν”„λ‘œμ νŠΈμ—μ„œ κ°€μž₯ ꢌμž₯λ˜λŠ” μ•„ν‚€ν…μ²˜ 원칙은 **"λ ˆμ΄μ•„μ›ƒμ—λŠ” CSS Gridλ₯Ό, μ •λ ¬μ—λŠ” Flexboxλ₯Ό μ‚¬μš©ν•˜λΌ(Grid is for layout; Flexbox is for [[Alignment|Alignment]])"**λŠ” κ²ƒμž…λ‹ˆλ‹€ [32-34]. * CSS Gridλ₯Ό μ‚¬μš©ν•˜μ—¬ 헀더, ν‘Έν„°, μ‚¬μ΄λ“œλ°”, 메인 μ½˜ν…μΈ  μ˜μ—­ λ“± μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 'μ£Όμš” λ ˆμ΄μ•„μ›ƒ μŠ€νƒ€μΌ(Major layout style)'을 κ΅¬μΆ•ν•©λ‹ˆλ‹€ [34, 35]. * 그런 λ‹€μŒ κ°œλ³„ κ·Έλ¦¬λ“œ μ…€ 내뢀에 λ“€μ–΄κ°€λŠ” λ²„νŠΌ κ·Έλ£Ή, μ•„μ΄μ½˜, ν…μŠ€νŠΈ λ“±μ˜ μš”μ†Œλ“€μ„ μ •λ ¬ν•  λ•ŒλŠ” Flexboxλ₯Ό ν™œμš©ν•©λ‹ˆλ‹€ [35, 36]. * μ΄λŸ¬ν•œ ν•˜μ΄λΈŒλ¦¬λ“œ μ ‘κ·Ό 방식은 λΆˆν•„μš”ν•œ 래퍼(Wrapper) μš”μ†Œμ˜ 쀑첩을 쀄여 DOM ꡬ쑰λ₯Ό κ°€λ³κ²Œ λ§Œλ“€κ³ , λΈŒλΌμš°μ € λ Œλ”λ§ μ„±λŠ₯κ³Ό μ½”λ“œμ˜ μœ μ§€λ³΄μˆ˜μ„±μ„ 크게 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€ [35, 37-39]. ## πŸ”— Knowledge Connections - **Related Topics:** [[ᄇᅑᆫ응형 α„ƒα…΅α„Œα…‘α„‹α…΅α†«|λ°˜μ‘ν˜• λ””μžμΈ]], CSS μ•„ν‚€ν…μ²˜, [[BEM|BEM]] - **Projects/Contexts:** λŒ€κ·œλͺ¨ ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜ μ΅œμ ν™”, μ»΄ν¬λ„ŒνŠΈ 기반 UI/UX 섀계 - **Contradictions/Notes:** Flexbox와 CSS GridλŠ” μ„œλ‘œλ₯Ό λŒ€μ²΄ν•˜λŠ” 기술이 μ•„λ‹™λ‹ˆλ‹€ [40, 41]. 였히렀 FlexboxλŠ” 1차원 μ •λ ¬(예: ν•œ 쀄 λ˜λŠ” ν•œ μ—΄μ˜ μ•„μ΄ν…œ 배치)에 직관적이고 μ ν•©ν•˜λ©°, CSS GridλŠ” 2μ°¨μ›μ˜ λ³΅μž‘ν•œ ꡬ쑰 λ°°μΉ˜μ— 강점을 μ§€λ‹ˆλ―€λ‘œ 두 κΈ°μˆ μ„ μƒν˜Έ λ³΄μ™„μ μœΌλ‘œ ν•¨κ»˜ μ‚¬μš©ν•΄μ•Ό μ™„λ²½ν•œ λ ˆμ΄μ•„μ›ƒ μ‹œμŠ€ν…œμ„ 섀계할 수 μžˆλ‹€κ³  μ—¬λŸ¬ μ†ŒμŠ€μ—μ„œ κ°•μ‘°ν•©λ‹ˆλ‹€ [8, 36, 39, 40]. --- *Last updated: 2026-04-26*