๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿค2024 ์•ˆ๋“œ๋กœ์ด๋“œ/๐Ÿฟ ์˜ํ™” ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ์ผ์ง€

MVC , MVP, MVVM ๋“œ๋””์–ด ์ดํ•ดํ–ˆ๋‹ค

by hyeonha 2024. 12. 20.

๋ชฉ์ฐจ

    MVC

    M  : ๋ฐ์ดํ„ฐ
    V + C : Activity, Fragment ๋“ฑ 

     

     ๋‹จ์  

    - Activity/ Fragment์—์„œ Model์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ์ƒ๊ธด๋‹ค.

    - Model ๋‚ด๋ถ€ ๋กœ์ง์€ ์•Œ ํ•„์š”์—†์ด ๋ฐ์ดํ„ฐ๋งŒ UI์— ๋ฐ˜์˜ํ•ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ, Model์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค.

     

    ์ฒ˜์Œ์— ์ดํ•ดํ•  ๋•Œ Fragment๋ฅผ View๋กœ ๋ด์•ผํ• ์ง€ Controller๋กœ ๋ด์•ผํ• ์ง€ ํ˜ผ๋™๋˜์–ด ์–ด๋ ค์› ์ง€๋งŒ ๋‘˜๋‹ค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋‹ˆ ์ดํ•ด ์™„๋ฃŒ !! 

     

    MVP

    M:  Model

    V : Activity

    P  : Presenter

     

    ์ด ๊ฒฝ์šฐ Presenter์—์„œ Model ๊ณผ View์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ์ƒ๊ธด๋‹ค.

    Presenter๋Š” Model๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋งŒ ๋„˜๊ฒจ์ฃผ๋ฉด View์—์„œ ์•Œ์•„์„œ ํ™”๋ฉด UI์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ, ํ˜„์žฌ๋Š” View ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค. Model๋„ ๋งˆ์ฐฌ๊ฐ€์ง€

     

    MVVM

    ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜ค๊ฒŒ ๋œ ๊ฒƒ์ด MVVM์ด๋‹ค!!!

    MVVM์€ Model, View, ViewModel๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 

    ViewModel์€ Model์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญ ํ›„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. 

    View ๋Š”  ์ด๋ฒคํŠธ์— ๋”ฐ๋ผ ViewModel ๋‚ด๋ถ€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

    View์—์„œ๋Š” ViewModel์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

     

    ์ด๋ ‡๊ฒŒ ๋˜๋ฉด View์—์„œ๋Š” ๋ทฐ๋ชจ๋ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ธฐ๋งŒ ํ•˜๊ณ , ๋‚ด๋ถ€ ๋กœ์ง ์ฒ˜๋ฆฌ๋Š” ์•Œ์•„์„œ ํ•˜๊ฒŒ ๋œ๋‹ค.

    ViewModel์€ View์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

    728x90