๐Ÿงฉ 06. Flexbox: '1์ฐจ์› ๋ ˆ์ด์•„์›ƒ์˜ ๋งˆ๋ฒ•์‚ฌ'

2026๋…„ 4์›” 30์ผ ์ˆ˜์ •๋จ

๐Ÿ“‹ ๊ฐœ์š”

ํ˜„๋Œ€ ์›น ๋ ˆ์ด์•„์›ƒ์˜ ํ•„์ˆ˜ ๋„๊ตฌ์ธ Flexbox์˜ ํ•ต์‹ฌ ์›๋ฆฌ์™€ ์ •๋ ฌ ๋ฐฉ์‹, ๊ทธ๋ฆฌ๊ณ  flex-grow/shrink์˜ ์ •๋ฐ€ํ•œ ๊ณ„์‚ฐ๋ฒ•์„ ์˜์ฒ ์ด์™€ ํ•จ๊ป˜ ๋ฐฐ์›Œ๋ด…๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ด ๋ฌธ์„œ๋ฅผ ์ฝ๊ธฐ ์ „์—

โฑ๏ธ ์˜ˆ์ƒ ์ฝ๊ธฐ ์‹œ๊ฐ„: 10๋ถ„(์ „์ฒด) / ํ•ต์‹ฌ ํŒŒํŠธ๋งŒ: 5๋ถ„

๐Ÿ—บ๏ธ ์ด ๋ฌธ์„œ์˜ ํ๋ฆ„
[์ถ•(Axis)์˜ ์ดํ•ด] โ†’ [์ •๋ ฌ(Alignment) ๋งˆ์Šคํ„ฐ] โ†’ [flex-basis/grow/shrink์˜ ์ˆ˜ํ•™]

๐ŸŽฏ ์ด ๋ฌธ์„œ๋ฅผ ๋‹ค ์ฝ์œผ๋ฉด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

  • ์ฃผ์ถ•(Main Axis)๊ณผ ๊ต์ฐจ์ถ•(Cross Axis)์˜ ๊ฐœ๋…์„ ์™„๋ฒฝํžˆ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.
  • ์š”์†Œ๋ฅผ ๊ฐ€๋กœ/์„ธ๋กœ ์ค‘์•™์— ์ •๋ ฌํ•˜๋Š” ๊ฐ€์žฅ ์šฐ์•„ํ•œ ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.
  • flex ๋‹จ์ถ• ์†์„ฑ์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๊ณต๊ฐ„์„ ๋ฐฐ๋ถ„ํ•˜๋Š”์ง€ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ—บ๏ธ ์ด ๋ฌธ์„œ์˜ ๋ฐฐ๊ฒฝ ์„ธ๊ณ„๊ด€: '์˜์ˆ˜๋„ค ์ปค๋ฎค๋‹ˆํ‹ฐ'

  • ๐Ÿฃ ์˜์ฒ  (์ดˆ๋ฐ˜์„ ์ง€๋‚˜์˜จ ๋‹จ๊ณ„): "์˜ํ˜ธ ๋‹˜, ๋ฉ”๋‰ด ๋ฐ”๋ฅผ float๊ณผ position์œผ๋กœ ๋งž์ถ”๋‹ค ๋ณด๋‹ˆ 1px ์ฐจ์ด๋กœ ์ค„๋ฐ”๊ฟˆ์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ˆ˜์ง ์ค‘์•™ ์ •๋ ฌ๋„ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์กŒ๊ณ ์š”."
  • ๐Ÿฆ ์˜ํ˜ธ (๋ฆฌ๋“œ): "์ด์ œ Flexbox๋ฅผ ์“ธ ์ฐจ๋ก€์˜ˆ์š”. ํ•ต์‹ฌ์€ ์†์„ฑ ์•”๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์ฃผ์ถ•๊ณผ ๊ต์ฐจ์ถ•์„ ๋จผ์ € ์ •ํ•˜๋Š” ๊ฒ๋‹ˆ๋‹ค. ์ถ• ํ•˜๋‚˜๋งŒ ์ œ๋Œ€๋กœ ์žก์œผ๋ฉด ์ •๋ ฌ ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ์งง์•„์ง‘๋‹ˆ๋‹ค."

๐Ÿค” ์™œ ์•Œ์•„์•ผ ํ•˜๋Š”๊ฐ€

