๐Ÿ“Œ MVC ํŒจํ„ด


MVC ํŒจํ„ด

  • ๋””์ž์ธ ํŒจํ„ด
  • Model View Controller 3๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„ํ•œ ํŒจํ„ด
  • ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธํ•ด์ง€๋Š” ์ฝ”๋“œ ๊ตฌ์„ฑ ๋ฐฉ์‹

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ณ์˜ ์—ญ์‚ฌ

(JSP๋กœ ๊ตฌ์„ฑํ•œ) ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•„ํ‚คํ…์ณ : ๋ชจ๋ธ1

  • ๊ตฌ์„ฑ : JSP + JavaBeand(Service)
  • ๋ทฐ์™€ ๋กœ์ง์ด ์„ž์ž„
  • ์žฅ์  : ๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœ
  • ๋‹จ์  : ์ถœ๋ ฅ๊ณผ ๋กœ์ง ์ฝ”๋“œ๊ฐ€ ์„ž์—ฌ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค.

(JSP๋กœ ๊ตฌ์„ฑํ•œ) ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•„ํ‚คํ…์ณ : ๋ชจ๋ธ2

  • ๊ตฌ์„ฑ : JavaBean(Service) + JSP + ์„œ๋ธ”๋ฆฟ
  • MVC ๊ตฌ์กฐ
  • ์žฅ์  : ๋ทฐ์™€ ๋กœ์ง์ด ๋ถ„๋ฆฌ๋˜์–ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค.
  • ๋‹จ์  : ๋ณต์žกํ•˜๋ฏ€๋กœ ์ž‘์€ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์˜คํžˆ๋ ค ๊ณผํ•  ์ˆ˜ ์žˆ๋‹ค.

MVC ํ๋ฆ„

  1. ์‚ฌ์šฉ์ž๋Š” ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์š”์ฒญ์„ ์ปจํŠธ๋กค๋Ÿฌ์— ๋ณด๋‚ธ๋‹ค.
  2. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ณ , ๋ชจ๋ธ์€ ์•Œ๋งž์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  3. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๊ฐ€์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๋ทฐ๋ฅผ ์„ ํƒํ•œ๋‹ค.
  4. ์„ ํƒ๋œ ๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋งž๋Š” ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค€๋‹ค. ์ด ๋•Œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๋ฐ์ดํ„ฐ๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค.

Model

  • ๊ฐ’๊ณผ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด
  • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰

View

  • ๋ชจ๋ธ์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ์˜ ์‹œ๊ฐํ™”

Controller

  • ๋ชจ๋ธ ๊ฐ์ฒด๋กœ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ œ์–ด
  • ๋ชจ๋ธ๊ณผ ๋ทฐ์˜ ์ค‘๊ฐœ์ž ์—ญํ• 
  • ๋ทฐ์™€ ๋ชจ๋ธ์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌ

Why MVC?

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

MVC ๋งŽ์ด ์‹ค์ˆ˜ํ•˜๋Š” ๋ถ€๋ถ„๋“คโ€ฆ

Model์—์„œ View์˜ ์ ‘๊ทผ ๋˜๋Š” ์—ญํ•  ์ˆ˜ํ–‰

  • ๋„๋ฉ”์ธ์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์•„๋‹Œ ์ถœ๋ ฅ์— ๋Œ€ํ•œ ๋กœ์ง์€ ๋ณ„๋„๋กœ ๋ถ„๋ฆฌํ•˜์ž
    • ex) toString()

View์—์„œ ์ผ์–ด๋‚˜๋Š” ๊ณผํ•œ ๊ฐ’ ๊ฒ€์ฆ๊ณผ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

  • View์—์„œ ๊ฒ€์ฆ์„ ํ•˜๋ฉด ๋’ค์˜ ๋กœ์ง์€ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋˜๋‹ˆ ํŽธ๋ฆฌํ•˜๋‹ค๊ณ ๋Š” ๋Š๋‚„ ์ˆ˜ ์žˆ์Œ
  • ํ•˜์ง€๋งŒ ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์„ ์œ„๋ฐ˜ํ•จ (์ž…๋ ฅ ์ฑ„๋„์ด ๋‹ฌ๋ผ์งˆ ๊ฒฝ์šฐ ์œ ํšจ์„ฑ ํ…Œํฌ ๋กœ์ง๋„ ์˜ฎ๊ฒจ์•ผํ•จ)
  • ๊ฐ’ ํ˜•์‹์€ ์œ ํšจํ•˜์ง€๋งŒ, ๋„๋ฉ”์ธ ๋ชจ๋ธ์—์„œ ํ™•์ธํ•ด์•ผํ•  ๋ถ€๋ถ„๋“ค์€ ์ƒ์„ฑ์ž์—์„œ ์ฒดํฌ
    • ex) ์ด๋ฆ„์€ ๋ช‡ ๊ธ€์ž ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค.

