MVC

"์œ ์ง€๋ณด์ˆ˜"๊ฐ€ ํŽธํ•ด์ง€๋Š” ์ฝ”๋“œ ๊ตฌ์„ฑ ๋ฐฉ์‹
Model : ๋ฐ์ดํ„ฐ์™€ ๊ด€๋ จ๋œ ๋ถ€๋ถ„ View: ์‚ฌ์šฉ์žํ•œํ…Œ ๋ณด์—ฌ์ง€๋Š” ๋ถ€๋ถ„ Controller : Model๊ณผ View๋ฅผ ์ด์–ด์ฃผ๋Š” ๋ถ€๋ถ„
5๊ฐ€์ง€ ๊ทœ์น™.
  1. Model์€ Controller์™€ View์— ์˜์กดํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. (Model ๋‚ด๋ถ€์— Controller์™€ View์— ๊ด€๋ จ๋œ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค.)
  1. View๋Š” Model์—๋งŒ ์˜์กดํ•ด์•ผ ํ•˜๊ณ , Controller์—๋Š” ์˜์กดํ•˜๋ฉด ์•ˆ ๋œ๋‹ค. (View ๋‚ด๋ถ€์— Model์˜ ์ฝ”๋“œ๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ , Controller์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค.)
  1. View๊ฐ€ Model๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ๋Š”, ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ฐ›์•„์•ผ ํ•œ๋‹ค.
  1. Controller๋Š” Model๊ณผ View์— ์˜์กดํ•ด๋„ ๋œ๋‹ค. (Controller๋‚ด๋ถ€์—๋Š” Model๊ณผ View์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.)
  1. View๊ณผ Model๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ, ๋ฐ˜๋“œ์‹œ Controller์—์„œ ๋ฐ›์•„์•ผ ํ•œ๋‹ค.

MVC ๋ชจ๋ธ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Model View Controller ์„ธ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•ด๋†“์€ ๋ฐฉ๋ฒ•
๋ชจ๋ธ1 : JSP (view) + JavaBean(Model) === ๊ตฌ์กฐ๊ฐ€๋‹จ์ˆœํ•˜๋‹ค. but, ์ถœ๋ ฅ๊ณผ ๋กœ์ง ์ฝ”๋“œ๊ฐ€ ์„์—ฌ jsp์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค.ํ”„๋ก ํŠธ์™€ ๋ฒก์—”๋“œ๊ฐ€ ํ˜ผ์žฌ๋˜์–ด ๋ถ„์—…์ด ์•ˆ์ข‹๋‹ค. ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค.
๋ชจ๋ธ2 : JavaBean(Model) + JSP(View) + ์„œ๋ธ”๋ฆฟ(Controler) === MVC : ๋ทฐ์™€ ๋กœ์ง์˜ ๋ถ„๋ฆฌ๋กœ ๋ชจ๋ธ1์— ๋น„ํ•ด ๋œ ๋ณต์žกํ•˜๊ณ , ๋ถ„์—…์ด ์šฉ์ดํ•˜๊ณ  ๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค. ๋ชจ๋ธ 1์— ๋น„ํ•ด ์Šต๋“์ด ์–ด๋ ต๊ณ  ์ž‘์—…๋Ÿ‰์ด ๋งŽ๋‹ค.
MVC์˜ ํ๋ฆ„ :
  1. ์‚ฌ์šฉ์ž๋Š” ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์š”์ฒญ์„ ์ปจํŠธ๋กค๋Ÿฌ์— ๋ณด๋‚ธ๋‹ค.
  1. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ณ , ๋ชจ๋ธ์€ ์•Œ๋งž์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  1. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๋ทฐ๋ฅผ ์„ ํƒํ•œ๋‹ค.
  1. ์„ ํƒ๋œ ๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋งž๋Š” ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค€๋‹ค. ์ด๋•Œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๋ฐ์ดํ„ฐ๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ์ „๋‹ฌ ๋ฐ›๋Š”๋‹ค.
Model === ๊ฐ’๊ณผ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด.
View === ๋ชจ๋ธ์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ์˜ ์‹œ๊ฐํ™”
Controller === ๋ชจ๋ธ ๊ฐ์ฒด๋กœ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ œ์–ด, ๋ทฐ์™€ ๋ชจ๋ธ์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌ.

why MVC?

๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ ์ฝ”๋“œ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ์œ„ํ•ด, ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ตฌํ˜„์ž๋“ค ๊ฐ„์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด

MVC์—์„œ ์ž์ฃผ ์‹ค์ˆ˜ํ•˜๋Š” ๋ถ€๋ถ„

  1. Model์—์„œ View์˜ ์ ‘๊ทผ ๋˜๋Š” ์—ญํ•  ์ˆ˜ํ–‰
  1. View์—์„œ ์ผ์–ด๋‚˜๋Š” '๊ณผํ•œ'๊ฐ’ ๊ฒ€์ฆ๊ณผ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ -> ๋‹จ์ผ์ฑ…์ž„์›์น™ ์œ„๋ฐ˜
  1. View์—์„œ ์ผ์–ด๋‚˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
ย