์ค๋์ MVVM ํจํด์ ๋ํด์ ๋ฐฐ์ ์ต๋๋ค. ์ด๋ ค์ ์ต๋๋ค.
MVVM ํจํด์ ์ฑ์ ํ์ฅ์ฑ๊ณผ ์ ์ง๋ณด์์ ํธ์์ฑ์ ๊ณ ๋ คํด์ ๊ผญ ์ํคํ ์ณ ์ ์ฉ์ด ํ์ํฉ๋๋ค.
MVVM ํจํด์ ๊ผญ ์์์ผํ๋ ์ํคํ ์ณ์ ๋๋ค.
Model:
View:
ViewModel:
์ด๋ ต๊ณ ํท๊ฐ๋ ธ๋๋ฐ์. ์ ์๋๊ป์ ์ฐน์๋ก ๋น์ ๋ก ์ค๋ช ์ ํด์ฃผ์ จ์ต๋๋ค.
์ด์ ๊ฐ์ด View๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ UI๋ฅผ ๋น์ ํ๊ณ , ViewModel์ View์ Model ์ฌ์ด์์ ์ํธ ์์ฉํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ๋น์ ํ๋ฉฐ, Model์ ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋น์ ํฉ๋๋ค. MVVM ํจํด์ ์ด๋ฌํ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์๋ฅผ ๋ถ๋ฆฌํ์ฌ ๊ฐ๋ฐ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
ViewModel์ ์ฑ์ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ํจํด์ ๋๋ค. ViewModel์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค (UI)์ ๋ฐ์ดํฐ ์์ค ๊ฐ์ ์ค๊ฐ์ ์ญํ ์ ํฉ๋๋ค. ์ฃผ๋ก MVVM ์ํคํ ์ฒ์์ ์ฌ์ฉ๋๋ฉฐ
Flutter์์ ViewModel์ ๊ตฌํํ๊ธฐ ์ํด ์ฃผ๋ก provider
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ GetX
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ ์ํ ๊ด๋ฆฌ ์๋ฃจ์
์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ViewModel์ ์ฝ๊ฒ ์์ฑํ๊ณ ์ฃผ์
ํ ์ ์์ผ๋ฉฐ, ์ฑ์ ๋ค๋ฅธ ๊ตฌ์ฑ ์์์์ ์์กด์ฑ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
ViewModel์ UI์ ๋ถ๋ฆฌ๋์ด ๋ ๋ฆฝ์ ์ผ๋ก ํ ์คํธํ ์ ์๋ ์ฅ์ ์ด ์์ผ๋ฉฐ, ์ฑ์ ๋ณต์ก์ฑ์ ์ค์ด๊ณ ์ ์ง ๋ณด์์ฑ์ ํฅ์์ํค๋ ๋ฐ ๋์์ ์ค๋๋ค. ๋ํ ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ๋ ํ์ ๊ณผ ๊ฐ์ UI ๋ณ๊ฒฝ์ ๋์ํ๊ธฐ์ ์ฉ์ดํ๋ฉฐ, ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ์ฑ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.