MVC - amorfati0310/javascript-vm GitHub Wiki

MVC, MVP , MVVM

mvc mvp mvvm ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋ฐ ์ปจํŠธ๋กค๋Ÿฌ์— ์—ญํ• ์— ๋”ฐ๋ผ์„œ ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€๋กœ๋‚˜ ๋ถ„๋ฆฌ๋œ๋‹ค.

๋‹ค ๊ณตํ†ต์ ์ธ ์ด๋Ÿฐ ๊ฐœ๋ฐœ ํŒจํ„ด์ด ๋‚˜์˜จ ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ ๋ทฐ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์„œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋Š˜๋ฆฌ์ž์ด๋‹ค!

  1. mvc๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋ถ€ํ„ฐ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๊ณ  ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ๋ชจ๋ธ์„ ์—…๋ฐ์ดํŠธ ์‹œํ‚ค๊ณ  ๋ชจ๋ธ์—์„œ ๋ทฐ๋กœ ๋ฐ”๋กœ update๋ฅผ ์‹œํ‚จ๋‹ค ์žฅ์ ์€ ๋ทฐ์™€ ๋ชจ๋ธ์˜ ๊ฐ„์„ญ์„ ํ”ผํ•ด์„œ ์ข€ ๋” ์œ ์—ฐํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ˜๋ฉด์— ๋ชจ๋ธ๊ณผ ๋ทฐ์˜ ์™„์ „ํ•œ ๋ถ„๋ฆฌ๊ฐ€ ์–ด๋ ค์šด ๋‹จ์ ์ด ์žˆ๋‹ค.

  2. ๊ธฐ์กด mvcํŒจํ„ด์—์„œ ๋ชจ๋ธ ๋ทฐ์˜ ์˜์กด์„ฑ์„ ๋ถ„๋ฆฌ์‹œํ‚ค๊ณ ์ž ๋ทฐ์—์„œ ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ๋‚˜๋จธ์ง€ ๋น„๋‘˜๊ธฐ ์—ญํ• ์€ ๋ชจ๋‘ v<->c <->m ์ด๋Ÿฐ ๊ด€๊ณ„ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ชจ๋“  ์ค‘๊ฐ„ ๋‹ค๋ฆฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” mvp๋ผ๋Š” ๋ชจ๋ธ์ด ๋‚˜์™”๋‹ค.

mvp์˜ ๋‹จ์ ์€ ๋ทฐ๋ž‘ presenter๊ฐ€ 1:1๋กœ ๊ฐ•ํ•œ ์˜์กด์„ฑ์„ ๊ฐ€์ง„๋‹ค๊ณ  ํ•œ๋‹ค.

  1. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž mvvmํŒจํ„ด์ด ๋‚˜์™”๋‹ค๊ณ  ํ•œ๋‹ค.

v->vm <-> model ์ด๋Ÿฐ ํŒจํ„ด์ธ๋ฐ ํ˜„์žฌ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ฃผ๋กœ ์“ฐ๋Š” ํŒจํ„ด ์—ฌ๊ธฐ์— ๋‘๊ฐ€์ง€ ํŒจํ„ด์ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ command Pattern๊ณผ data binding ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด mvp์™€์˜ ์ปจํŠธ๋กค๋Ÿฌ-view์˜ ์˜์กด์„ฑ์„ ๋ถ„๋ฆฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ ... ์ž˜ ๋ชจ๋ฅด๊ฒ ์Œ ๊ณต๋ถ€ํ•˜:3

์งˆ๋ฌธ?.?

  1. ๊ธฐ์กด mvcํŒจํ„ด์—์„œ c๋กœ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋Š”๋ฐ ์›น ํŽ˜์ด์ง€์—์„œ๋Š” ๋‹ค ๋ทฐ๋กœ ๋ถ€ํ„ฐ ์ž…๋ ฅ์ด ๋“ค์–ด ์˜ค๋Š” ๊ฒƒ ์•„๋‹Œ๊ฐ€.. ์ž…๋ ฅ์„ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•?
  2. mvvm๊ณผ mvp vm์œผ๋กœ์„œ ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์ž˜ ์™€๋‹ฟ์ง€๊ฐ€ ์•Š๋Š”๋‹ค.
  3. ์ปค๋งจ๋“œ ํŒจํ„ด๊ณผ data binding ๋ฌด์Šจ ํŒจํ„ด์ธ์ง€..์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.

์ฐธ๊ณ ํŽ˜์ด์ง€

โš ๏ธ **GitHub.com Fallback** โš ๏ธ