Flexbox๊ฐ€ ๋“ฑ์žฅํ•˜๊ธฐ ์ „๊นŒ์ง€ ์›น ๋ ˆ์ด์•„์›ƒ์€ ๋ณธ๋ž˜ ๋ชฉ์ ๊ณผ ๋‹ค๋ฅธ ์†์„ฑ์„ ์กฐํ•ฉํ•ด ํ•ด๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ์‚ฌ์ง„ ์˜†์— ํ…์ŠคํŠธ๋ฅผ ๋‚˜๋ž€ํžˆ ๋‘๋ ค๊ณ  float์„ ์“ฐ๊ณ  clearfix๋กœ ํ๋ฆ„์„ ์ •๋ฆฌํ•ด์•ผ ํ–ˆ์ฃ . ํŠนํžˆ ์ˆ˜์ง ์ค‘์•™ ์ •๋ ฌ์€ ์ฝ”๋“œ๊ฐ€ ์žฅํ™ฉํ•ด์ง€๊ธฐ ์‰ฌ์šด ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

Flexbox๋Š” ์š”์†Œ๋“ค์„ ํ•œ ๋ฐฉํ–ฅ(๊ฐ€๋กœ ํ˜น์€ ์„ธ๋กœ)์œผ๋กœ ์ •๋ ฌํ•˜๊ณ , ๋‚จ๋Š” ๊ณต๊ฐ„์„ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆ  ๊ฐ€์งˆ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜๊ณ  ์ง๊ด€์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. 5๋…„์ฐจ ๊ฐœ๋ฐœ์ž๋Š” ๋‹จ์ˆœํžˆ display: flex๋ฅผ ๋‚จ๋ฐœํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์•„์ดํ…œ๋“ค์ด '์œ ์—ฐํ•˜๊ฒŒ(Flex)' ๋ฐ˜์‘ํ•˜๋Š” ์›๋ฆฌ๋ฅผ ์กฐ์ ˆํ•ด ์–ด๋–ค ํ™”๋ฉด ํฌ๊ธฐ์—์„œ๋„ ๊นจ์ง€์ง€ ์•Š๋Š” ๋ ˆ์ด์•„์›ƒ์„ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ—๏ธ 1. ๋‘ ๊ฐœ์˜ ์ถ•(Axis): ๋ช…์ค‘์˜ ์‹œ์ž‘

Flexbox์˜ ๋ชจ๋“  ๊ฒƒ์€ ์ถ•(Axis) ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

  1. Main Axis (์ฃผ์ถ•): flex-direction์— ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ row์ผ ๋•Œ๋Š” ๊ฐ€๋กœ, column์ผ ๋•Œ๋Š” ์„ธ๋กœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  2. Cross Axis (๊ต์ฐจ์ถ•): ์ฃผ์ถ•๊ณผ ์ง๊ตํ•˜๋Š” ์ถ•์ž…๋‹ˆ๋‹ค.

๐Ÿฆ ์˜ํ˜ธ์˜ ํ•ต์‹ฌ ๋ ˆ์Šจ:
"justify-content๋Š” ์ฃผ์ถ• ๋ฐฉํ–ฅ์˜ ์ •๋ ฌ์„, align-items๋Š” ๊ต์ฐจ์ถ• ๋ฐฉํ–ฅ์˜ ์ •๋ ฌ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‘ ์ค„๋งŒ ์žˆ์œผ๋ฉด ์ „์„ค์˜ '๊ฐ€๋กœ์„ธ๋กœ ์ค‘์•™ ์ •๋ ฌ'์ด ์™„์„ฑ๋˜์ฃ ."

์˜์ฒ ์ด๊ฐ€ ๋ฉ”๋‰ด ํ•ญ๋ชฉ์„ ๊ฐ€์šด๋ฐ ๋†“๊ณ  ์‹ถ๋‹ค๋ฉด ๋จผ์ € ๋ฐฉํ–ฅ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. row๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ด๋ฏ€๋กœ ์•„๋ž˜ ์ฝ”๋“œ์—์„œ๋Š” ๊ฐ€๋กœ๊ฐ€ ์ฃผ์ถ•, ์„ธ๋กœ๊ฐ€ ๊ต์ฐจ์ถ•์ž…๋‹ˆ๋‹ค.

