Model, View, Presenter(Lifecycle)

๊ฐœ๋ฐœ ๋‹จ์œ„

  • Page/Modal ๋‹น 1๊ฐœ์˜ Presenter, 1๊ฐœ์˜ View, 1๊ฐœ์˜ ViewModel ๋ฅผ ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ ์‚ผ๋Š”๋‹ค.

  • ๋ณต์žก๋„์— ๋”ฐ๋ผ ViewModel์ด๋‚˜ View๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ตœ์ข…์ ์œผ๋กœ๋Š” ๋‹จ์ผ View ํ˜•ํƒœ๋กœ โ€œํ•ฉ์ณโ€์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ.

  • ์‹ค์ œ MVP์—์„œ Model ์—ญํ• ์€ Repository๊ฐ€ ํ•˜๊ณ , ์ด Repository๋Š” ์—ฌ๋Ÿฌ๊ณณ์—์„œ ๊ณต์œ ๋˜์–ด์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. (์–ด๋‹ˆ์–ธ ์•„ํ‚คํ…์ฒ˜ ์ฐธ๊ณ )

์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ์— ๋Œ€ํ•ด

  • MVP ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•œ๋‹ค.

  • ๋‹ค๋งŒ, ํ”„๋กœ์ ํŠธ ์ „์ฒด์— ๊ฑธ์ณ์„œ 2-3ํšŒ ์ด์ƒ ๋ฐ˜๋ณต์ ์ธ ์‚ฌ์šฉ์ด ๋ฐœ๊ฒฌ๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ œํ•œ์ ์œผ๋กœ ํ˜‘์˜๋ฅผ ํ†ตํ•ด ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ถ”์ถœ

์‹ค์ œ ๋กœ์ง์€

  • Presenter๋Š” ๋ฐ˜๋“œ์‹œ UseCase๋ฅผ ํ†ตํ•ด ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, UseCase์—์„œ Repository๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ํ†ต์‹ (์„œ๋ฒ„, DB ๋“ฑ)์„ ์ฒ˜๋ฆฌ.

  • Repository๋Š” ๋‹ค์‹œ Gateway๋ฅผ ํ†ตํ•ด ์‹ค์ œ ํ†ต์‹ ์„ ๋‹ด๋‹น.

  • UseCase ๋ ˆ๋ฒจ์—์„œ๋Š” ํ†ต์‹  ๊ทœ์•ฝ, ํ”„๋กœํ† ์ฝœ ๋“ฑ์„ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•„๋„ ๋˜๊ฒŒ๋” ๊ฐœ๋ฐœ.

  • Gateway๋Š” ์‹ค์ œ ํ†ต์‹  ๊ทœ์•ฝ API ๋“ฑ์— ๋งž์ถ”์–ด ๊ฐœ๋ฐœ

  • Repository๊ฐ€ ์ถ”ํ›„์— UseCase์™€ Gateway์˜ ์ค‘๊ฐ„ ๋งค๊ฐœ์ฒด๋กœ ๊ฐ€์žฅ ๋‚˜์ค‘์— ๊ฐœ๋ฐœ๋จ.

Last updated