๐Ÿ—๏ธ 12. CSS ์•„ํ‚คํ…์ฒ˜: 'BEM๋ถ€ํ„ฐ CSS-in-JS๊นŒ์ง€'

2026๋…„ 3์›” 5์ผ ์ˆ˜์ •๋จ

๐Ÿ“‹ ๊ฐœ์š”

์ปค์ง€๋Š” ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” BEM ๋ช…๋ช… ๊ทœ์น™๊ณผ, ํ˜„๋Œ€์ ์ธ CSS-in-JS ๋ฐ Utility-first(Tailwind)์˜ ์žฅ๋‹จ์ ์„ ์˜์ฒ ์ด์™€ ํ•จ๊ป˜ ๋ถ„์„ํ•ด ๋ด…๋‹ˆ๋‹ค.

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

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

๐Ÿ—บ๏ธ ์ด ๋ฌธ์„œ์˜ ํ๋ฆ„
[BEM: ์ด๋ฆ„ ์ง“๊ธฐ์˜ ๊ทœ์น™] โ†’ [CSS Modules์™€ CSS-in-JS] โ†’ [Utility-first์˜ ์ฒ ํ•™]

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

  • BEM ํŒจํ„ด์„ ํ™œ์šฉํ•ด ๋ˆ„๊ตฌ๋‚˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค ์ด๋ฆ„์„ ์ง“์Šต๋‹ˆ๋‹ค.
  • ๊ธ€๋กœ๋ฒŒ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์˜ค์—ผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ˜„๋Œ€์  ๊ธฐ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ์˜ ์„ฑ๊ฒฉ์— ๋งž์ถฐ ์ ์ ˆํ•œ CSS ๋ฐฉ๋ฒ•๋ก (Module vs Styled vs Tailwind)์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

  • ๐Ÿฃ ์˜์ฒ  ( ์‹ ์ž… ): "์˜ํ˜ธ ๋‹˜! ์ œ๊ฐ€ ๊ณต๋“ค์—ฌ ๋งŒ๋“  .title ์Šคํƒ€์ผ์ด ๋‹ค๋ฅธ ํŽ˜์ด์ง€์—์„œ ๋งŒ๋“  ๋˜‘๊ฐ™์€ ์ด๋ฆ„์˜ .title ๋•Œ๋ฌธ์— ๋‹ค ๊นจ์กŒ์–ด์š”. ํด๋ž˜์Šค ์ด๋ฆ„์„ very-special-title-blue-03 ์ด๋ ‡๊ฒŒ ์ง€์–ด์•ผ ํ•˜๋‚˜์š”? ๐Ÿ˜ญ"
  • ๐Ÿฆ ์˜ํ˜ธ ( ๋ฆฌ๋“œ ): "์˜์ฒ  ๋‹˜, ๊ทธ๊ฒŒ ๋ฐ”๋กœ CSS์˜ ๊ฐ€์žฅ ํฐ ์ˆ™์ œ์ธ 'Global Scope' ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ „ ์„ธ๊ณ„ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด ํ˜ผ๋ˆ์„ ๋ง‰์œผ๋ ค๊ณ  ์ˆ˜๋งŽ์€ ๊ทœ์น™(Architecture)์„ ๋งŒ๋“ค์—ˆ์ฃ . ์˜ค๋Š˜ ๊ทธ ํ‰ํ™”์˜ ๋„๊ตฌ๋“ค์„ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค."

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

CSS์˜ ๊ฐ€์žฅ ํฐ ์•ฝ์ ์€ ๋ชจ๋“  ์Šคํƒ€์ผ์ด ์ „์—ญ(Global)์— ๋ฐ˜์˜๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์ง€๊ณ  ํ˜ผ์ž์„œ ๋งŒ ๊ฐœ ์ด์ƒ์˜ ํด๋ž˜์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด, ์Šคํƒ€์ผ ํ•œ ์ค„ ๊ณ ์น˜๋Š” ๊ฒŒ ์ง€๋ขฐ๋ฐญ์„ ๊ฑท๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฌด์„œ์›Œ์ง‘๋‹ˆ๋‹ค.

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


๐Ÿท๏ธ 1. BEM: ํด๋ž˜์Šค์— ๊ณ„๊ธ‰์„ ๋ถ€์—ฌํ•˜๋ผ

Block, Element, Modifier์˜ ์•ฝ์ž๋กœ, ๊ฐ€์žฅ ์œ ์„œ ๊นŠ๊ณ  ๊ฐ•๋ ฅํ•œ ๋ช…๋ช… ๊ทœ์น™์ž…๋‹ˆ๋‹ค.