View์—์„œ ์ผ์–ด๋‚˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง

  • ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ชจ๋ธ๋ผ๋ฆฌ ์—ฐ์‚ฐ์„ ํ•˜๋Š” ๋กœ์ง

Controller๋Š” ์ตœ๋Œ€ํ•œ ๊ฐ€๋ณ๊ฒŒ

  • ๋กœ์ง์€ ์ตœ๋Œ€ํ•œ ๋ฐฐ์ œํ•˜๊ณ  model๊ณผ view์˜ ์—ฐ๊ฒฐ ์—ญํ• ๋งŒ ํ•˜๋„๋ก ๊ตฌํ˜„

Service์˜ ๋“ฑ์žฅ (์ง€๊ธˆ์€ ์ด๋Ÿฐ๊ฒŒ ์žˆ๊ตฌ๋‚˜ ์ •๋„๋งŒ )

Controller์—์„œ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•œ๋‹ค.

  • ๋ณ„๋„์˜ ๊ฐ์ฒด๋กœ ๋ถ„๋ฆฌ
  • ๋ณ„๋„์˜ ๋ฉ”์„œ๋“œ๋กœ ๋ถ„์ด

์ด๋Ÿฌ๋‹ค ์„œ๋น„์Šค ๋ ˆ์ด์–ด๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค!

Service๋ž€?

  • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด
  • ๋น„์ฆˆ๋‹ˆ์Šค ๋ฉ”์„œ๋“œ๋ฅผ ๋ณ„๋„์˜ ์„œ๋น„์Šค ๊ฐ์ฒด์—์„œ ๊ตฌํ˜„ํ•˜๋„๋ก ํ•˜๊ณ  ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์„œ๋น„์Šค ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉ
  • ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์„ ๊ฐ€์ง

MVC๋ฅผ ์ง€ํ‚ค๋ฉด์„œ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•

Model์€ Controller์™€ View์— ์˜์กดํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

  • Model ๋‚ด๋ถ€์— Controller์™€ View์— ๊ด€๋ จ๋œ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ๋จ
  • model์€ ๋ฐ์ดํ„ฐ์™€ ๊ด€๋ จ๋œ ์ฝ”๋“œ์ด๋‹ˆ ์–ธ์ œ๋“ ์ง€ ์ •์ œ๋œ ์ฝ”๋“œ๋งŒ ๊บผ๋‚ด์“ธ ์ˆ˜ ์žˆ๋„๋ก

View๋Š” Model์—๋งŒ ์˜์กดํ•ด์•ผํ•˜๊ณ , Controller์— ์˜์กดํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

  • View ๋‚ด๋ถ€์— Model์˜ ์ฝ”๋“œ๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ , Controller์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ๋จ

Vuew๊ฐ€ Model๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ๋Š” ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ฐ›์•„์•ผ ํ•จ

๋นจ๊ฐ„ ๋ถ€๋ถ„์ด ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋ณด์—ฌ์ ธ์•ผํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.

๋˜๋Š” ์ž๋™์ฐจ ๊ฒฝ์ฃผ ๊ฒŒ์ž„์—์„œ -(๋Œ€์‹œ) ๊ฐ™์€ ๊ฒฝ์šฐ

View๋Š” ์‚ฌ์šฉ์žํ•œํ…Œ ๋ณด์ด๋Š” UI์™€ ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ฉ์ณ์ง€๋Š” ๋ถ€๋ถ„์ด๋‹ค.

Controller๋Š” Model๊ณผ View์— ์˜์กดํ•ด๋„ ๋œ๋‹ค.

  • Controller ๋‚ด๋ถ€์—๋Š” Model๊ณผ View์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

View๊ฐ€ Model๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ, ๋ฐ˜๋“œ์‹œ Controller์—์„œ ๋ฐ›์•„์•ผ ํ•œ๋‹ค.


์ฐธ๊ณ  ์ž๋ฃŒ