๐Ÿš€ 14. ํ˜„๋Œ€์ ์ธ CSS: 'Nesting, Layers, ๊ทธ๋ฆฌ๊ณ  Scope์˜ ํ˜๋ช…'

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

๐Ÿ“‹ ๊ฐœ์š”

SASS ์—†์ด๋„ ๊ฐ€๋Šฅํ•œ ์ •๊ทœ Nesting๋ถ€ํ„ฐ ์Šคํƒ€์ผ ์šฐ์„ ์ˆœ์œ„์˜ ๊ตฌ์›ํˆฌ์ˆ˜์ธ Cascade Layers๊นŒ์ง€, CSS์˜ ํŒ๋„๋ฅผ ๋ฐ”๊พธ๊ณ  ์žˆ๋Š” ์ตœ์‹  ๋„๊ตฌ๋“ค์„ ์˜์ฒ ์ด์™€ ํ•จ๊ป˜ ๋งˆ์Šคํ„ฐํ•ฉ๋‹ˆ๋‹ค.

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

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

๐Ÿ—บ๏ธ ์ด ๋ฌธ์„œ์˜ ํ๋ฆ„
[๋„ค์ดํ‹ฐ๋ธŒ Nesting์˜ ๋“ฑ์žฅ] โ†’ [Cascade Layers(@layer)] โ†’ [Scoped CSS(@scope)]

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

  • ์ „์ฒ˜๋ฆฌ๊ธฐ(SASS) ์—†์ด ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋งŒ์œผ๋กœ ๊น”๋”ํ•œ ์ค‘์ฒฉ ๊ตฌ์กฐ๋ฅผ ์งญ๋‹ˆ๋‹ค.
  • @layer๋ฅผ ํ™œ์šฉํ•ด ์„œ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋‚ด ์Šคํƒ€์ผ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • @scope๋ฅผ ํ†ตํ•ด ํŠน์ • ์˜์—ญ ์•ˆ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ์•ˆ์ „ํ•œ ์Šคํƒ€์ผ๋ง์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

  • ๐Ÿฃ ์˜์ฒ  (ํ›„๋ฐ˜๋ถ€ ์‹ค๋ฌด์ž): "์˜ํ˜ธ ๋‹˜! ์˜ˆ์ „์—๋Š” SASS๋‚˜ ๋„ค์ด๋ฐ ๊ทœ์น™์œผ๋กœ ํ•ด๊ฒฐํ•˜๋˜ ๋ฌธ์ œ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋Šฅ์œผ๋กœ๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๊ธฐ๋Šฅ์€ ๋ฐ”๋กœ ์จ๋„ ๋˜๊ณ , ์–ด๋–ค ๊ธฐ๋Šฅ์€ ์ง€์› ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜์ฃ ?"
  • ๐Ÿฆ ์˜ํ˜ธ (๋ฆฌ๋“œ): "๋งž์•„์š”. CSS๋Š” ๋น ๋ฅด๊ฒŒ ์ง„ํ™”ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ตœ์‹  ๊ธฐ๋Šฅ์€ ์ง€์› ๋ฒ”์œ„์™€ ํŒ€ ๋„๊ตฌ๊นŒ์ง€ ํ•จ๊ป˜ ๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Nesting, Cascade Layers, Scope๊ฐ€ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”์ง€ ๊ธฐ์ค€๋ถ€ํ„ฐ ์žก์•„๋ด…์‹œ๋‹ค."

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

์ตœ๊ทผ CSS๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ์™€ ํŒ€ ๊ทœ์น™์œผ๋กœ ํ•ด๊ฒฐํ•˜๋˜ ๋ฌธ์ œ ์ผ๋ถ€๋ฅผ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋Šฅ์œผ๋กœ ์ง์ ‘ ๋‹ค๋ฃจ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋Š” !important์— ์˜์กดํ•˜๊ฑฐ๋‚˜ ํด๋ž˜์Šค ์ด๋ฆ„์„ ๋ฌด์กฐ๊ฑด ๊ธธ๊ฒŒ ์ง“๊ธฐ ์ „์—, Cascade Layers๋‚˜ Nesting ๊ฐ™์€ ํ‘œ์ค€ ๊ธฐ๋Šฅ์ด ๋” ์ ํ•ฉํ•œ์ง€ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ตœ์‹  ๊ธฐ๋Šฅ๋“ค์€ ๋‹จ์ˆœํžˆ 'ํŽธ๋ฆฌํ•จ'์„ ๋„˜์–ด **'์œ ์ง€๋ณด์ˆ˜ ํšจ์œจ'**์„ ๊ทน๋Œ€์ ์œผ๋กœ ๋†’์—ฌ์ค๋‹ˆ๋‹ค. 5๋…„์ฐจ ์ด์ƒ์˜ ์‹œ๋‹ˆ์–ด๋Š” ๊ณผ๊ฑฐ์˜ ๋ฐฉ์‹์— ์•ˆ์ฃผํ•˜์ง€ ์•Š๊ณ , ์ตœ์‹  ์ŠคํŽ™์„ ์‚ฌ์šฉํ•ด ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ—๏ธ 1. Native Nesting: SASS๋Š” ์•ˆ๋…•?