/* ๐Ÿฆ ์˜ํ˜ธ: ํด๋ž˜์Šค ์ด๋ฆ„๋งŒ ๋ด๋„ HTML ๊ตฌ์กฐ๊ฐ€ ๊ทธ๋ ค์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. */
.card {}                   /* Block: ๋…๋ฆฝ์ ์ธ ์ปดํฌ๋„ŒํŠธ */
.card__title {}            /* Element: ์กฐ๊ฐ (__ ์‚ฌ์šฉ) */
.card__button--disabled {} /* Modifier: ์ƒํƒœ๋‚˜ ๋ณ€ํ˜• (-- ์‚ฌ์šฉ) */

๐Ÿฃ ์˜์ฒ : "์™€, ์ด๋ฆ„์€ ์ข€ ๊ธธ์–ด์ง€์ง€๋งŒ ์ค‘๋ณต๋  ์ผ์€ ์ ˆ๋Œ€ ์—†๊ฒ ๋„ค์š”! ๊ทธ๋ฆฌ๊ณ  ์ฃผ์„์ด ์—†์–ด๋„ ์–ด๋””์— ์“ฐ์ด๋Š” ๊ฑด์ง€ ๋ฐ”๋กœ ์•Œ๊ฒ ์–ด์š”."


๐Ÿ›ก๏ธ 2. ์Šค์ฝ”ํ”„ ๊ฒฉ๋ฆฌ: CSS Modules & CSS-in-JS

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ๋นŒ๋“œ ๋„๊ตฌ์˜ ํž˜์„ ๋นŒ๋ ค ํด๋ž˜์Šค ์ด๋ฆ„์„ ๊ณ ์œ ํ•˜๊ฒŒ(Hash) ๋ฐ”๊พธ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

  • CSS Modules: .title์ด ๋นŒ๋“œ ์‹œ .title_a8x2๋กœ ๋ณ€ํ•ด ๋‹ค๋ฅธ ํŒŒ์ผ๊ณผ ์ถฉ๋Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • CSS-in-JS (Styled-components, Emotion): ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜ ์•ˆ์— CSS๋ฅผ ๊ฐ€๋‘ก๋‹ˆ๋‹ค. "CSS๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์ผ๋ถ€๋‹ค"๋ผ๋Š” ์ฒ ํ•™์ž…๋‹ˆ๋‹ค.

๐Ÿฆ ์˜ํ˜ธ์˜ ์กฐ์–ธ:
"์ตœ๊ทผ์—๋Š” ๋Ÿฐํƒ€์ž„ ์˜ค๋ฒ„ํ—ค๋“œ ๋•Œ๋ฌธ์— Zero-runtime CSS-in-JS (Vanilla Extract ๋“ฑ)๋‚˜ Tailwind CSS๋กœ ํ๋ฆ„์ด ๋„˜์–ด๊ฐ€๊ณ  ์žˆ์ฃ . ๋„๊ตฌ๋Š” ๋ณ€ํ•˜์ง€๋งŒ '๊ฒฉ๋ฆฌ'์™€ '์œ ์ง€๋ณด์ˆ˜'๋ผ๋Š” ๋ณธ์งˆ์€ ๊ฐ™์Šต๋‹ˆ๋‹ค."


โšก 3. Utility-first: Tailwind์˜ ํ˜๋ช…

ํด๋ž˜์Šค๋ฅผ ์ƒˆ๋กœ ์ง“์ง€ ๋ง๊ณ , ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ์†์„ฑ๋“ค(flex, p-4, text-blue-500)์„ ์กฐ๋ฆฝํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

  • ์žฅ์ : ์ด๋ฆ„ ์ง“๋Š” ๊ณ ํ†ต์—์„œ ํ•ด๋ฐฉ๋ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ํ”„๋กœํ† ํƒ€์ดํ•‘์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹จ์ : HTML์ด ์ง€์ €๋ถ„ํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜์กด์„ฑ์ด ์ƒ๊น๋‹ˆ๋‹ค.

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

Q1. BEM ๋ฐฉ์‹์—์„œ ์š”์†Œ(Element)๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐํ˜ธ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

