ํ”„๋ŸฐํŠธ์—”๋“œ CSS ๋ฐฉ๋ฒ•๋ก ์€ ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๋‚ด์—์„œ ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ž˜ ๊ตฌ์„ฑ๋œ CSS ์Šคํƒ€์ผ๊ณผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์žˆ์–ด ๊ตฌ์กฐํ™”๋œ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๊ทœ์น™์˜ ๋ชจ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. CSS(Cascading Style Sheets)๋Š” ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์–‘๊ณผ ๋А๋‚Œ์„ ์„ค๋ช…ํ•˜๊ณ  ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ์žฅํ•จ์— ๋”ฐ๋ผ CSS๋Š” ๋ณต์žกํ•ด์ง€๋ฉฐ, ์ด๋กœ ์ธํ•ด ํŠน์ •์„ฑ ์ „์Ÿ, ์ฝ”๋“œ ์ค‘๋ณต, ๊ฐœ๋ฐœ์ž ํ˜ผ๋ž€ ๋“ฑ ์ˆ˜๋งŽ์€ ๋‹จ์ ์ด ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋ก ์„ ํ™œ์šฉํ•จ์œผ๋กœ์จ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ๋ชจ๋“ˆ์‹ CSS ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ๋ฐ ๊ธฐ์ˆ ์ด ํ™•๋ฆฝ๋˜์–ด ๋ณด๋‹ค ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ ์ƒํƒœ๊ณ„์˜ ํ•„์ˆ˜์ ์ธ ๋ถ€๋ถ„์ธ AppMaster CSS๋ฅผ ํฌํ•จํ•œ ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ์„ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์€ drag-and-drop ์ธํ„ฐํŽ˜์ด์Šค, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋””์ž์ด๋„ˆ ๋ฐ ์›Œํฌํ”Œ๋กœ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•˜์—ฌ ํ”„๋ŸฐํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ UI ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ค‘์‹ฌ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ์ƒˆ ๋ฒ„์ „์„ ์ œ์ถœํ•˜์ง€ ์•Š๊ณ ๋„ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๋กœ์ง์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ ์Šคํƒ€์ผ์„ ์œ ์ง€ํ•˜๊ณ  ํ™•์žฅํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹จ์ˆœํ™”๋ฉ๋‹ˆ๋‹ค.

์ธ๊ธฐ ์žˆ๋Š” ํ”„๋ŸฐํŠธ์—”๋“œ CSS ๋ฐฉ๋ฒ•๋ก ์—๋Š” BEM(๋ธ”๋ก, ์š”์†Œ, ์ˆ˜์ •์ž), SMACSS(CSS๋ฅผ ์œ„ํ•œ ํ™•์žฅ ๊ฐ€๋Šฅ ๋ฐ ๋ชจ๋“ˆํ˜• ์•„ํ‚คํ…์ฒ˜), OOCSS(๊ฐ์ฒด ์ง€ํ–ฅ CSS), ITCSS(์—ญ์‚ผ๊ฐํ˜• CSS) ๋ฐ Atomic Design์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•๋ก ์€ CSS ๋‚ด์˜ ํŠน์ • ๋ฌธ์ œ์ ์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋ฉฐ ์ฝ”๋“œ์˜ ํ’ˆ์งˆ, ์ผ๊ด€์„ฑ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ์„ฑ์— ๋„์›€์ด ๋˜๋Š” ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

BEM์€ Block, Element, Modifier์˜ ์•ฝ์ž์ด๋ฉฐ UI ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋…ผ๋ฆฌ์  ๋ธ”๋ก, ์š”์†Œ ๋ฐ ์ˆ˜์ •์ž๋กœ ๋‚˜๋ˆ„๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๋Š” ์ธ๊ธฐ ์žˆ๋Š” ๊ตฌ์„ฑ ์ค‘์‹ฌ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ผ๊ด€๋œ ๋ช…๋ช… ๊ทœ์น™์„ ์ œ๊ณตํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ฝ”๋“œ ์กฐ๊ฐ์„ ์žฌ์‚ฌ์šฉํ•˜๋ฉฐ ํŠน์ •์„ฑ ์ถฉ๋Œ์„ ์ค„์—ฌ ๋ชจ๋“ˆ์‹ ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค. BEM์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ฃผ๋ณ€ ํ™˜๊ฒฝ์— ๋œ ์˜์กดํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ๋ฅผ ๋”์šฑ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