.container {
  display: flex;
  /* ์ฃผ์ถ•(row ๊ธฐ๋ณธ๊ฐ’์—์„œ๋Š” ๊ฐ€๋กœ) ๊ฐ€์šด๋ฐ ์ •๋ ฌ */
  justify-content: center;
  /* ๊ต์ฐจ์ถ•(row ๊ธฐ๋ณธ๊ฐ’์—์„œ๋Š” ์„ธ๋กœ) ๊ฐ€์šด๋ฐ ์ •๋ ฌ */
  align-items: center;
}

flex-direction: column์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๋‘ ์†์„ฑ์ด ๋งก๋Š” ๋ฐฉํ–ฅ๋„ ๋ฐ”๋€๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Flexbox ๋””๋ฒ„๊น…์˜ ์ฒซ ์งˆ๋ฌธ์€ ํ•ญ์ƒ "์ง€๊ธˆ ์ฃผ์ถ•์ด ์–ด๋А ๋ฐฉํ–ฅ์ธ๊ฐ€?"์ž…๋‹ˆ๋‹ค.

๐ŸŽฏ ์ถ• ์ •๋ ฌ ๋Œ€๊ฒฐ: justify-content vs align-items

Center Item
justify-content: center (์ฃผ์ถ•)
align-items: center (๊ต์ฐจ์ถ•)

๐Ÿ“ 2. flex-basis, grow, shrink: ๊ณต๊ฐ„ ๋ฐฐ๋ถ„์˜ ์ˆ˜ํ•™

์•„์ดํ…œ๋“ค์ด ๋‚จ๋Š” ๊ณต๊ฐ„์„ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆ  ๊ฐ€์งˆ์ง€ ๊ฒฐ์ •ํ•˜๋Š” 3ํ˜•์ œ์ž…๋‹ˆ๋‹ค.

  • flex-basis: ์•„์ดํ…œ์˜ ๊ธฐ๋ณธ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. (width์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์ถ• ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„)
  • flex-grow: ๋‚จ๋Š” ๊ณต๊ฐ„์„ ๋น„๋ก€ํ•ด์„œ ๊ฐ€์ ธ๊ฐ€๋Š” ๋น„์œจ์ž…๋‹ˆ๋‹ค. (๊ธฐ๋ณธ๊ฐ’ 0: ์•ˆ ๊ฐ€์ ธ๊ฐ)
  • flex-shrink: ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•  ๋•Œ ๋น„๋ก€ํ•ด์„œ ์ค„์–ด๋“œ๋Š” ๋น„์œจ์ž…๋‹ˆ๋‹ค. (๊ธฐ๋ณธ๊ฐ’ 1: ๋˜‘๊ฐ™์ด ์ค„์–ด๋“ฌ)

์Šคํ„ฐ๋”” ์นด๋“œ ๋ชฉ๋ก์ฒ˜๋Ÿผ ์•„์ดํ…œ์ด ๋‚จ๋Š” ๊ณต๊ฐ„์„ ๋‚˜๋ˆ  ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋ฉด flex ๋‹จ์ถ• ์†์„ฑ์˜ ์„ธ ๊ฐ’์„ ํ•จ๊ป˜ ์ฝ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

.nav-item {
  /* flex-grow, flex-shrink, flex-basis ์ˆœ์„œ์ž…๋‹ˆ๋‹ค. */
  flex: 1 1 200px;
}

โš–๏ธ ๊ณต๊ฐ„ ๋ฐฐ๋ถ„์˜ ๋งˆ๋ฒ•: flex-grow

flex: 1
flex: 2 (2๋ฐฐ ์„ฑ์žฅ!)
flex: none

โš ๏ธ 5๋…„์ฐจ์˜ ๊ฒฝ๊ณ :
flex: 1์€ ์‚ฌ์‹ค flex: 1 1 0%์˜ ์ค„์ž„๋ง์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด flex: auto๋Š” flex: 1 1 auto์ฃ . ์ด ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๊ฐ€ ๋ ˆ์ด์•„์›ƒ์ด ๊ฝ‰ ์ฐจ๋А๋ƒ, ์ฝ˜ํ…์ธ  ํฌ๊ธฐ๋งŒํผ๋งŒ ์ปค์ง€๋А๋ƒ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ› ๏ธ 3. gap: ๋งˆ์ง€๋ง‰ ์•„์ดํ…œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ค„์ด๊ธฐ