์ด์ œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง์ ‘ Nesting์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ๊ณผ์ • ์—†์ด๋„ ๊ฐ€๋…์„ฑ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜์ˆ˜๋„ค ์นด๋“œ ์ปดํฌ๋„ŒํŠธ์ฒ˜๋Ÿผ ๋ถ€๋ชจ ์ƒํƒœ์™€ ์ž์‹ ์š”์†Œ ์Šคํƒ€์ผ์ด ํ•จ๊ป˜ ์›€์ง์ด๋Š” ๊ฒฝ์šฐ์—๋Š” Nesting์ด ์˜๋„๋ฅผ ๋ชจ์•„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

.card {
  background: white;
 
  & .title {
    font-weight: bold;
  }
 
  &:hover {
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
  }
}

Nesting์€ ์ค‘์ฒฉ์„ ๊นŠ๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‘์„ธ ๋‹จ๊ณ„ ์ด์ƒ ๊นŠ์–ด์ง€๋ฉด ๋ช…์‹œ๋„๊ฐ€ ๋†’์•„์ง€๊ณ  ์žฌ์‚ฌ์šฉ์ด ์–ด๋ ค์›Œ์ง€๋ฏ€๋กœ, ๊ด€๋ จ ์žˆ๋Š” ์ƒํƒœ์™€ ํ•˜์œ„ ์š”์†Œ๋งŒ ๋ฌถ๋Š” ์ •๋„๋กœ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


๐Ÿ›ก๏ธ 2. Cascade Layers (@layer): ์šฐ์„ ์ˆœ์œ„ ์ œ์–ด๊ถŒ ํƒˆํ™˜

@layer๋Š” ์„ ํƒ์ž ์ ์ˆ˜๋งŒ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ์•Š๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ฐ™์€ ์ถœ์ฒ˜์™€ ์ค‘์š”๋„ ์•ˆ์—์„œ ๋ ˆ์ด์–ด ์ˆœ์„œ๋ฅผ ๋จผ์ € ๋น„๊ตํ•˜๋ฏ€๋กœ, reset, base, components, utilities ๊ฐ™์€ ํŒ€ ์ฐจ์›์˜ ๊ณ„์ธต์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@layer reset, base, components, overrides;
 
@layer components {
  .btn.primary {
    color: blue;
  }
}
 
@layer overrides {
  .btn {
    color: red;
  }
}

์œ„ ์˜ˆ์‹œ์—์„œ๋Š” .btn์˜ ๋ช…์‹œ๋„๊ฐ€ ๋” ๋‚ฎ์•„๋„ overrides ๋ ˆ์ด์–ด๊ฐ€ components๋ณด๋‹ค ๋’ค์— ์„ ์–ธ๋˜์–ด ์ผ๋ฐ˜ ์„ ์–ธ๋ผ๋ฆฌ ๋น„๊ตํ•  ๋•Œ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, !important์™€ ๋ ˆ์ด์–ด ๋ฐ– ์ผ๋ฐ˜ ์Šคํƒ€์ผ์€ ๋ณ„๋„ ๊ทœ์น™์ด ์žˆ์œผ๋ฏ€๋กœ ํŒ€ ๋ ˆ์ด์–ด ์ •์ฑ…์„ ๋ฌธ์„œ๋กœ ๋‚จ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.


๐ŸŽฏ 3. Scoped CSS (@scope): ์•ˆ์ „ํ•œ ์Šคํƒ€์ผ ์šธํƒ€๋ฆฌ

ํŠน์ • ์š”์†Œ ์•ˆ์—์„œ๋งŒ ์Šคํƒ€์ผ์ด ํ๋ฅด๊ฒŒ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ „์—ญ CSS๋ฅผ ์“ฐ๋”๋ผ๋„ "์ด ์นด๋“œ ์˜์—ญ ์•ˆ์—์„œ๋งŒ"์ด๋ผ๋Š” ๋ฒ”์œ„๋ฅผ ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@scope (.card) {
  img {
    border-radius: 50%; /* ์ด .card ์•ˆ์˜ img ์—๋งŒ ์ ์šฉ! */
  }
}

