1 minute read

Mention : Model?๐Ÿ“Š View?๐ŸŽจ Controller?๐Ÿ’๐Ÿปโ€โ™‚๏ธ

Background

  • ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ, ์œ ์ง€๋ณด์ˆ˜์˜ ๋ถˆํŽธ
    • ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธํ•œ ํŒจํ„ด์ด ์ƒ๊ฒจ๋‚˜๊ฒŒ๋จ
    • MVC ํŒจํ„ด์ด ํƒ„์ƒ

Model, View, Controller

https://junhyunny.github.io/images/mvc-pattern-2.JPG

  • Model
    • Data
    • ๋ฐ์ดํ„ฐ์™€ ๊ด€๋ จ๋œ ๋ถ€๋ถ„
  • View
    • html, css
    • ์‚ฌ์šฉ์žํ•œํ…Œ ๋ณด์—ฌ์ง€๋Š” ๋ถ€๋ถ„
  • Controller
    • Model ์˜ ๋ฐ์ดํ„ฐ๋ฅผ View์— ์—ฐ๊ฒฐ
    • ์ „๋ฐ˜์ ์ธ ์ œ์–ด (์ค‘๊ฐœ์ž ์—ญํ• )

MVC Web Framework

  • ex) Spring

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

  • Model์€ Controller์™€ View์— ์˜์กดํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
    • Model ๋‚ด๋ถ€์— Controller์™€ View์— ๊ด€๋ จ๋œ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค.
  • View๋Š” Model์—๋งŒ ์˜์กดํ•ด์•ผ ํ•˜๊ณ , Controller์—๋Š” ์˜์กดํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
    • View ๋‚ด๋ถ€์— Model์˜ ์ฝ”๋“œ๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ , Controller์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค.
  • View๊ฐ€ Model๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ๋Š”, ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ฐ›์•„์•ผํ•œ๋‹ค.
  • Controller๋Š” Model๊ณผ View์— ์˜์กดํ•ด๋„ ๋œ๋‹ค.
    • Controller ๋‚ด๋ถ€์—๋Š” Model๊ณผ View์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
  • View๊ฐ€ Model๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ, ๋ฐ˜๋“œ์‹œ Controller์—์„œ ๋ฐ›์•„์•ผํ•œ๋‹ค.
  • Summary
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Model, View, Controller ์ด ์„ธ๊ฐ€์ง€์˜ ์—ญํ• ๋กœ ๊ตฌ๋ถ„ํ•œ ์•„ํ‚คํ…์ณ ๋””์ž์ธ ํŒจํ„ด ๋˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ Controller๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ํ•œ URL์— ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์‚ฌํ•ญ์„ ํŒŒ์•…ํ•œ ํ›„์— ๊ทธ ์š”์ฒญ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Model ํ†ตํ•ด ๊ฐ€์ ธ์˜ค๊ณ  ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹œ๊ฐ์ ์ธ ํ‘œํ˜„์„ ๋‹ด๋‹นํ•˜๋Š” View๋ฅผ ์ œ์–ดํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. MVC์˜ ์žฅ์ ์€ ๊ฐ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋…๋ฆฝ์‹œํ‚ด์œผ๋กœ์จ ๊ฐ ํŒ€์ด ๋งก์€ ๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์—๋งŒ ์ง‘์ค‘ํ•˜์—ฌ ๋”ฐ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๊ณ  ์œ ์ง€๋ณด์ˆ˜์„ฑ, ํ™•์žฅ์„ฑ๋„ ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณต์žกํ•œ ํ™”๋ฉด๊ณผ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์ด๋ผ๋ฉด Controller์— ๋‹ค์ˆ˜์˜ Model๊ณผ View๊ฐ€ ๋ณต์žกํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋กœ ์ธํ•ด ์ƒˆ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€ ๋  ๋•Œ๋งˆ๋‹ค ์ฝ”๋“œ ๋ถ„์„์ด๋‚˜ ํ…Œ์ŠคํŠธ์— ์–ด๋ ค์›€์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ๋“ค์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด MVVM ํŒจํ„ด ๊ฐ™์€ ํ•ด๊ฒฐ์ฑ…๋„ ์ œ์‹œ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Reference ๐Ÿ“š

https://www.youtube.com/watch?v=ogaXW6KPc8I&t=89s

Leave a comment