๊ณผ๊ฑฐ์—๋Š” ์•„์ดํ…œ ์‚ฌ์ด ๊ฐ„๊ฒฉ์„ ์ฃผ๋ ค๊ณ  margin-right๋ฅผ ์ฃผ๊ณ  ๋งˆ์ง€๋ง‰ ์•„์ดํ…œ๋งŒ last-child๋กœ ๋นผ๊ณค ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋Š” gap ์†์„ฑ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ„๊ฒฉ์„ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.container {
  display: flex;
  /* ์•„์ดํ…œ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ„๊ฒฉ ์ •์ฑ…์„ ์†Œ์œ ํ•ฉ๋‹ˆ๋‹ค. */
  gap: 20px;
}

๐Ÿ“ ๋งˆ๋ฌด๋ฆฌ ํ€ด์ฆˆ

Q1. flex-direction: column;์ผ ๋•Œ ์š”์†Œ๋“ค์„ ์ˆ˜์ง ๋ฐฉํ–ฅ(์œ„์—์„œ ์•„๋ž˜)์˜ ํ•œ๊ฐ€์šด๋ฐ์— ๋†“์œผ๋ ค๋ฉด ์–ด๋–ค ์†์„ฑ์„ ์จ์•ผ ํ• ๊นŒ์š”?

โœ… ์ •๋‹ต: justify-content: center;

๐Ÿ’ก ์ƒ์„ธ ํ•ด์„ค:

  • ์›๋ฆฌ: justify-content๋Š” ์–ธ์ œ๋‚˜ ์ฃผ์ถ•(Main Axis) ๋ฐฉํ–ฅ์˜ ์ •๋ ฌ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. flex-direction: column์ผ ๋•Œ๋Š” ์„ธ๋กœ๊ฐ€ ์ฃผ์ถ•์ด ๋˜๋ฏ€๋กœ, justify-content: center๋ฅผ ์จ์•ผ ์ˆ˜์ง ์ค‘์•™ ์ •๋ ฌ์ด ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋‹ต ํ”ผ๋“œ๋ฐฑ: "์˜์ฒ  ๋‹˜, ์ฃผ์ถ•์ด ๋ฐ”๋€Œ๋ฉด ์†์„ฑ์˜ ์—ญํ• ๋„ ๋ฐ”๋€๋‹ค๋Š” ๊ฑธ ๊ผญ ๊ธฐ์–ตํ•˜์„ธ์š”. ํ—ท๊ฐˆ๋ฆฐ๋‹ค๋ฉด '์ฃผ์„ ํƒ(Justify-Main)'์ด๋ผ๊ณ  ์™ธ์›Œ๋ณด์„ธ์š”!"

Q2. flex-shrink: 0; ์†์„ฑ์ด ๋ถ€์—ฌ๋œ ์•„์ดํ…œ์€ ์ปจํ…Œ์ด๋„ˆ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ๋ฐ˜์‘ํ• ๊นŒ์š”?

  1. ์ปจํ…Œ์ด๋„ˆ ํฌ๊ธฐ์— ๋งž์ถฐ ์ค„์–ด๋“ ๋‹ค.
  2. ์ ˆ๋Œ€ ์ค„์–ด๋“ค์ง€ ์•Š๊ณ  ์ž๊ธฐ ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ์‚์ ธ๋‚˜์˜จ๋‹ค.
  3. ๋‹ค์Œ ์ค„๋กœ ์ž๋™์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.
  4. ์‚ฌ๋ผ์ง„๋‹ค.

โœ… ์ •๋‹ต: 2. ์ ˆ๋Œ€ ์ค„์–ด๋“ค์ง€ ์•Š๊ณ  ์ž๊ธฐ ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ์‚์ ธ๋‚˜์˜จ๋‹ค.

๐Ÿ’ก ์ƒ์„ธ ํ•ด์„ค:

  • ์›๋ฆฌ: flex-shrink๋Š” ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•  ๋•Œ ์•„์ดํ…œ์ด ์–ผ๋งˆ๋‚˜ ์ค„์–ด๋“ค์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋น„์œจ์ž…๋‹ˆ๋‹ค. 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๊ธฐ๋ณธ ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•˜๋ ค๊ณ  ํ•˜๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ข์œผ๋ฉด ๋„˜์นจ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ค๋‹ต ํ”ผ๋“œ๋ฐฑ: "์˜์ฒ  ๋‹˜, ๋‚ด์šฉ๋ฌผ์ด ์ž˜๋ฆฌ๋ฉด ์•ˆ ๋˜๋Š” ์ค‘์š”ํ•œ ์•„์ด์ฝ˜์ด๋‚˜ ๋ฒ„ํŠผ์—๋Š” flex-shrink: 0์„ ์ค„ ์ˆ˜ ์žˆ์–ด์š”. ๋Œ€์‹  ์ž‘์€ ํ™”๋ฉด์—์„œ ๋„˜์น˜์ง€ ์•Š๋Š”์ง€ ํ•จ๊ป˜ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."