๐Ÿฃ ์˜์ฒ : "@scope๊ฐ€ ์žˆ์œผ๋ฉด ์ „์—ญ CSS์—์„œ๋„ ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ์ขํž ์ˆ˜ ์žˆ๊ฒ ๋„ค์š”. ๋‹ค๋งŒ ๋ธŒ๋ผ์šฐ์ € ์ง€์› ๋ฒ”์œ„์™€ ๋นŒ๋“œ ๋„๊ตฌ ์ง€์›์„ ๋จผ์ € ํ™•์ธํ•˜๊ณ  ์ ์ง„์ ์œผ๋กœ ์จ์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค."


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

Q1. ๋„ค์ดํ‹ฐ๋ธŒ CSS Nesting์—์„œ ๋ถ€๋ชจ ์„ ํƒ์ž๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐํ˜ธ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

โœ… ์ •๋‹ต: & (์•ฐํผ์ƒŒ๋“œ)

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

  • ์›๋ฆฌ: CSS Nesting ๋ช…์„ธ์— ๋”ฐ๋ฅด๋ฉด & ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SASS์˜ ๋ฌธ๋ฒ•์„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ •์‹์œผ๋กœ ์ˆ˜์šฉํ•œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.
  • ์˜ค๋‹ต ํ”ผ๋“œ๋ฐฑ: "์˜์ฒ  ๋‹˜, ์ด์ œ ์ „์ฒ˜๋ฆฌ๊ธฐ ์—†์ด๋„ & ํ•˜๋‚˜๋ฉด ๋ถ€๋ชจ ์Šคํƒ€์ผ์„ ์ƒฅ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์–ด์š”. ๊ฐ€๋…์„ฑ์ด ํ›จ์”ฌ ์ข‹์•„์ง€๊ฒ ์ฃ ?"

Q2. @layer๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”?

  1. ์• ๋‹ˆ๋ฉ”์ด์…˜ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด
  2. ์Šคํƒ€์ผ์˜ ์šฐ์„ ์ˆœ์œ„(Specificity)๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๊ณ„์ธตํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด
  3. ๋‹คํฌ ๋ชจ๋“œ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด
  4. CSS ํŒŒ์ผ์˜ ๋กœ๋”ฉ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด

โœ… ์ •๋‹ต: 2. ์Šคํƒ€์ผ์˜ ์šฐ์„ ์ˆœ์œ„(Specificity)๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๊ณ„์ธตํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด

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

  • ์›๋ฆฌ: @layer๋Š” ๊ฐ™์€ ์ถœ์ฒ˜์™€ ์ค‘์š”๋„ ์•ˆ์—์„œ ๋ ˆ์ด์–ด ์ˆœ์„œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๋น„๊ตํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์Šคํƒ€์ผ๊ณผ ๋‚ด ์Šคํƒ€์ผ์ด ์ถฉ๋Œํ•  ๋•Œ ์„ ํƒ์ž ์ ์ˆ˜๋ฅผ ๊ณ„์† ๋†’์ด์ง€ ์•Š๊ณ  ๊ณ„์ธต ์ •์ฑ…์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ค๋‹ต ํ”ผ๋“œ๋ฐฑ: "์˜์ฒ  ๋‹˜, ์ ์ˆ˜ ๊ณ„์‚ฐ๋งŒ์œผ๋กœ ๋ฒ„ํ‹ฐ๊ธฐ๋ณด๋‹ค @layer๋กœ reset, components, overrides ๊ฐ™์€ ํŒ€ ๊ณ„์ธต์„ ๋จผ์ € ์ •ํ•ด๋ณด์„ธ์š”."

Q3. [์˜์ฒ ์ด์˜ ํ…Œ์ŠคํŠธ ํƒ€์ž„: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„]
์˜์ฒ ์ด๊ฐ€ ์™ธ๋ถ€ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™”๋Š”๋ฐ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์Šคํƒ€์ผ ๋ช…์‹œ๋„๊ฐ€ ๋†’์•„์„œ ์ปค์Šคํ…€ ์Šคํƒ€์ผ์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. !important๋ฅผ ๋ฐ˜๋ณตํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์Šคํƒ€์ผ์„ ๋‚ฎ์€ ๊ณ„์ธต์— ๋‘๊ณ  ๋‚ด ์Šคํƒ€์ผ์„ ๊ทธ ์œ„ ๊ณ„์ธต์— ๋‘˜ ์ˆ˜ ์žˆ๋Š” CSS ๊ธฐ์ˆ ์€?

