[ํฐ๋] ํฐ๋ Android ์ ๋ค์ํ ๋์์ธ ํจํด
์๋
ํ์ธ์ ํฐํ์ ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ์ ์ฑํ์
๋๋ค๐๐๐๐๐
์ค๋์ ์๋๋ก์ด๋์ ๋ค์ํ ์ํคํ ์ณ ํจํด์ธ MVC, MVP, MVVM์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.๐จ
๐ฉ๐ป ๋์์ธ ํจํด
๋์์ธ ํจํด์ ์ํํธ์จ์ด ๊ฐ๋ฐ ๊ณผ์ ์์ ์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ํ ์ ํ์ ์ธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ์ํ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ํจํด์ ์ฝ๋๋ฅผ ๋ ๊ตฌ์กฐ์ ์ด๊ณ ์ ์ง๋ณด์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ณ , ๊ฐ๋ฐ์ ๊ฐ์ ๊ณตํต ์ธ์ด์ ๊ฐ๋ ์ ์ ๊ณตํ์ฌ ํ์ ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
๋์์ธ ํจํด ์ค์์๋ MVC, MVP, MVVM์ ์ํํธ์จ์ด ๊ณตํ์์ ๋ง์ด ์ฌ์ฉ๋๋ ์ํคํ ์ฒ ํจํด์ ๋๋ค. ์ด๋ฌํ ํจํด์ ์ฃผ๋ก UI์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ๊ณ , ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๋ฉฐ, ํ ์คํธ ๊ฐ๋ฅ์ฑ์ ๊ฐ์ ํ๋ ๋ฐ ๋์์ ์ค๋๋ค.
์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ์์๋ ์ด๋ฌํ ์ํคํ ์ฒ ํจํด ์ค ์ด๋ค ๊ฒ์ ์ ํํ ์ง๋ ํ๋ก์ ํธ์ ํน์ฑ๊ณผ ๊ฐ๋ฐ์ ํ์ ์ ํธ๋์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
์ด๋ฒ ํฌ์คํ ์ ํตํด์ ๊ฐ ํจํด์ ํน์ง์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
์๋๋ ๊ฐ ํจํด์ ์์ฝํ ๋ด์ฉ์ ๋๋ค.
- MVC (Model View Controller): MVC๋ ๋ชจ๋ธ(Model), ๋ทฐ(View), ์ปจํธ๋กค๋ฌ(Controller)๋ก ๊ตฌ์ฑ๋๋ฉฐ, UI์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์๋๋ก์ด๋์์ ๋ง์ด ์ฌ์ฉ๋์ง๋ง, ์ปจํธ๋กค๋ฌ์์ ๋ทฐ๋ฅผ ์ง์ ์กฐ์ํ๋ ๋ฑ์ ๋ฌธ์ ๋ก ์ธํด ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ ์ ์์ต๋๋ค.
- MVP (Model View Presenter): MVP๋ MVC์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค. ๋ชจ๋ธ์ ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํ๊ณ , ๋ทฐ๋ ํ๋ฉด ํํ์ ๋ด๋นํ๋ฉฐ, ํ๋ ์ ํฐ(Presenter)๋ ๋ทฐ์ ๋ชจ๋ธ ๊ฐ์ ์ค๊ฐ์ ์ญํ ์ ํฉ๋๋ค. MVP๋ ํ ์คํธ ์ฉ์ด์ฑ์ ๋์ด๊ณ , ๋ทฐ์ ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ์ ์ง๋ณด์๋ฅผ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
- MVVM (Model View ViewModel): MVVM์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ์ฌ ๋ทฐ์ ๋ทฐ๋ชจ๋ธ(ViewModel)์ ์ฐ๊ฒฐํ๋ ์ํคํ ์ฒ ํจํด์ ๋๋ค. ๋ทฐ๋ชจ๋ธ์ ๋ชจ๋ธ์ ๋ํผ๋ก์ ๋ทฐ์ ํ์ํ ๋ฐ์ดํฐ์ ์ํ๋ฅผ ์ ๊ณตํ๊ณ , ๋ทฐ๋ ๋ทฐ๋ชจ๋ธ์ ์ํ๋ฅผ ์๋์ผ๋ก ๋ฐ์ํฉ๋๋ค. ์ด๋ก์จ UI ์ ๋ฐ์ดํธ๋ฅผ ๊ฐํธํ๊ฒ ๊ด๋ฆฌํ๊ณ , ํ ์คํธ ์ฉ์ด์ฑ์ ๋์ด๋๋ฐ ๋์์ ์ค๋๋ค.
์๋ ๊ธ์ ํตํด ๋ ์์ธํ ๋ด์ฉ์ ์์๋ณด๊ฒ ์ต๋๋ค! ๐จ
๐ฉ๐ป ๋ชจ๋ธ ๋ทฐ ์ปจํธ๋กค๋ฌ(Model View Controller, MVC) ํจํด
- ๋ชจ๋ธ(Model)
๋ชจ๋ธ์ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ด๋ฆฌํ๋ ์ญํ ์ ํฉ๋๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํ์ ์ ๋ณด๋ฅผ ๋ํ๋ ๋๋ค. ๋ชจ๋ธ์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ค์ฌ์ ์ธ ๋ถ๋ถ์ผ๋ก, ๋ฐ์ดํฐ์ ์ํ ๋ณํ ๋ฐ ์กฐ์์ ๋ด๋นํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ ์ปจํธ๋กค๋ฌ๋ ๋ทฐ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋ฉฐ, ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์ด์ผ ํฉ๋๋ค.
- ๋ทฐ(View)
๋ทฐ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ํํํ๋ ์ญํ ์ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ์์ฉํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ, ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ํํํฉ๋๋ค. ๋ทฐ๋ ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ ์ปจํธ๋กค๋ฌ์ ์ ๋ฌํ๊ณ , ๋ชจ๋ธ์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํ๊ธฐ ์ํด ์ ๋ฐ์ดํธ๋ฅผ ์ํํฉ๋๋ค. ๋ทฐ๋ ๋ชจ๋ธ์ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ ๋ํ ์ดํด๋ฅผ ๊ฐ์ง ์์ผ๋ฉฐ, ๋ชจ๋ธ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ค๊ณ๋์ด์ผ ํฉ๋๋ค.
- ์ปจํธ๋กค๋ฌ(Controller)
์ปจํธ๋กค๋ฌ๋ ์ฌ์ฉ์์ ์ ๋ ฅ ๋ฐ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ณ , ๊ทธ์ ๋ฐ๋ผ ๋ชจ๋ธ์ ์ํ๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ ์ญํ ์ ํฉ๋๋ค. ์ฌ์ฉ์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํธ์์ฉ์ ์ค์ฌํ๋ฉฐ, ๋ชจ๋ธ๊ณผ ๋ทฐ ๊ฐ์ ํต์ ์ ๊ด๋ฆฌํฉ๋๋ค. ์ปจํธ๋กค๋ฌ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๊ณ , ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ ๋ ๋ชจ๋ธ์ ์กฐ์ํฉ๋๋ค. ์ด๋ก์จ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ชจ๋ธ ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ , ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ฐ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ ๋๋ค.
MVC ํจํด์ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ ๊ตฌ์กฐ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ ์ง๋ณด์ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด์ฃผ๋ ์ค์ํ ์ํคํ ์ฒ ํจํด ์ค ํ๋์ ๋๋ค. ์ด ํจํด์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ, ํํ, ์ ์ด ๋ถ๋ถ์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ ๋ถ๋ถ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ํ ์คํธํ ์ ์์ต๋๋ค. ์ด๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๐ฉ๐ป ๋ชจ๋ธ ๋ทฐ ํ๋ฆฌ์ ํฐ(Model View Presenter, MVP) ํจํด
MVP (Model View Presenter) ํจํด์ MVC ํจํด์ ์ผ๋ถ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ณ ์ดํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๋ฅผ ๋ ๋ชจ๋ํํ๊ณ ํ ์คํธ ๊ฐ๋ฅํ๋๋ก ๋ง๋ ํจํด์ ๋๋ค.
- ๋ชจ๋ธ(Model)
MVP์์์ ๋ชจ๋ธ์ ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํฉ๋๋ค. ์ด ์ญํ ์ MVC์ ๋ชจ๋ธ๊ณผ ์ ์ฌํฉ๋๋ค.
- ๋ทฐ(View)
๋ทฐ๋ Activity๋ Fragment์ ์ฐ๊ฒฐ๋๋ ๋์ , View ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํจ์ผ๋ก์จ Presenter์ ์ํธ์์ฉํฉ๋๋ค.
- ํ๋ฆฌ์ ํฐ(Presenter)
MVP์ ํต์ฌ์ Presenter์ ๋๋ค. ์ด๋ MVC์ ์ปจํธ๋กค๋ฌ ์ญํ ์ ํ์ง๋ง View์ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ง ์์ต๋๋ค. ๋์ Presenter ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ํธ์์ฉํ๋ฉฐ, ์ดํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๋ก์ง ๋ฐ ๋ทฐ ์ ๋ฐ์ดํธ ๋ก์ง์ ํฌํจํฉ๋๋ค. ์ด๋ก์จ ๋ชจ๋์ฑ, ์ ์ฐ์ฑ, ๊ทธ๋ฆฌ๊ณ ํ ์คํธ ์ฉ์ด์ฑ์ ๊ฐ์ ํฉ๋๋ค.
MVP ํจํด์ MVC์ ๋ฌ๋ฆฌ View์ Presenter ์ฌ์ด์ ๊ฒฐํฉ๋๋ฅผ ์ค์ด๊ณ , ๋น์ฆ๋์ค ๋ก์ง์ Presenter๋ก ์ด๋ํจ์ผ๋ก์จ Controller์ ๋ฌธ์ ์ ์ ํด๊ฒฐํฉ๋๋ค. ๊ทธ๋ฌ๋ Presenter๊ฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณต์กํด์ง ์ ์๊ณ , ์ถ๊ฐ ๋น์ฆ๋์ค ๋ก์ง์ ์์ฉํ๊ธฐ ์ฝ๋ค๋ ๋จ์ ์ด ์์ ์ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก MVP ํจํด์ ์ดํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๋ฅผ ๋ ๊ตฌ์กฐ์ ์ผ๋ก ๋ง๋ค์ด์ฃผ๊ณ ์ ์ง๋ณด์์ ํ ์คํธ๋ฅผ ์ฝ๊ฒํ ์ ์๋๋ก ๋์์ค๋๋ค. Presenter๋ฅผ ํตํด ๋ทฐ์ ๋ชจ๋ธ์ ๋ ์ ๋ถ๋ฆฌํ๊ณ , ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ํ์ฅ์ฑ์ ํฅ์์ํต๋๋ค.
๐ฉ๐ป ๋ชจ๋ธ ๋ทฐ ๋ทฐ๋ชจ๋ธ(Model View ViewModel, MVVM) ํจํด
MVVM (Model View ViewModel) ํจํด์ Android ์ฑ ๊ฐ๋ฐ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ํตํด ์ฌ์ด ํ ์คํธ์ ๋ชจ๋ํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ๋ทฐ(View)์ ๋ชจ๋ธ(Model)์ ์ฐ๊ฒฐํ๋ ์ฝ๋์ ์์ ์ค์ฌ์ค๋๋ค.
- ๋ชจ๋ธ(Model)
MVVM์์์ ๋ชจ๋ธ์ MVC์ ๋น์ทํ ์ญํ ์ ํฉ๋๋ค. ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ํฌํจํ๋ฉฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํ์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ๋ทฐ(View)
๋ทฐ๋ ViewModel์ ์ํด ๋ ธ์ถ๋๋ ๊ด์ฐฐ ๊ฐ๋ฅํ ๋ณ์ ๋ฐ ์์ ์ ๋ฐ์ธ๋ฉ๋ฉ๋๋ค. ์ด๋ก์จ ๋ทฐ๋ ViewModel์ ์ํ๋ฅผ ํ์ํ๊ณ ์ฌ์ฉ์์ ์ํธ์์ฉํฉ๋๋ค.
- ๋ทฐ๋ชจ๋ธ(ViewModel)
ViewModel์ Model์ ๋ํํ๊ณ ๋ทฐ์์ ํ์ํ ๊ด์ฐฐ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ ๋ทฐ์์ ๋ฐ์ํ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋ชจ๋ธ์ ์ ๋ฌํ๊ธฐ ์ํ ๋ฉ์๋๋ hooks๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ViewModel์ ๋ทฐ์ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ง ์์ต๋๋ค.
MVVM ํจํด์ ์ต์๋ฒ ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ์ต์๋ฒ ์ญํ ์ ViewModel์ด ์ํํฉ๋๋ค. ์ด ํจํด์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ์ฌ ๋ทฐ์ ViewModel ๊ฐ์ ๋ฐ์ดํฐ ํ๋ฆ์ ์๋ํํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
MVVM์ ์ฅ์ ์ค ํ๋๋ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ํ์ฉํ์ฌ ๋ทฐ์ ViewModel ์ฌ์ด์ ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ก์จ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ , ์ด์ ๊ฒ์๋ฌผ์ coroutine๊ณผ live data๋ฅผ ํ์ฉํ์ฌ UI ์ ๋ฐ์ดํธ๋ฅผ ๊ฐํธํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ MVVM ํจํด์ ๋จ์ ์ค ํ๋๋ ๋ทฐ์ ๋ณ์ ๋๋ ํํ์ ๋ชจ๋์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ ์ฉํ ์ ์์ด, ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ธ๋ถ์ Presentation ๋ ผ๋ฆฌ๊ฐ XML์ ์ฝ๋๋ฅผ ์ถ๊ฐํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ViewModel์์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๊ถ์ฅํ๋ฉฐ, ๋ทฐ ๋ฐ์ธ๋ฉ ํํ์์์ ๊ฐ์ ๊ณ์ฐํ๊ฑฐ๋ ํ์์ํค์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๐ฉ๐ป ๋ง์น๋ฉฐ
MVP์ MVVM์ ๋ชจ๋ ์ฑ์ ๋ชจ๋ํํ๊ณ ๋จ์ผ ์ฑ ์ ์์๋ก ๋ถํ ํ์ฌ ๊ฐ๋ฐํ๋ ๋ฐ ๋์์ ์ฃผ๋ฉฐ, ์ด๋ฅผ ํตํด ์ฝ๋์ ์ ์ง๋ณด์์ฑ๊ณผ ํ ์คํธ ์ฉ์ด์ฑ์ ํฅ์์ํต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ํคํ ์ฒ ํจํด์ ์ ํํ ๋์๋ ์ฑ์ ๊ท๋ชจ์ ๋ณต์ก์ฑ, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์ ํ์ ๊ฒฝํ๊ณผ ์ ํธ๋๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
MVC๋ ์์ ๊ท๋ชจ์ ์ฑ ๋๋ ๊ฐ๋จํ ํ๋ก์ ํธ์์ ์ ์๋ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ฑ์ ๊ท๋ชจ๊ฐ ์ปค์ง๊ฑฐ๋ ๋ผ์ด๋ธํ๊ณ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ ๊ฒฝ์ฐ, MVC์ ๊ฒฐํฉ๋ ๋ฌธ์ ์ ์ ์ง๋ณด์์ ์ด๋ ค์์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
MVP์ MVVM์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ ์๋ ํจํด์ผ๋ก, ์ฝ๋์ ๋ถ๋ฆฌ์ ๋ชจ๋ํ๋ฅผ ๊ฐ์กฐํ์ฌ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. MVVM์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ์ฌ UI ์ ๋ฐ์ดํธ๋ฅผ ๋ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ด ๋ ํ๋์ ์ธ ์ฑ ์ํคํ ์ฒ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ค์ํ ์ ์ ์ด๋ค ์ํคํ ์ฒ ํจํด์ ์ ํํ๋ ์ง, ํ์ฌ ๊ฐ๋ฐํ๋ ์ฑ์ ์๊ตฌ ์ฌํญ๊ณผ ํน์ฑ์ ๋ง๊ฒ ํจํด์ ์กฐ์ ํ๊ณ ์ ์ฉํด์ผ ํฉ๋๋ค. ๋ฌด์กฐ๊ฑด MVP ๋๋ MVVM์ ๋ฐ๋ฅด๋ ๊ฒ์ด ์๋๋ผ, ์ต์ ์ ๊ตฌ์กฐ๋ฅผ ์ ์ฉํ๊ณ ์ ๋ ธ๋ ฅํด์ผ ํฉ๋๋ค. ํจํด์ ๋๊ตฌ์ผ ๋ฟ์ด๋ฉฐ, ๊ทธ ๋๊ตฌ๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ๋๋๊ฐ ์ค์ํฉ๋๋ค.
๋ค์ ์ด์ผ๊ธฐ๋ ํฐ๋์ MVVM Clean Architecture์ผ๋ก ๋ฆฌํฉํ ๋งํ๋ ๊ณผ์ ์ ๋ด์๋ณด๊ฒ ์ต๋๋ค!๐
๋ค์ ๊ธ๋ ๊ธฐ๋ ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค:)๐ค
๊ฐ์ฌํฉ๋๋ค!!
โฌ๏ธ ์ง๊ธ ๊ตฌ๊ธ ํ๋ ์ด ์คํ ์ด์์ ํฐ๋ ๋ค์ด ๋ฐ๊ธฐ
https://play.google.com/store/apps/details?id=com.team7.tikkle&hl=ko-KR

๐ฉ Contact : wjdcogus6@gmail.com
๐ฒ SNS : https://www.instagram.com/chaeehyuny/
'๐ฉโ๐ป TECH' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TECH] ํด๋ฆฐ์ํคํ ์ฒ๋ฅผ ํฅํด์ ๐จ (0) | 2023.12.08 |
---|---|
[TECH] ์๋ฒ API ์ฑ๋ฅ๊ฐ์ ๊ธฐ(2) (0) | 2023.10.31 |
[TECH] ๊ฐ์ธ์ ๋ณด์ ๊ฐ๋ช ์ ๋ณด ๊ทธ๋ฆฌ๊ณ ์ต๋ช ์ ๋ณด๋? (1) | 2023.10.11 |
[TECH] ์๋ฒ API ์ฑ๋ฅ๊ฐ์ ๊ธฐ(1) (0) | 2023.09.27 |
[TECH] Kotlin Coroutine์ ์จ์ผํ๋ ์ด์ (0) | 2023.09.22 |