โœ… ์ •๋‹ต: __ (์ด์ค‘ ์–ธ๋”๋ฐ”)

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

  • ์›๋ฆฌ: BEM์€ Block__Element--Modifier ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ธ”๋ก ๋‚ด๋ถ€์˜ ๊ตฌ์„ฑ ์š”์†Œ์ž„์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋Š” __๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋‹ต ํ”ผ๋“œ๋ฐฑ: "์˜์ฒ  ๋‹˜, ํ•˜์ดํ”ˆ(-) ํ•˜๋‚˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋‹จ์–ด ์—ฐ๊ฒฐ์ด๊ณ , ํ•˜์ดํ”ˆ ๋‘ ๊ฐœ(--)๋Š” ์ƒํƒœ ๋ณ€ํ™”(Modifier)๋ฅผ ๋œปํ•ด์š”. ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋งˆ์„ธ์š”!"

Q2. CSS Modules๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ๊ธฐ์ˆ ์  ์ด๋“์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  1. CSS ํŒŒ์ผ ์šฉ๋Ÿ‰์ด ์ค„์–ด๋“ ๋‹ค.
  2. ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌํ˜„์ด ์‰ฌ์›Œ์ง„๋‹ค.
  3. ํด๋ž˜์Šค ์ด๋ฆ„์ด ์ „์—ญ์—์„œ ์ถฉ๋Œํ•˜๋Š” ๊ฒƒ์„ ์ž๋™์œผ๋กœ ๋ฐฉ์ง€ํ•œ๋‹ค.
  4. ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.

โœ… ์ •๋‹ต: 3. ํด๋ž˜์Šค ์ด๋ฆ„์ด ์ „์—ญ์—์„œ ์ถฉ๋Œํ•˜๋Š” ๊ฒƒ์„ ์ž๋™์œผ๋กœ ๋ฐฉ์ง€ํ•œ๋‹ค.

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

  • ์›๋ฆฌ: CSS Modules๋Š” ๋นŒ๋“œ ํƒ€์ž„์— ํด๋ž˜์Šค ์ด๋ฆ„ ๋’ค์— ๊ณ ์œ ํ•œ ํ•ด์‹œ๊ฐ’์„ ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค. ๋•๋ถ„์— ์—ฌ๋Ÿฌ ํŒŒ์ผ์—์„œ ๊ฐ™์€ ์ด๋ฆ„์„ ์จ๋„ ์„œ๋กœ ๊ฐ„์„ญํ•˜์ง€ ์•Š๋Š” ๋…๋ฆฝ์ ์ธ '์Šค์ฝ”ํ”„'๊ฐ€ ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋‹ต ํ”ผ๋“œ๋ฐฑ: "์˜์ฒ  ๋‹˜, ์ด์ œ ๋” ์ด์ƒ .title-final-final-v2 ๊ฐ™์€ ์ด๋ฆ„์„ ์ง€์„ ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๋œป์ด์—์š”. ํ•ด์‹œ์˜ ํž˜์„ ๋ฏฟ์œผ์„ธ์š”!"

Q3. [์˜์ฒ ์ด์˜ ํ…Œ์ŠคํŠธ ํƒ€์ž„: ์‹ค๋ฌด ๋”œ๋ ˆ๋งˆ]
์˜์ˆ˜ ๋‹˜์ด "์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ ์  ์ปค์ง€๊ณ  ์žˆ๋Š”๋ฐ, SASS์˜ ์ค‘์ฒฉ(Nesting) ๊ธฐ๋Šฅ์„ ์จ์„œ ์„ ํƒ์ž๋ฅผ ๋„ˆ๋ฌด ๊นŠ๊ฒŒ(์˜ˆ: .header nav ul li a) ์งœ๋†“์•„์„œ ์ˆ˜์ •์ด ๋„ˆ๋ฌด ํž˜๋“ค๋Œ€์š”"๋ผ๊ณ  ํ•˜์‹ญ๋‹ˆ๋‹ค. ์˜ํ˜ธ ๋ฆฌ๋“œ ๋‹˜์ด ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด "์„ ํƒ์ž์˜ ๊นŠ์ด๋ฅผ 1๋‹จ๊ณ„๋กœ ์œ ์ง€ํ•˜์ž"๊ณ  ๊ถŒํ•˜์…จ์Šต๋‹ˆ๋‹ค. ์˜์ฒ ์ด๊ฐ€ ์ด๋ฅผ ์œ„ํ•ด ๋„์ž…ํ•ด์•ผ ํ•  ๋ช…๋ช… ๊ทœ์น™์€?