โœ… ์ •๋‹ต: Cascade Layers (@layer)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์Šคํƒ€์ผ๊ณผ ์ปค์Šคํ…€ ์Šคํƒ€์ผ์˜ ๊ณ„์ธต ์ˆœ์„œ๋ฅผ ์ •์˜ํ•œ๋‹ค.

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

  • ์›๋ฆฌ ์„ค๋ช…: ์ผ๋ฐ˜ ์„ ์–ธ๋ผ๋ฆฌ๋Š” @layer ์•ˆ์—์„œ ์ •์˜๋œ ์Šคํƒ€์ผ์ด ๋ช…์‹œ๋„๊ฐ€ ๋‚ฎ๋”๋ผ๋„ ๋” ๋’ค์˜ ๊ณ„์ธต์— ์žˆ์œผ๋ฉด ์šฐ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•˜์œ„ ๋ ˆ์ด์–ด๋กœ, ๋‚ด ์ฝ”๋“œ๋ฅผ ์ƒ์œ„ ๋ ˆ์ด์–ด๋กœ ๋‘๋ฉด ์„ ํƒ์ž ๊ฒฝ์Ÿ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ค๋‹ต ํ”ผ๋“œ๋ฐฑ: "์˜์ฒ  ๋‹˜, ์ „์—ญ์— !important๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์ „์— ๋ ˆ์ด์–ด ์ˆœ์„œ๋ฅผ ์„ค๊ณ„ํ•˜์„ธ์š”."
  • ๐Ÿ“Œ ํ•ต์‹ฌ ๊ธฐ์–ต๋ฒ•: "๋ช…์‹œ๋„ ๊ฒฝ์Ÿ ์ „์— ๋ ˆ์ด์–ด ์ •์ฑ…์„ ๋จผ์ € ์„ธ์šด๋‹ค."

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

์˜ค๋Š˜ CSS์˜ ๋ฏธ๋ž˜๋ฅผ ๋ณธ ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋™์•ˆ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์ถฉ๋Œํ•  ๋•Œ ํด๋ž˜์Šค ์ด๋ฆ„์„ ๊ธธ๊ฒŒ ๋Š˜์ด๊ฑฐ๋‚˜ !important๋ฅผ ๋ถ™์˜€๋Š”๋ฐ, ์ด์ œ๋Š” @layer๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋จผ์ € ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.

๐Ÿ’ก "์ตœ์‹  CSS ๊ธฐ๋Šฅ์€ ๊ณผ๊ฑฐ์˜ ์šฐํšŒ ํŒจํ„ด์„ ์ค„์ด๋Š” ์„ ํƒ์ง€๋‹ค. ๋‹ค๋งŒ ์ง€์› ๋ฒ”์œ„์™€ ํŒ€ ๊ทœ์น™๊นŒ์ง€ ํ•จ๊ป˜ ํ™•์ธํ•ด์•ผ ์‹ค๋ฌด ๊ธฐ์ˆ ์ด ๋œ๋‹ค."

์˜ํ˜ธ ๋‹˜์ด "์ŠคํŽ™์€ ๊ณ„์† ๋ณด์ˆ˜ํ•ด์•ผ ํ•˜์ง€๋งŒ, ์‹œ์•ผ๋Š” ํ•ญ์ƒ ์—ด์–ด๋‘ฌ์•ผ ํ•œ๋‹ค"๋ผ๊ณ  ํ•˜์…จ๋‹ค.
๋ธŒ๋ผ์šฐ์ € ์ง€์› ๋ฒ”์œ„(Caniuse)๋ฅผ ์ฒดํฌํ•ด๋ณด๋‹ˆ ๊ธฐ๋Šฅ๋งˆ๋‹ค ๋„์ž… ๊ฐ€๋Šฅ์„ฑ์ด ๋‹ฌ๋ž๋‹ค. ๋‹น์žฅ ๋ชจ๋“  ๊ฒƒ์„ ๋ฐ”๊พธ๊ธฐ๋ณด๋‹ค, ๋จผ์ € reset/components/overrides ๋ ˆ์ด์–ด ์ •์ฑ…์„ ์ž‘์€ ๋ฒ”์œ„์—์„œ ์ ์šฉํ•ด๋ด์•ผ๊ฒ ๋‹ค.


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