Suhee Coding Archive

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

CS

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

sueee_y 2022. 12. 14. 11:43

๐Ÿ‘‰ 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๋ฅผ ์•Œ์ง€ ๋ชปํ•œ๋‹ค.)

Comments