[Reference] Component Driven User Interfaces


1. Component Driven User Interfaces

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


2. Why components?

ํ˜„๋Œ€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ทธ ์–ด๋Š ๋•Œ๋ณด๋‹ค๋„ ๋ณต์žกํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋“ค์€ ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์—์„œ ์ œ๊ณต๋˜๋Š” ํšจ๊ณผ์ ์ด๊ณ  ๋งž์ถคํ™”๋œ ๊ฒฝํ—˜์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์™€ ๋””์ž์ด๋„ˆ๋“ค์€ UI์— ๋” ๋งŽ์€ ๋กœ์ง์„ ํ†ตํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์ปดํฌ๋„ŒํŠธ๋Š” ์ƒํƒœ๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์ƒํ˜ธ ๊ตํ™˜์„ฑ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ณต์žกํ•œ ํ™”๋ฉด์„ ๊ฐ„๋‹จํ•œ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ช…ํ™•ํ•œ API์™€ ๊ณ ์ •๋œ ์ƒํƒœ ์‹œํ€€์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ๋Š” ํ•„์š”์— ๋”ฐ๋ผ ๋ถ„ํ•ดํ•˜๊ณ  ์žฌ์กฐํ•ฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ UI๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


3. How to be Component Driven

  1. ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ : ๊ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“ค๊ณ  ๊ด€๋ จ ์ƒํƒœ๋ฅผ ์ •์˜
  2. ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฒฐํ•ฉํ•˜๊ธฐ : ์ž‘์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•จ๊ป˜ ์กฐํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”
  3. ํŽ˜์ด์ง€ ๊ฒฐํ•ฉ: ๋ณตํ•ฉ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ํŽ˜์ด์ง€ ๊ตฌ์ถ•
  4. ํ”„๋กœ์ ํŠธ์— ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ฉ : ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์•ฑ์— ํŽ˜์ด์ง€๋ฅผ ์ถ”๊ฐ€

4. Component Driven์˜ ์ด์ 

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

5. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์ด ์•„๋‹Œ UI

  • ํŽ˜์ด์ง€ ๊ธฐ๋ฐ˜ : ์›น์‚ฌ์ดํŠธ๋ฅผ ํŽ˜์ด์ง€์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐ ๋””์ž์ธ ํ”„๋กœ์„ธ์Šค ( ์žฌ์‚ฌ์šฉ์„ ํ•˜์ง€ ์•Š์Œ)
  • ํŽ˜์ด์ง€ ์ง€ํ–ฅ ๋„๊ตฌ : ๋ฌธ์„œ ํ‘œ์‹œ๋ฅผ ์ค‘์ ์œผ๋กœ ํ•˜๋Š” ๋„๊ตฌ๋“ค๋กœ, WordPress์™€ Drupal๊ณผ ๊ฐ™์€ ๊ฒƒ