SMACSS(Scalable and Modular Architecture for CSS)๋Š” CSS ๊ทœ์น™์„ ๊ธฐ๋ณธ, ๋ ˆ์ด์•„์›ƒ, ๋ชจ๋“ˆ, ์ƒํƒœ ๋ฐ ํ…Œ๋งˆ์˜ ๋‹ค์„ฏ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๋„๋ก ๊ถŒ์žฅํ•˜๋Š” CSS ์•„ํ‚คํ…์ฒ˜ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„๋ฅ˜๋Š” ์ฝ”๋“œ ๊ตฌ์„ฑ์„ ์ตœ์ ํ™”ํ•˜์—ฌ ํƒ์ƒ‰ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. SMACSS๋Š” ๊ณ ์œ ํ•œ ํ”„๋กœ์ ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์œ ์—ฐํ•˜๋ฉด์„œ๋„ ์ฝ”๋“œ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ๋ชจ๋“ˆ์‹ ๋ฐ ๊ตฌ์กฐ์  ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ด‰์ง„ํ•˜์—ฌ ์šฐ๋ ค ์‚ฌํ•ญ์˜ ๋ถ„๋ฆฌ๋ฅผ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

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

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

Atomic Design์€ UI ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๋ชจ๋“ˆ์‹ ๋ฐ ๊ณ„์ธต์  ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ด‰์ง„ํ•˜๋Š” ํ”„๋ŸฐํŠธ์—”๋“œ CSS ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ๋””์ž์ธ๊ณผ ์ฝ”๋“œ๋ฅผ ์›์ž, ๋ถ„์ž, ์œ ๊ธฐ์ฒด, ํ…œํ”Œ๋ฆฟ ๋ฐ ํŽ˜์ด์ง€์˜ ๋‹ค์„ฏ ๊ฐ€์ง€ ์ˆ˜์ค€์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ๊ฐ ๋ ˆ๋ฒจ์—๋Š” ๋” ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ฒฐํ•ฉ๋œ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์ฒด๊ณ„์ ์ธ ์„ค๊ณ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค. Atomic Design์€ ์›์ž์—์„œ ํŽ˜์ด์ง€๊นŒ์ง€ ์ƒํ–ฅ์‹ ๋ฐฉ์‹์œผ๋กœ ์ž‘์—…ํ•จ์œผ๋กœ์จ UI ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค์–‘ํ•œ ์š”์†Œ์— ๊ฑธ์ณ ์ผ๊ด€๋œ ์Šคํƒ€์ผ๊ณผ ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ฐ–๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์˜ฌ๋ฐ”๋ฅธ ํ”„๋ŸฐํŠธ์—”๋“œ CSS ๋ฐฉ๋ฒ•๋ก ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์€ ํ”„๋กœ์ ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ, ํŒ€ ์„ ํ˜ธ๋„ ๋ฐ ๋ชฉํ‘œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•๋ก ์„ ์ผ๊ด€๋˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด CSS ์ฝ”๋“œ์˜ ์œ ์ง€ ๊ด€๋ฆฌ์„ฑ, ๊ฐ€๋…์„ฑ ๋ฐ ํ™•์žฅ์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์–ด ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ์ด ํ–ฅ์ƒ๋˜๊ณ  ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๊ธฐ์ˆ  ๋ถ€์ฑ„๊ฐ€ ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vue3 ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ JS/TS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” AppMaster ์˜ no-code ํ”Œ๋žซํผ์€ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์—์„œ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•๋ก ์„ ์ง€์›ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์™€ ์›Œํฌ๋กœ๋“œ์— ๋งž์ถฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ์‰ฝ๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ŸฐํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.