mvvm

MVVM

๋ฆฌ์•กํŠธ์—์„œ์˜ Container, PresenterํŒจํ„ด์œผ๋กœ ์„ค๋ช…๋  ์ˆ˜ ์žˆ๋Š” MVVM์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

View : ํ™”๋ฉด์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ, Presenter๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๋Š” ๋กœ์ง์ด ์กด์žฌํ•˜๋ฉด ์•ˆ ๋œ๋‹ค. ViewController : View์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ, Container๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•˜๋ฉฐ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜, setState๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ฐ€๊ณต ๋กœ์ง์ด ์กด์žฌํ•œ๋‹ค. ViewModel : Model์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•ด ์‰ฝ๊ฒŒ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“  ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. Model์—์„œ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๋Š” ๋กœ์ง์ด ํฌํ•จ๋œ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๋ทฐ ๋ชจ๋ธ์€ ์Šคํ”„๋ง์— ๋น„์œ ํ–ˆ์„ ๋•Œ dto์— ๊ฐ€๊น๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. Model : ๋ฐ์ดํ„ฐ ์†Œ์Šค ์—ญํ• ์„ ํ•œ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๋ชจ๋ธ์€ ์Šคํ”„๋ง์— ๋น„์œ ํ–ˆ์„ ๋•Œ Entity์— ๊ฐ€๊น๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. Provider : Container๋“ค์„ ์กฐํ•ฉํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. Container๊ฐ„ ์—ฐ๊ฒฐ๋งŒ์ด ๋ชฉ์ ์ด๋ฏ€๋กœ ๋กœ์ง์ด ์—†์–ด์•ผ ํ•œ๋‹ค.

์—ฌ๊ธฐ์—์„œ ViewController, ViewModel, Model์€ ๋กœ์ง์„ ํฌํ•จํ•˜๋ฏ€๋กœ ๊ฐ ์—ญํ• ๊ตฐ ๊ฐ„์˜ ์ฑ…์ž„์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค.

Last updated