
์ด๋ฒ ํฌ์คํ
์์๋ Android ๊ฐ๋ฐ์์ ์ clean architecture๋ฅผ ์ฌ์ฉํ๋์ง, ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ clean architecture์ ๊ดํด์ ๊ถ๊ธํ๋ ๊ฒ๋ค์ ๊ณต๋ถํด์ ์ ์ด ๋ณด๊ณ ์ ํ๋ค.
๋ด๊ฐ ๊ณต๋ถํ๋ฉด์ ์ฐธ๊ณ ํ ํฌ์คํ
๋ ํจ๊ป ๋จ๊ธธ ํ
๋ ๋ํ ๋ด์ฉ์ด ๊ถ๊ธํ๋ฉด ํ์ธํด ๋ณด๋ ๊ฒ๋ ์ข๊ฒ ๋ค.
clean architecture์ ์ ์
์ ์๋ ๋ค๋ฅธ ํฌ์คํ ์๋ ์์ฃผ ์ธ๊ธ๋๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๊ฒ ๋ค.
clean architecture๋ ์ํํธ์จ์ด ์์คํ ์ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ ๋ ์ง์ผ์ผ ํ ์์น๊ณผ ๋ฐฉ๋ฒ์ ์ ์ํ ๊ฐ๋ .
๋ณต์กํ ์ํํธ์จ์ด ์์คํ ์ ๋ณด๋ค ๊ด๋ฆฌ ๊ฐ๋ฅํ๊ณ ์ ์ง ๋ณด์ ๊ฐ๋ฅํ ํํ๋ก ๊ตฌ์ถํ๊ธฐ ์ํ ์ง์นจ์ ์ ๊ณตํ๋ค.
๊ฐ๋จํ๊ฒ ์์ฝํ์๋ฉด, ๊ท๋ชจ๊ฐ ํฐ ์ํํธ์จ์ด๋ฅผ ์ค๊ณํ ๋ ์ง์ผ์ผ ํ๋ ๊ตฌ์กฐ ๊ฐ์ ๊ฑฐ๋ผ๊ณ ์ดํดํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.