Q3. [์˜์ฒ ์ด์˜ ํ…Œ์ŠคํŠธ ํƒ€์ž„: ์‹ค๋ฌด ๋”œ๋ ˆ๋งˆ]
์˜์ฒ ์ด๊ฐ€ ์นด๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ๋งˆ์ง€๋ง‰ ์ค„์˜ ์นด๋“œ ํ•˜๋‚˜๊ฐ€ ํ˜ผ์ž์„œ ์ปจํ…Œ์ด๋„ˆ ์ „์ฒด ๋„ˆ๋น„๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ ๋šฑ๋šฑํ•˜๊ฒŒ ๋Š˜์–ด๋‚˜ ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ์˜์ˆ™ ๋””์ž์ด๋„ˆ ๋‹˜์ด "๋งˆ์ง€๋ง‰ ์นด๋“œ๋„ ๋‹ค๋ฅธ ์นด๋“œ๋ž‘ ๋˜‘๊ฐ™์€ ํฌ๊ธฐ์—ฌ์•ผ ํ•ด์š”!"๋ผ๊ณ  ํ•˜์‹œ๋„ค์š”. ์˜์ฒ ์ด๊ฐ€ flex ์†์„ฑ์„ ์ด์šฉํ•ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ• ๊นŒ์š”?

โœ… ์ •๋‹ต: flex-grow: 0 (๋˜๋Š” flex: none)์„ ์ฃผ์–ด ํ™•์žฅ์„ ๋ง‰๊ณ , flex-basis๋‚˜ width๋กœ ๊ณ ์ • ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค.

๐Ÿ’ก ์ƒ์„ธ ํ•ด์„ค:

  • ๋ฌธ์ œ ์ง„๋‹จ: flex-grow: 1์€ "๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋นˆ ๊ณต๊ฐ„์„ ์ฑ„์›Œ๋ผ"๋ผ๋Š” ๊ฐ•๋ ฅํ•œ ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ค„๋กœ ๋‚˜์—ด๋œ ์นด๋“œ ๋ฆฌ์ŠคํŠธ์—์„œ ๋งˆ์ง€๋ง‰ ์ค„์— ์•„์ดํ…œ์ด ํ•˜๋‚˜๋งŒ ๋‚จ์œผ๋ฉด, ๊ทธ ์•„์ดํ…œ์ด ํ•ด๋‹น ์ค„์˜ ๋ชจ๋“  ์—ฌ๋ฐฑ์„ ์ฐจ์ง€ํ•ด ์นด๋“œ ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ (์‹ค๋ฌด ํ•ต์‹ฌ):
    1. ์ ˆ์ œํ˜• (Flex-grow: 0): ์•„์ดํ…œ์— flex-grow: 0์„ ์ฃผ์–ด ๋ฌด๋ถ„๋ณ„ํ•œ ํ™•์žฅ์„ ๋ง‰์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  flex-basis: calc(50% - gap)์ด๋‚˜ width๋กœ ๋ช…ํ™•ํ•œ ์ž๊ธฐ ์ž๋ฆฌ๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    2. ๊ฑด์ถ•ํ˜• (Grid): ์• ์ดˆ์— ์ด๋Ÿฐ ๊ฒฉ์žํ˜• ๋ ˆ์ด์•„์›ƒ์€ 07๊ฐ•์—์„œ ๋ฐฐ์šธ CSS Grid๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์™„๋ฒฝํ•œ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค. (Grid๋Š” ์ค„์ด ๋ฐ”๋€Œ์–ด๋„ ๊ฐ ์นธ์˜ ํฌ๊ธฐ๋ฅผ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋‹ˆ๊นŒ์š”!)

โŒ ๋ฌธ์ œ ์ƒํ™ฉ: flex-grow: 1 (๋งˆ์ง€๋ง‰ ์•„์ดํ…œ ๋น„๋Œ€ํ™”)

