Suhee Coding Archive

[๋””์ž์ธ ํŒจํ„ด] MVVM ํŒจํ„ด ๋ณธ๋ฌธ

CS

[๋””์ž์ธ ํŒจํ„ด] MVVM ํŒจํ„ด

sueee_y 2022. 12. 14. 11:59

๐Ÿ‘‰ MVVM  ํŒจํ„ด

MVC์˜ C์— ํ•ด๋‹นํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ทฐ๋ชจ๋ธ๋กœ ๋ฐ”๋€ ํŒจํ„ด์ด๋‹ค.

๋ทฐ๋ชจ๋ธ์€ ๋ทฐ๋ฅผ ๋” ์ถ”์ƒํ™”ํ•œ ๊ณ„์ธต์ด๋ฉฐ ์ปค๋งจ๋“œ์™€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค.

 

๐Ÿ‘‰ Model

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ์™€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.

๐Ÿ‘‰ View

์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ํ™”๋ฉด(UI) ๋ถ€๋ถ„์ด๋‹ค

๐Ÿ‘‰ View Model

View๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  View๋ฅผ ์œ„ํ•œ Model์ด๋‹ค. View๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ Model์ด์ž View๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.

๐Ÿ‘‰ ๋™์ž‘

MVVM ํŒจํ„ด์˜ ๋™์ž‘ ์ˆœ์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

1. ์‚ฌ์šฉ์ž์˜ Action๋“ค์€ View๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜จ๋‹ค.

2. View์— Action์ด ๋“ค์–ด์˜ค๋ฉด, Command ํŒจํ„ด์œผ๋กœ View Model์— Action์„ ์ „๋‹ฌํ•œ๋‹ค.

3. View Model์€ Model์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค.

4. Model์€ View Model์—๊ฒŒ ์š”์ฒญ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ตํ•œ๋‹ค.

6. View๋Š” View Model๊ณผ Data Bindingํ•˜์—ฌ ํ™”๋ฉด์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๐Ÿ‘‰ ํŠน์ง•

MVVM ํŒจํ„ด์€ Command ํŒจํ„ด๊ณผ Data Binding ๋‘ ๊ฐ€์ง€ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ View์™€ View Model ์‚ฌ์ด์˜ ์˜์กด์„ฑ์„ ์—†์•ด๋‹ค. View Model๊ณผ View๋Š” 1:n ๊ด€๊ณ„์ด๋‹ค.

๐Ÿ‘‰ ์žฅ์ 

MVVM ํŒจํ„ด์€ View์™€ Model ์‚ฌ์ด์˜ ์˜์กด์„ฑ์ด ์—†๋‹ค. ๋˜ํ•œ Command ํŒจํ„ด๊ณผ Data Binding์„ ์‚ฌ์šฉํ•˜์—ฌ View์™€ View Model ์‚ฌ์ด์˜ ์˜์กด์„ฑ ๋˜ํ•œ ์—†์•ค ๋””์ž์ธํŒจํ„ด์ด๋‹ค. ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„์€ ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰ ๋‹จ์ 

View Model์˜ ์„ค๊ณ„๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค.

Comments