๊ทธ๋์ ์ ์ฐ๋๊ฐ?
์ฒ์์ ์ด ๊ฐ๋
์ ์ ํ์ ๋๋ ๊ทธ๋ฅ ์ข๊ตฌ๋ ํ๊ณ ์ฌ์ฉํ๋ ๊ธฐ์ต์ด ์๋ค.
์๊ฐ์ด ํ๋ฅด๊ณ ๋๋๊น ์ ์ด ๊ฐ๋
์ ์ ์ฉํด์ผ ํ๋์ง ๊ถ๊ธํด์ก๋ค.
์๋๋ ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํด์ ํ
์คํธ ์ฉ์ด์ฑ์ ๋์ผ ์ ์์ด์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์๊ณ ์์๋ค.
์ด๊ฒ๋ ์ ๋ต์ด์ง๋ง, ๋ค๋ฅธ ์ด์ ๊ฐ ๋ ์๋๋ผ.
- ํ์ฅ์ฑ
- ๊ณ์ธต ๊ฐ์ ๋ถ๋ฆฌ๋ก ๋ถ์์ฉ ์์ด ์์คํ ์ ํ์ฅํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์๋ค.
- โณ ๋ํผ์ ์ด์ง๋ง ์ด๋ multi module์ ์ด์ฉํด feature(๊ธฐ๋ฅ) ๋ณ๋ก module์ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ํฐ ๋์์ด ๋ ๊ฒ ๊ฐ๋ค.
- ์ฌ์ด ํ์
- ๊ตฌ๋ถ๋ ๊ณ์ธต๊ณผ ๊ฐ ์ฑ ์์ ๋ฐ๋ผ ๋ค์ด๋ฐ ๋ ํ์ผ๋ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ํน์ ์ฝ๋๋ฅผ ๊ฒ์ํ๊ณ ์ดํดํ๊ธฐ ์ฝ๋ค.
- โณ clean architecture๋ฅผ ์ ์ฉํด ๋ณธ ๊ฒฝํ์ด ์๋ค๋ฉด ์ถฉ๋ถํ ๊ณต๊ฐํ ์ ์์ ๊ฒ์ด๋ค.
- ํ์
์ฉ์ด์ฑ
์ ์ ์๋ clean architecture๋ ํ์ด ์ฑ์ ๊ฐ๊ฐ์ ๊ธฐ๋ฅ์ ๋์์ ์์ ํ๊ธฐ๊ฐ ์ฉ์ดํ๋ค.
โณ ์์ ์ด ๋งก์ ๊ธฐ๋ฅ์ clean architecture๋ก ๊ตฌํํ๋ฉด ๋ค๋ฅธ ํ์์ ์ฝ๋๋ฅผ ์นจํดํ๋ ๊ฒฝ์ฐ๋ฅผ ์ค์ผ ์ ์๋ค.
๋ค๋ฅธ ์ฅ์ ๋ค๋ ๋ง์ง๋ง ๋ด๊ฐ ๊ฐ์ฅ ๊ณต๊ฐ์ด ๊ฐ๋ ์ฅ์ ๋ค๋ก ๊ฐ์ ธ์ ๋ดค๋ค.
์ถ๊ฐ์ ์ธ ์ฅ์ ๋ค์ด ๊ถ๊ธํ๋ฉด ์๋ ํฌ์คํ
์ ํ์ธํด ๋ณด์.
์ฐธ๊ณ ํฌ์คํ
1, ์ฐธ๊ณ ํฌ์คํ
2
๊ทธ๋ฌ๋ฉด clean architecture๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํด์ผ ์ ๊ตฌํํ๋ค๊ณ ๋งํ ์ ์์๊น?
๋ฐ๋ก solid ์์น์ ์ค์ํ๋ฉด์ clean architecture๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด๋ค.
clean architecture์ solid ์์น
clean architecture์ solid ์์น๊ณผ ๊น์ ์ฐ๊ด์ด ์๋ค.
clean architecture๋ฅผ ๊ตฌํํ๋ฉด์ solid ์์น์ ์ค์ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
- ๋จ์ผ ์ฑ ์ ์์น(SRP)
- ํด๋์ค๋ ํ๋์ ์ฑ ์์ ๊ฐ์ ธ์ผ ํ๋ค. ํ๋์ ํด๋์ค์ ํ๋์ ํจ์๋ง ์กด์ฌํด์ผ ํ๋ค๋ ๊ฒ์ด ์๋. ํด๋์ค์ ์ฃผ์ ๊ฐ ์ฃผ์ฒด๊ฐ ๋์ด์ผ ํ๋ค
- ex) ๋์๊ด์ ์๋ก ๋ค๋ฉด, ๋์ถ ๋ฐ ๋ฐ๋ฉ์ ๊ด๋ฆฌํ๋ ํด๋์ค์์๋ ๋์ถ, ๋ฐ๋ฉ ํจ์๋ง, ๋์ ์ฌ๊ณ ๋ฅผ ๊ด๋ฆฌํ๋ ํด๋์ค์์๋ ๋์ ์ถ๊ฐ, ์ญ์ ํจ์๋ง ์์ด์ผ ํ๋ค.
- โณ clean architecture์์๋ ๊ฐ ๊ณ์ธต์๊ฒ ๋ช ํํ ์ฑ ์์ ๋ถ์ฌํด์ผ ํ๋ค. ๊ฐ์ ๊ณ์ธต์ด์ด๋ ๊ธฐ๋ฅ์ ๋ฐ๋ผ ์ ํํ ๊ตฌ๋ถํด ์ฃผ์ด์ผ ํ๋ค.
- ๊ฐ๋ฐฉ-ํ์ ์์น(OCP)
- ํ์ฅ์๋ ๊ฐ๋ฐฉ์ ์ด์ง๋ง ์์ ์๋ ํ์์ ์ด์ด์ผ ํ๋ค. ์ฆ, ์์ค ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ํด๋์ค์ ๋์์ ํ์ฅํ ์ ์์ด์ผ ํ๋ค.
- โณ clean architecture์์๋ ๊ธฐ์กด ๊ตฌํ ์ฝ๋๋ฅผ ์์ ํ์ง ์๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ด์ ํจ์๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
- ๋ฆฌ์ค์ฝํ ์นํ ์์น(ISP)
- ์์๋๋ ํด๋์ค๊ฐ ๋ถ๋ชจ ํด๋์ค์ ์ญํ ์ ์์ ํ ๋์ฒดํ ์ ์์ด์ผ ํ๋ค.
- ex) ์ง์ฌ๊ฐํ์ ๋์ด ๋๋น๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ง๋ง, ์ ์ฌ๊ฐํ์ ๋์ด์ ๋๋น๊ฐ ํจ๊ป ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ ์ ์ฌ๊ฐํ์ ์ง์ฌ๊ฐํ์ ํ์ ํ์ ์ผ๋ก ์ ์ ํ์ง ์๋ค.
- โณ repository๊ฐ data source์ ์์๋ค ์ค ์ด๋ค ๊ฒ์ ์ฌ์ฉํด๋ ๋์ผํ ์ญํ ์ ํด์ผ ํ๋ค.
- ์์์ ํตํด ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ๋ณด๋ค ๋ฉค๋ฒ ๋ณ์์ฒ๋ผ ๊ฐ์ง๊ณ ์์ผ๋ฉด ์์ํ์ง ๋ชปํ ํ์ฅ์ด ์ผ์ด๋ฌ์ ๋๋ ๋ฉค๋ฒ๋ณ์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ํํ๋ก ๋ค๋ฅธ ์ํฅ์ ๋ผ์น์ง ์๋๋ก ํ ์ ์๋ค.
- โณ use case์์ ์ฌ๋ฌ ๊ฐ์ repository๋ฅผ property๋ก ์ถ๊ฐ ๋๋ ๋ณ๊ฒฝํด์ ๋ก์ง์ ๊ตฌ์ฑํ ์ ์๊ณ , view model์์๋ ์ฌ๋ฌ ๊ฐ์ use case property๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น(ISP)
- ์ธํฐํ์ด์ค๋ ์ง๋์น๊ฒ ๊ด๋ฒ์ํ๊ฑฐ๋ ์ง๋์น๊ฒ ๋ง์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด ์ ๋๊ณ , ๊ทธ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฒด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌ๋์ด์ผ ํ๋ค.
- โณ clean architecture์์๋ ๊ฐ ๊ณ์ธต ๊ฐ์ ํต์ ์ ์ํด ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค. ์ด ์ธํฐํ์ด์ค๋ ๊ฐ๊ฐ์ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ๋ค๋ฅธ ๋ชฉ์ ์ ์ด์ฉ๋์ง ์๋๋ก ๊ตฌํํด์ผ ํ๋ค.
- ์์กด์ฑ ์ญ์ ์์น(DIP)
- ๊ณ ์์ค ๋ชจ๋์ ์ ์์ค ๋ชจ๋์ ๊ตฌํ์ ์์กดํ๋ฉด ์ ๋๋ค. ๋์ ์ ์์ค ๋ชจ๋์ด ๊ณ ์์ค ๋ชจ๋์์ ์ ์ํ ์ถ์ ํ์ ์ ์์กดํ๋ค.
- โณ clean architecture์์๋ ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ํ์ฉํด ํ์ ๋ชจ๋์ ๋ณ๊ฒฝ์ด ์์ ๋ชจ๋์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ์ค๊ณํด์ผ ํ๋ค.
์ถ๊ฐ์ ์ธ ์ ๋ณด๋ ์๋ ํฌ์คํ
์ ์ฐธ๊ณ ํ์.
https://www.pinslog.com/146
Clean Architecture๋ฅผ ์ดํดํ๊ธฐ ์ํด ์์๋ณด๋ SOLID ์์น
๋ค์ด๊ฐ๋ฉฐ Clean Architecture์ ํจ๊ป ๋ฑ์ฅํ๋ MVP, MVVM ํจํด ๋๋ ์ด์ ์ MVVM ํจํด์ ์ ์ฉํ๋ฉด ํด๋ฆฐ ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ ๊ฒ์ด๋ผ๊ณ ์ฐฉ๊ฐํ์๋ค. ํด๋ฆฐ ์ํคํ ์ฒ == MVVM ํจํด ์ด๋ ๊ฒ ์๊ฐํ๋ค๋ ์๋ฏธ๋ค. ๊ทธ
www.pinslog.com
clean architecture์ ๊ฐ ๊ณ์ธต์ ๊ตฌ์กฐ
clean architecture์ ๊ฐ ๊ณ์ธต์ data, domain, ui(presentation) layer๋ก ์ด๋ฃจ์ด์ง๋ค.
- data
์ฑ์์ ์ฒ๋ฆฌํ๋ ๋ค์ํ ์ ํ์ ๋ฐ์ดํฐ๋ณ ์ ์ฅ์ ํด๋์ค๋ก ๊ตฌ์ฑ๋๋ค.
๋ค๋ฅธ layer๋ data source์ ์ง์ ์ ๊ทผํด์๋ ์๋๋ค. data layer์ ์ง์ ์ ์ ํญ์ repository class ์ด์ด์ผ ํ๋ค.
repository์์ data source๋ฅผ ์ด์ฉํ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌ์ฑํ๋ค.
- repository
- data source
- doamin(์ ํ์ฌํญ)
๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ด๋ ์ฌ๋ฌ view model์์ ์ฌ์ฌ์ฉ๋๋ ๊ฐ๋จํ ๋น์ฆ๋์ค ๋ก์ง์ ์บก์ํํ๋ค.
๋ณต์ก์ฑ์ ์ฒ๋ฆฌํ๊ฑฐ๋ ์ฌ์ฌ์ฉ์ฑ์ ์ ํธํ๋ ๋ฑ ํ์ํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํด์ผ ํ๋ layer.
use case์์ data layer์ repository๋ฅผ ๋ถ๋ฌ์ ์บก์ํํ๋ค.
- use case
- ui(presentation)
ํ๋ฉด์ application ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ณ ์ฌ์ฉ์ ์ํธ์์ฉ์ ์งํํ๋ค.
์ฌ์ฉ์ ์ํธ์์ฉ ๋๋ ๋คํธ์ํฌ ์๋ต ๋ฑ์ผ๋ก ์ธํด ๋ฐ์ดํฐ๊ฐ ๋ณํ ๋๋ง๋ค ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ์ํ๋๋ก UI๊ฐ ์ ๋ฐ์ดํธ๋์ด์ผ ํ๋ค.
ui state๋ฅผ ์ ์ํ๊ณ view model์์ ui state๋ฅผ ์ด์ฉํด ui element์ state ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ค.
- ui elements
- view model
- ui state
์ํคํ
์ฒ ๊ตฌ์ฑ์ ๋ํ ๋ ์์ธํ ์ ๋ณด๋ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ .
https://developer.android.com/topic/architecture?hl=ko
์ฑ ์ํคํ ์ฒ ๊ฐ์ด๋ | Android Developers
์ด ํ์ด์ง๋ Cloud Translation API๋ฅผ ํตํด ๋ฒ์ญ๋์์ต๋๋ค. ์ฑ ์ํคํ ์ฒ ๊ฐ์ด๋ ์ปฌ๋ ์ ์ ์ฌ์ฉํด ์ ๋ฆฌํ๊ธฐ ๋ด ํ๊ฒฝ์ค์ ์ ๊ธฐ์ค์ผ๋ก ์ฝํ ์ธ ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฅํ์ธ์. ์ด ๊ฐ์ด๋์๋ ๊ณ ํ์ง์ ๊ฐ๋ ฅํ
developer.android.com
clean architecture์ hilt
์ด clean architecture๋ฅผ ๊ตฌํํ ๋ ํญ์ ๋ฐ๋ผ๋ค๋๋ ๊ฒ์ด ์์กด์ฑ ์ฃผ์
์ด๋ค.
๊ทธ์ค hilt๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ค.
์ clean architecture๋ฅผ ๊ตฌํํ ๋, hilt๋ฅผ ์ฌ์ฉํ๋ ๊ฑธ๊น?
hilt๋ ์๋์ ๊ฐ์ ์ฅ์ ์ด ์๋ค.
- ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ฝ๋ ๊ฐ์
- hilt๋ ์์กด์ฑ ์ฃผ์ ์ฝ๋ ๋๋ถ๋ถ์ ์์ฑํด ์ค์ Dagger์ ๋นํด ์์ฑํด์ผ ํ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ฝ๋์ ์์ ์ค์ฌ์ค๋ค.
- ์๋๋ก์ด๋ ์ปดํฌ๋ํธ์ ํตํฉ
- activity, fragment, view model ๋ฑ ์๋๋ก์ด๋ ์ปดํฌ๋ํธ์ ์ํํ๊ฒ ํตํฉ๋์ด ์ด๋ฌํ ํด๋์ค์ ์์กด์ฑ์ ์ฝ๊ฒ ์ฃผ์ ํ ์ ์๋ค. @AndroidEntryPoint์ @HiltViewModel์ด ์๋ค.
- ๋ชจ๋์ ์ํคํ ์ฒ ์ง์
- hilt๋ multi module project ํ๊ฒฝ์์๋ ์ ์๋ํ๋ค. ์ด๋ก ์ธํด ์์กด์ฑ์ ์ ์ํ๊ณ ํ์ํ ๊ณณ์ ์ฃผ์ ํ ์ ์๋ค.
์ด์ hilt๊ฐ ์์ ์ฅ์ ๋ค์ด ์์ด์ clean architecture์์ ์์กด์ฑ ์ฃผ์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก์จ ์ฐ์ด๋ ๊ฒ์ ์๊ฒ ๋ค.
ํ์ง๋ง ์ฌ๊ธฐ์ ๋ ๊ถ๊ธํด์ง๋ค.
clean architecture๋ฅผ ๊ตฌํํ ๋, ๊ผญ ์์กด์ฑ ์ฃผ์ ์ด ํ์ํ ๊ฑด๊ฐ?
๊ณต์ ๋ฌธ์์์๋ ์์กด์ฑ ์ฃผ์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ clean architecture๋ฅผ ๊ตฌํํ sample์ ์ ๊ณตํ๊ณ ์๋ค.
์์กด์ฑ ์ฃผ์ ์ด clean architecture์ ํ์์ ์ผ๋ก ์งํํด์ผ ํ๋ ์์ ์ด ์๋ ๊ฑด ์๊ฒ ๋๋ฐ ๊ทธ๋ฌ๋ฉด ์ ํด๋ ๋๋ ๊ฑฐ ์๋๊ฐ?
์ ๊ฐ์ ์๊ฐ์ด ๋ค์ด์ ์๋ฃ๋ฅผ ๋ ์ฐพ์๋ณด๊ฒ ๋์๋ค.
๊ผญ ์์กด์ฑ ์ฃผ์ ์ ํด์ผ ํ๋ ๊ฑธ๊น?
์๋ฌด๋ฆฌ ์ฐพ์๋ด๋ ์๋ฃ๋ค์ด ๋์ค์ง ์์์ AI(perplexity) ๊ธฐ๋ฐ ๋ํผ์
์ ์ ๋ฆฌํด ๋ณด๊ฒ ๋ค.
clean architecture์ ์ฅ์ ์ผ๋ก ๋๋ถ๋ถ์ด ์ด๋ ๊ฒ ์ธ๊ธํ๋ค.
- ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ
- ํ ์คํธ ์ฉ์ด์ฑ
clean architecture์์์ ํต์ฌ์ ์์กด์ฑ ๊ท์น์ด๋ค. ์์กด์ฑ ๊ท์น์ ๋ฐ๋ฅด๋ฉด ๋ด๋ถ layer๋ ์ธ๋ถ layer์ ์์กดํ๋ฉด ์ ๋๋ค.
์์กด์ฑ ์ฃผ์
์ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ด ๊ท์น์ ๋ฐ๋ฅผ ์๋ ์์ง๋ง, ์์กด์ฑ ์ฃผ์
์ ์ฌ์ฉํ๋ฉด ์ด ๊ท์น์ ๋ ์ฝ๊ฒ ์ค์ํ ์ ์๋ค.
์์กด์ฑ ์ฃผ์
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ hilt๋ฅผ ์ฌ์ฉํ๋ฉด ์์กด์ฑ ๊ด๋ฆฌ๊ฐ ๋ ๊ฐํธํด์ง๊ณ ์๋์ผ๋ก ์์กด์ฑ์ ์ฃผ์
ํ ์๋ ์๋ค.
์ ๋ฆฌ
์ด๋ฒ์ ๋ค์ํ clean architecture์ ๋ํ ์๋ฃ๋ค์ ์ฐพ์๋ณด๋ฉด์ clean architecture์๋ solid ์์น, ์์กด์ฑ ์ฃผ์
๊ณผ hilt ๋ฑ ๋ค์ํ ๊ฐ๋
๋ค์ด ์ฐ๊ด๋์ด ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค.
๋ค์ํ ๊ฐ๋
์ ์ฐพ์๋ณด๋ฉด์ ๊ณต๋ถํ๋ ๊ณ๊ธฐ๊ฐ ๋์๋ค.
๊ถ๊ธํ๋ ๊ฒ๋ค์ ์๋ฃ๋ค์ด ๋ง์ง ์์์ AI(perplexity) ๊ธฐ๋ฐ์ ๋ํผ์
์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ ์ ์ํด ๋ถํํ๋ค.
ํน์ ๋๋ฝ๋ ์ ๊ณผ ์ถ๊ฐํ ๊ฐ๋
์ด ์๋ค๋ฉด ์ ๋ณดํด ์ฃผ๋ฉด ๊ณ ๋ง๊ฒ ๋ค.
๋ค์์๋ clean architecture์ ํจ๊ป ์ค ํ์์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋์์ธ ํจํด์ธ mvvm์ ๋ํ ๊ณ ์ฐฐ์ ์งํํด ๋ณด๊ฒ ๋ค.
์ฌ์ค ๋ง๋ง ๊ณ ์ฐฐ์ด์ง ๊ทธ๋ฅ ๋ด๊ฐ ๊ถ๊ธํ๋ ๋ด์ฉ๋ค์ ์ ๋ฆฌํ๋ ํฌ์คํ
์ด๋ค.