ํ˜ผ์ž ๋šฑ๋šฑํ•ด์ง!

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: flex-grow: 0 (๋„ˆ๋น„ ๊ณ ์ •)

ํฌ๊ธฐ ์œ ์ง€!
  • ์˜ค๋‹ต ํ”ผ๋“œ๋ฐฑ: "์˜์ฒ  ๋‹˜, flex: 1์€ ๋ชจ๋“  ๋ ˆ์ด์•„์›ƒ์˜ ๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹ˆ์—์š”. ์—ฌ๋Ÿฌ ์ค„ ์นด๋“œ ๋ชฉ๋ก์—์„œ๋Š” ๊ณต๊ฐ„์„ ๋‚˜๋ˆ  ๊ฐ–์ง€ ์•Š๋„๋ก flex-grow๋ฅผ 0์œผ๋กœ ๋‘๊ฑฐ๋‚˜ Grid๋ฅผ ๊ฒ€ํ† ํ•˜์„ธ์š”."
  • ๐Ÿ“Œ ํ•ต์‹ฌ ๊ธฐ์–ต๋ฒ•: "ํ•œ ์ค„ ์ •๋ ฌ์€ Flex, ํ–‰๊ณผ ์—ด์ด ๋ชจ๋‘ ์ค‘์š”ํ•˜๋ฉด Grid๋„ ํ›„๋ณด์— ์˜ฌ๋ฆฐ๋‹ค."

๐Ÿฃ ์˜์ฒ ์ด์˜ ํ‡ด๊ทผ ์ผ๊ธฐ

์˜ค๋Š˜ float์„ ๋ฒ„๋ฆฌ๊ณ  Flexbox์˜ ์„ธ๊ณ„์— ์ž…์„ฑํ–ˆ๋‹ค.
์ˆ˜์ง ์ค‘์•™ ์ •๋ ฌ์ด ๋‹จ ๋‘ ์ค„ ๋งŒ์— ๋๋‚˜๋Š” ๊ฑธ ๋ณด๊ณ  ๋‚ด ์ง€๋‚œ ๋ฐค์ƒ˜์ด ํ—ˆ๋งํ•˜๊ฒŒ ๋А๊ปด์กŒ์ง€๋งŒ, ์ด์ œ๋ผ๋„ ์•Œ์•˜์œผ๋‹ˆ ๋‹คํ–‰์ด๋‹ค.
ํŠนํžˆ flex-grow๋ž‘ flex-shrink๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ˆ˜ํ•™ ๊ณ„์‚ฐ์„ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒŒ ์ •๋ง ์‹ ๊ธฐํ–ˆ๋‹ค.

๐Ÿ’ก "์ •๋ ฌ์€ ์ฃผ๊ด€์ด ์•„๋‹ˆ๋ผ ์ถ•(Axis)์— ์˜ํ•œ ๋ฌผ๋ฆฌ์ ์ธ ๋ฐฐ์น˜๋‹ค. ์ถ•์„ ์ง€๋ฐฐํ•˜๋Š” ์ž๊ฐ€ ๋ ˆ์ด์•„์›ƒ์„ ์ง€๋ฐฐํ•œ๋‹ค."

์˜ํ˜ธ ๋‹˜์ด "๋‹จ์ˆœํžˆ ์™ธ์šฐ์ง€ ๋ง๊ณ  ๊ณต๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๋‚จ๊ณ  ๋ชจ์ž๋ผ๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•ด๋ณด๋ผ"๋ผ๊ณ  ํ•˜์…จ๋‹ค. ๋‚ด์ผ๋ถ€ํ„ฐ๋Š” display: flex๋ฅผ ๋จผ์ € ์“ฐ๊ธฐ ์ „์— ์ด ๋ ˆ์ด์•„์›ƒ์ด ํ•œ ๋ฐฉํ–ฅ ๋ฌธ์ œ์ธ์ง€, ์•„๋‹ˆ๋ฉด ํ–‰๊ณผ ์—ด์ด ํ•จ๊ป˜ ์ค‘์š”ํ•œ ๋ฌธ์ œ์ธ์ง€๋ถ€ํ„ฐ ํŒ๋‹จํ•ด๋ด์•ผ๊ฒ ๋‹ค.


๐Ÿ”— ๋” ์•Œ์•„๋ณด๊ธฐ