โœ… ์ •๋‹ต: BEM (Block Element Modifier)

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

  • ์›๋ฆฌ ์„ค๋ช…: BEM์€ .block__element ์ฒ˜๋Ÿผ ๋‹จ์ผ ํด๋ž˜์Šค์— ๋ชจ๋“  ๊ณ„์ธต ์ •๋ณด๋ฅผ ๋‹ด์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ CSS๋ฅผ ์งค ๋•Œ ์ž์‹ ์„ ํƒ์ž(>)๋‚˜ ์ค‘์ฒฉ์„ ๊นŠ๊ฒŒ ์“ธ ํ•„์š”๊ฐ€ ์—†์–ด ๋ช…์‹œ๋„ ๊ด€๋ฆฌ์™€ ์„ฑ๋Šฅ ๋ฉด์—์„œ ์›”๋“ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋‹ต ํ”ผ๋“œ๋ฐฑ: "์˜์ฒ  ๋‹˜, ์ค‘์ฒฉ์„ ๋งŽ์ด ์“ฐ๋Š” ๊ฑด ๋‚˜์ค‘์— ๊ทธ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๋ณด๊ณ  ์‹ถ์ง€ ์•Š๊ฒŒ ๋งŒ๋“œ๋Š” ์ง€๋ฆ„๊ธธ์ž…๋‹ˆ๋‹ค. BEM์œผ๋กœ ํ‰๋ฉด์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ์„ธ์š”."
  • ๐Ÿ“Œ ํ•ต์‹ฌ ๊ธฐ์–ต๋ฒ•: "ํด๋ž˜์Šค ์ด๋ฆ„์€ ๊ธธ๊ฒŒ, ์„ ํƒ์ž ๊นŠ์ด๋Š” ์–•๊ฒŒ!"

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

์˜ค๋Š˜์€ ๋‚ด ํด๋ž˜์Šค ์ด๋ฆ„๋“ค์ด ์™œ ๊ทธ๋ ‡๊ฒŒ ์—‰๋ง์ด์—ˆ๋Š”์ง€ ๊นจ๋‹ฌ์•˜๋‹ค.
.title1, .title_final, .title_real_final... ์ด๋Ÿฐ ์ด๋ฆ„๋“ค๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฑ„์› ๋˜ ๊ณผ๊ฑฐ์˜ ๋‚ด๊ฐ€ ๋ถ€๋„๋Ÿฌ์›Œ์กŒ๋‹ค.
BEM์„ ์ฒ˜์Œ ๋ดค์„ ๋•Œ๋Š” __๋ž‘ --๊ฐ€ ์ง€์ €๋ถ„ํ•ด ๋ณด์˜€๋Š”๋ฐ, ๋ง‰์ƒ ์จ๋ณด๋‹ˆ ์ด๋ณด๋‹ค ๋…ผ๋ฆฌ์ ์ธ ๊ฒŒ ์—†๋‹ค.

๐Ÿ’ก "์•„ํ‚คํ…์ฒ˜๋Š” ์ œ์•ฝ์ด ์•„๋‹ˆ๋ผ ์ž์œ ๋‹ค. ๊ทœ์น™์„ ๋”ฐ๋ฅผ ๋•Œ ๋น„๋กœ์†Œ ๊ฑฐ๋Œ€ํ•œ ์ฝ”๋“œ์˜ ๋ฐ”๋‹ค์—์„œ ๊ธธ์„ ์žƒ์ง€ ์•Š์„ ์ž์œ ๋ฅผ ์–ป๋Š”๋‹ค."

์˜ํ˜ธ ๋‹˜์ด "๋„๊ตฌ๋Š” ์œ ํ–‰์„ ํƒ€์ง€๋งŒ, ์•„ํ‚คํ…์ฒ˜์  ์‚ฌ๊ณ ๋Š” ํ‰์ƒ ๊ฐ„๋‹ค"๋ผ๊ณ  ํ•˜์‹  ๋ง์ด ๊ธฐ์–ต์— ๋‚จ๋Š”๋‹ค.
Tailwind๋ฅผ ์“ฐ๋“  Styled-components๋ฅผ ์“ฐ๋“ , ๊ฒฐ๊ตญ '๊ด€์‹ฌ์‚ฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€'๊ฐ€ ํ•ต์‹ฌ์ด๋ผ๋Š” ๊ฑฐ์ง€.
์ง‘์— ๊ฐ€์„œ ๋‚ด ์—‰๋ง์ง„์ฐฝ์ธ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ํด๋ž˜์Šค ์ด๋ฆ„๋“ค๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ BEM์œผ๋กœ ์ˆ˜์ˆ ํ•ด์ค˜์•ผ๊ฒ ๋‹ค. ์˜ค๋Š˜๋„ ์„ฑ์žฅ ์™„๋ฃŒ! ๐Ÿ—๏ธ


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