๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป๊ฐœ๋ฐœ

CDN์œผ๋กœ ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ: Bootstrap๋ถ€ํ„ฐ Tailwind๊นŒ์ง€ ๋น„๊ต

by ๋ˆˆ๋ˆ„ :) 2024. 11. 6.

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์€ ๋ณต์žกํ•œ ์Šคํƒ€์ผ๋ง๊ณผ ๋‹ค์–‘ํ•œ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค.

 

ํŠนํžˆ, ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ , ์ผ๊ด€๋œ ๋””์ž์ธ์„ ์ ์šฉํ•˜๋ ค๋ฉด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์†Œ๊ฐœํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์€ ๋ชจ๋‘ CDN์„ ํ†ตํ•ด ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” CSS์™€ JavaScript ๊ธฐ๋ฐ˜์˜ ๋„๊ตฌ๋“ค์ž…๋‹ˆ๋‹ค.

 

Bootstrap, Bulma, Tailwind ๋“ฑ ์ธ๊ธฐ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํŠน์ง•์„ ๋น„๊ตํ•ด๋ณด๊ณ  ํ”„๋กœ์ ํŠธ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ•ด๋ณด์„ธ์š”.

 

 

 

Bootstrap: ๋ฐ˜์‘ํ˜• ๋””์ž์ธ๊ณผ ๋‹ค์ฑ„๋กœ์šด ์ปดํฌ๋„ŒํŠธ

 

 

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

ํŠน์ง• ์š”์•ฝ:

  • ๋ฐ˜์‘ํ˜• ๋””์ž์ธ, ๋ชจ๋ฐ”์ผ ์šฐ์„  ์ ‘๊ทผ ๋ฐฉ์‹
  • ๋‹ค์–‘ํ•œ ์ปดํฌ๋„ŒํŠธ ์ œ๊ณต (๋ฒ„ํŠผ, ํผ, ๋„ค๋น„๊ฒŒ์ด์…˜ ๋“ฑ)
  • ์‚ฌ์šฉ์ด ์‰ฝ๊ณ , ์ต์ˆ™ํ•œ ๋””์ž์ธ ์Šคํƒ€์ผ

Bulma: ์‹ฌํ”Œํ•จ์„ ๊ทน๋Œ€ํ™”ํ•œ Flexbox ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ

 

 

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

ํŠน์ง• ์š”์•ฝ:

  • ์‹ฌํ”Œํ•˜๊ณ  ์ง๊ด€์ ์ธ ๊ตฌ์กฐ
  • Flexbox ๊ธฐ๋ฐ˜ ๋ ˆ์ด์•„์›ƒ ์ œ๊ณต
  • ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ

Foundation: ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐํ•จ์„ ๊ฐ•์กฐํ•œ ํ”„๋ ˆ์ž„์›Œํฌ

 

 

Foundation์€ ๋” ์œ ์—ฐํ•˜๊ณ  ๊ธฐ์—…์šฉ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•œ ๊ณ ๊ธ‰ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์€ ๋ฌผ๋ก , ๋‹ค์–‘ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์™€ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ˆํ˜• ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์›น์‚ฌ์ดํŠธ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉํ•œ ์„ ํƒ์ง€์ž…๋‹ˆ๋‹ค.

ํŠน์ง• ์š”์•ฝ:

  • ๋ฐ˜์‘ํ˜• ๋””์ž์ธ๊ณผ ์œ ์—ฐํ•œ ์„ค์ • ๊ฐ€๋Šฅ
  • ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉ
  • ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ

Materialize: ๊ตฌ๊ธ€์˜ ๋จธํ‹ฐ๋ฆฌ์–ผ ๋””์ž์ธ ๊ฐ€์ด๋“œ ๊ธฐ๋ฐ˜

 

 

Materialize๋Š” ๊ตฌ๊ธ€์˜ ๋จธํ‹ฐ๋ฆฌ์–ผ ๋””์ž์ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ๋ จ๋œ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„ํŠผ, ์นด๋“œ, ๋ชจ๋‹ฌ ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ ํ˜„๋Œ€์ ์ธ ๋””์ž์ธ์„ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ง• ์š”์•ฝ:

  • ๊ตฌ๊ธ€์˜ ๋จธํ‹ฐ๋ฆฌ์–ผ ๋””์ž์ธ ์ ์šฉ
  • ์ •๋ˆ๋œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ œ๊ณต
  • ํ˜„๋Œ€์ ์ด๊ณ  ๊น”๋”ํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค

Semantic UI: ์˜๋ฏธ ์žˆ๋Š” HTML์„ ์œ„ํ•œ ์ž์—ฐ์Šค๋Ÿฌ์šด ํ”„๋ ˆ์ž„์›Œํฌ

 

 

Semantic UI๋Š” ์ž์—ฐ์–ด์ฒ˜๋Ÿผ ์ฝํžˆ๋Š” ํด๋ž˜์Šค๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ, ๊ฐœ๋ฐœ์ž๊ฐ€ HTML๊ณผ CSS๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์˜๋ฏธ์— ์ค‘์ ์„ ๋‘” ์„ค๊ณ„ ๋•๋ถ„์— ์ง๊ด€์ ์œผ๋กœ UI๋ฅผ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ง• ์š”์•ฝ:

  • ์˜๋ฏธ ์žˆ๋Š” HTML ์ž‘์„ฑ ๊ฐ€๋Šฅ
  • ์ง๊ด€์ ์ธ ํด๋ž˜์Šค ๋„ค์ด๋ฐ
  • ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ์™€ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ์šฉ์ด

Tailwind CSS: ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์˜ ๊ฐ•๋ ฅํ•œ ์Šคํƒ€์ผ๋ง ๋„๊ตฌ

 

 

Tailwind๋Š” ๊ธฐ์กด์˜ ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ๊ณผ ๋‹ฌ๋ฆฌ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๊ณ ์œ ํ•œ ์Šคํƒ€์ผ์„ ์ •์˜ํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ๋งค์šฐ ์œ ์—ฐํ•˜๋ฉฐ, ํŠนํžˆ ๋งž์ถคํ˜• ๋””์ž์ธ์„ ์š”๊ตฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ง• ์š”์•ฝ:

  • ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์˜ ๋งž์ถคํ˜• ์Šคํƒ€์ผ๋ง
  • ์ž์œ ๋กœ์šด ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ
  • ์ž‘๊ณ  ๊ฐ€๋ฒผ์šด CSS๋กœ ๋น ๋ฅธ ๋กœ๋”ฉ

UIkit, Spectre.css, Pure.css: ๊ฐ€๋ณ๊ณ  ๊ฐ„ํŽธํ•œ ์„ ํƒ์ง€

 

 

  • UIkit์€ ๊ฐ„๋‹จํ•œ ๋ชจ๋“ˆํ˜• ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋ฐ˜์‘ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.
  • Spectre.css๋Š” ๋งค์šฐ ๊ฐ€๋ณ๊ณ  ๊ธฐ๋ณธ์ ์ธ ์Šคํƒ€์ผ์„ ์ œ๊ณตํ•˜์—ฌ, ๊ฐ„ํŽธํ•˜๊ฒŒ ๋น ๋ฅธ ๊ฐœ๋ฐœ์„ ๋„์™€์ค๋‹ˆ๋‹ค.
  • Pure.css๋Š” Yahoo์—์„œ ๊ฐœ๋ฐœํ•œ ์ž‘์€ ๋ชจ๋“ˆ์‹ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์ตœ์†Œํ•œ์˜ CSS๋งŒ ์‚ฌ์šฉํ•ด ๊ฐ„๋‹จํ•œ ์Šคํƒ€์ผ๋ง์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์–ด๋–ค ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ•ด์•ผ ํ• ๊นŒ?

  • ๋น ๋ฅธ ๊ฐœ๋ฐœ๊ณผ ์ต์ˆ™ํ•œ ์Šคํƒ€์ผ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Bootstrap์ด๋‚˜ Bulma๊ฐ€ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์—…์šฉ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋ผ๋ฉด Foundation์ด ์ข‹์€ ์„ ํƒ์ž…๋‹ˆ๋‹ค.
  • ํ˜„๋Œ€์ ์ด๊ณ  ๊น”๋”ํ•œ ๋””์ž์ธ์„ ์›ํ•œ๋‹ค๋ฉด Materialize๊ฐ€ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ์ž์œ ๋„๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด Tailwind CSS๋ฅผ ๊ณ ๋ คํ•ด๋ณด์„ธ์š”.

 

 

๊ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ž์‹ ๋งŒ์˜ ๊ฐ•์ ์ด ์žˆ์œผ๋ฉฐ, ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถ”์–ด ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, CDN ๋งํฌ ํ•˜๋‚˜๋กœ ํ”„๋กœ์ ํŠธ์— ์Šคํƒ€์ผ๋ง์„ ์ถ”๊ฐ€ํ•ด๋ณด์„ธ์š”!