Suhee Coding Archive
[๋์์ธ ํจํด] MVC ํจํด ๋ณธ๋ฌธ
๐ MVC ํจํด
Model, View, Controller๋ก ์ด๋ฃจ์ด์ง ๋์์ธ ํจํด์ด๋ค.
์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ ์์๋ฅผ ์ธ๊ฐ์ง ์ญํ ๋ก ๊ตฌ๋ถํ์ฌ ๊ฐ๋ฐ ํ๋ก์ธ์ค์์ ๊ฐ๊ฐ์ ๊ตฌ์ฑ ์์์๋ง ์ง์คํด์ ๊ฐ๋ฐํ ์ ์๋ค. ์ฌ์ฌ์ฉ์ฑ๊ณผ ํ์ฅ์ฑ์ด ์ฉ์ดํ๋ค๋ ์ฅ์ ์ด ์๊ณ , ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ณต์กํด์ง์๋ก ๋ชจ๋ธ๊ณผ ๋ทฐ์ ๊ด๊ณ๊ฐ ๋ณต์กํด์ง๋ ๋จ์ ์ด ์๋ค.

๐ Model
- ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ด๋ฆฌํ๋ค.
- ๋ทฐ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ ํ๋ฉด ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด ๋ชจ๋ธ์ ์์ฑํ๊ฑฐ๋ ๊ฐฑ์ ํ๋ค.
๐ View
- ๋ ์ด์์๊ณผ ํ๋ฉด์ ์ฒ๋ฆฌํฉ๋๋ค.
- ๋ชจ๋ธ์ด ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋ฅผ ๋ฐ๋ก ์ ์ฅํ์ง ์์์ผ ํ๋ฉฐ ๋จ์ํ ํ๋ฉด์ ํ์ํ๋ ์ ๋ณด๋ง ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
๐ Controller
- ๋ช ๋ น์ ๋ชจ๋ธ๊ณผ ๋ทฐ ๋ถ๋ถ์ผ๋ก ๋ผ์ฐํ ํฉ๋๋ค.
- ํ๋ ์ด์์ ๋ชจ๋ธ๊ณผ ํ๋ ์ด์์ ๋ทฐ๋ฅผ ์๋ ๋ค๋ฆฌ ์ญํ ์ ํ๋ฉฐ ์ด๋ฒคํธ ๋ฑ ๋ฉ์ธ ๋ก์ง์ ๋ด๋นํ๋ค.
- ๋ชจ๋ธ๊ณผ ๋ทฐ์ ์๋ช ์ฃผ๊ธฐ๋ ๊ด๋ฆฌํ๋ฉฐ, ๋ชจ๋ธ์ด๋ ๋ทฐ์ ๋ณ๊ฒฝ ํต์ง๋ฅผ ๋ฐ์ผ๋ฉด ์ด๋ฅผ ํด์ํ์ฌ ๊ฐ๊ฐ์ ๊ตฌ์ฑ ์์์ ํด๋น ๋ด์ฉ์ ๋ํด ์๋ ค์ค๋ค.
๐ ๋์
MVC ํจํด์ ๋์ ์์๋ ์๋์ ๊ฐ๋ค.
1. Controller์์ ์ฌ์ฉ์์ Action๋ค์ ๋ฐ๋๋ค.
3. Controller๋ Action์ ํ์ธํ๊ณ , Model์ ์ ๋ฐ์ดํธํ๋ค.
4. Controller๋ Model์ ํ์ํ View๋ฅผ ์ ํํ๋ค.
5. View๋ Model์ ์ด์ฉํด ํ๋ฉด์ ๋ํ๋ธ๋ค.
์ฐธ๊ณ : MVC์์ View๊ฐ ์ ๋ฐ์ดํธ ๋๋ ๋ฐฉ๋ฒ
- View๊ฐ Model์ ์ด์ฉํด ์ง์ ์ ๋ฐ์ดํธ ํ๋ ๋ฐฉ๋ฒ
- Model์์ View์๊ฒ Notifyํ์ฌ ์ ๋ฐ์ดํธ ํ๋ ๋ฐฉ๋ฒ
- View๊ฐ Polling์ผ๋ก ์ฃผ๊ธฐ์ ์ผ๋ก Model์ ๋ณ๊ฒฝ์ ๊ฐ์งํ์ฌ ์ ๋ฐ์ดํธ ํ๋ ๋ฐฉ๋ฒ
๐ ํน์ง
Controller๋ ์ฌ๋ฌ ๊ฐ์ View๋ฅผ ์ ํํ ์ ์๋ 1:n ๊ตฌ์กฐ์ด๋ค.
Controller๋ View๋ฅผ ์ ํํ ๋ฟ ์ง์ ์ ๋ฐ์ดํธํ์ง ์๋๋ค. (View๋ Controller๋ฅผ ์์ง ๋ชปํ๋ค.)
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๋์์ธ ํจํด] MVVM ํจํด (0) | 2022.12.14 |
|---|---|
| [๋์์ธ ํจํด] MVP ํจํด (0) | 2022.12.14 |
| [๋์์ธ ํจํด] ๋์์ธ ํจํด๊ณผ ์ํคํ ์ฒ ํจํด์ ์ฐจ์ด (0) | 2022.12.14 |
| [๋์์ธ ํจํด] ๋ ธ์ถ๋ชจ๋ ํจํด (0) | 2022.12.14 |
| [๋์์ธ ํจํด] ์ดํฐ๋ ์ดํฐ ํจํด (0) | 2022.12.14 |