Clean Architecture with MVVM C - boostcampwm-2021/iOS04-OwnMyWay GitHub Wiki

Untitled_Diagram drawio

MVVM Clean Architecture

์™œ ์‚ฌ์šฉํ–ˆ๋‚˜์š”?

  • Clean Architecture๋Š” Domain Layer๊ฐ€ ๋‹ค๋ฅธ Layer์— ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์šฉ์ดํ•˜๊ณ  Domain Layer๋ฅผ ์žฌ์‚ฌ์šฉ ๋ฐ ๊ต์ฒดํ•˜๊ธฐ ์ข‹๋‹ค๋Š” ์žฅ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • ViewController๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋Š”๋ฐ ์ด๋ฅผ UIKit์— ๋…๋ฆฝ์ ์ธ ViewModel์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ์จ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™”๋ฉด ์ด๋™์„ ๋‹ด๋‹นํ•˜๋Š” Coordinator๊ฐ€ ์กด์žฌํ•˜๊ณ  ViewModel์—์„œ ํ˜ธ์ถœํ•˜๋Š” ๊ตฌ์กฐ์ด์ง€๋งŒ, ViewModel์˜ UIKit ์˜์กด์„ฑ์„ ๋Š์–ด๋‚ด๊ธฐ ์œ„ํ•˜์—ฌ delegate ํŒจํ„ด์„ ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.


Coordinator

์™œ ์‚ฌ์šฉํ–ˆ๋‚˜์š”?

  • ํ•˜๋‚˜์˜ ํ™”๋ฉด์—์„œ ๋‹ค๋ฅธ ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜์„ ํ•  ๋•Œ ๋‹ค๋ฅธ ViewController๋ฅผ ์•Œ์•„์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. Coordinator ํŒจํ„ด์„ ์ ์šฉํ•˜๋ฉด ViewController ์‚ฌ์ด์˜ ์˜์กด์„ฑ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๊ธฐ์— MVVM+C๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€์ ์œผ๋กœ ViewController์—์„œ ํ™”๋ฉด์ „ํ™˜์˜ ๊ธฐ๋Šฅ ๋กœ์ง์ด ํฌํ•จ๋˜๊ฒŒ ๋œ๋‹ค๋ฉด ViewController ์ฝ”๋“œ์˜ ์–‘์ด ๋ฐฉ๋Œ€ํ•ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ฝ”๋””๋„ค์ดํ„ฐ๋กœ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ๋ฐฉ์ง€ํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
โš ๏ธ **GitHub.com Fallback** โš ๏ธ