MVVM with Clean Architecture - Team-Nogari/Huhoe GitHub Wiki

MVVM

  • MVVM์„ ๋„์ž…ํ•˜์—ฌ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์™€ ๋ทฐ๋Š” ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ์—ญํ• ์—๋งŒ ์ง‘์ค‘ํ•˜๊ณ , ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ, ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์€ ๋ทฐ๋ชจ๋ธ์—์„œ ์ง„ํ–‰ํ•˜์—ฌ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Clean Architecture

  • Presentation Layer, Domain Layer, Data Layer๋กœ ์—ญํ• ๊ณผ ์˜์—ญ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Presentation Layer์—๋Š” ๋ทฐ, ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ, ๋ทฐ๋ชจ๋ธ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • Domain Layer์—๋Š” Entity(๋ชจ๋ธ), UseCase, Repository(Protocol)์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • Data Layer์—๋Š” DTO(๋„คํŠธ์›Œํฌ ๋ชจ๋ธ), Repository, Network Service๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Input/Output Modeling

  • ๋ทฐ๋ชจ๋ธ์— Input๊ณผ Output์„ ์ •์˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋ทฐ, ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋“ค์–ด์˜ค๋Š” ์ž…๋ ฅ ๊ฐ’์„ Input์œผ๋กœ ์ •์˜ํ•˜๊ณ  Input๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ ๋ทฐ์— ๋ณด์—ฌ์งˆ ๋ฐ์ดํ„ฐ๋ฅผ Output์œผ๋กœ ๋ฐ”์ธ๋”ฉ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ–ฅํ›„ MVMM-C ์ ์šฉ ์˜ˆ์ •