web developer๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[MVC ํŒจํ„ด] Model View Controller ๋ณธ๋ฌธ

Spring

[MVC ํŒจํ„ด] Model View Controller

natrue 2020. 9. 1. 14:35
728x90

 

 1. MVC ํŒจํ„ด์ด๋ž€?  

MVC๋ž€ Model View Controller์˜ ์•ฝ์ž๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ธ ๊ฐ€์ง€์˜ ์—ญํ• ๋กœ ๊ตฌ๋ถ„ํ•œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค. ์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๊ฐ€ Controller๋ฅผ ์กฐ์ž‘ํ•˜๋ฉด Controller๋Š” Model์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๊ทธ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹œ๊ฐ์ ์ธ ํ‘œํ˜„์„ ๋‹ด๋‹นํ•˜๋Š” View๋ฅผ ์ œ์–ดํ•ด์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ. 

 

 2. M : Model   

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ •๋ณด, ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„

 

 3. V : View   

๋ฐ์ดํ„ฐ ๋ฐ ๊ฐ์ฒด์˜ ์ž…๋ ฅ ๊ทธ๋ฆฌ๊ณ  ๋ณด์—ฌ์ฃผ๋Š” ์ถœ๋ ฅ์„ ๋‹ด๋‹น (ํ™”๋ฉด) 

 

 4. C : Controller  

๋ฐ์ดํ„ฐ์™€ ์‚ฌ์šฉ์ž์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋“ค์„ ์ž‡๋Š” ๋‹ค๋ฆฌ ์—ญํ• 

์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„

 

 5. MVC ํŒจํ„ด์˜ ์žฅ์ ์€?   

์„œ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ๊ฐ์ž์˜ ์—ญํ• ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋” ํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ๊ทธ๋ ‡๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ ๋‹ค๋ฉด, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ™•์žฅ์„ฑ, ๊ทธ๋ฆฌ๊ณ  ์œ ์—ฐ์„ฑ์ด ์ฆ๊ฐ€ํ•˜๊ณ , ์ค‘๋ณต ์ฝ”๋”ฉ์ด๋ผ๋Š” ๋ฌธ์ œ์  ๋˜ํ•œ ์‚ฌ๋ผ์ง.

 

 

 6. Spring MVCํŒจํ„ด  - User์˜ ์š”์ฒญ์„ ๋ฐ›๋Š” DispatcherServlet๊ฐ€ ํ•ต์‹ฌ  

Spring MVC๋Š” DispatcherServlet์ด ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ๋ชจ๋‘ ํ•ธ๋“ค๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— web.xml์˜ ์—ญํ• ์ด ์ถ•์†Œ

Model, View, Controlle ์„ค๊ณ„ ์˜์—ญ์„ ๋…ธ๊ณจ์ ์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋ฌด์กฐ๊ฑด MVC๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค๊ณ„ํ•˜๋„๋ก ์œ ๋„

model1 ๋ฐฉ์‹์œผ๋กœ ํ•  ์ˆ˜์—†๊ณ , model2 ๋ฐฉ์‹์œผ๋กœ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ ๊ตฌ์„ฑ

 

  • model1 - ๋ทฐ์™€ ๋กœ์ง์„ ๋ชจ๋‘ JSPํŽ˜์ด์ง€ ํ•˜๋‚˜์— ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ 
  • model2 - JSPํŽ˜์ด์ง€์™€ ์„œ๋ธ”๋ฆฟ, ๊ทธ๋ฆฌ๊ณ  ๋กœ์ง์„ ์œ„ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‚˜๋‰˜์–ด ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ์„ ์ฒ˜๋ฆฌ 

์ฆ‰, model2 = MVC ํ˜•ํƒœ๊ฐ€ ์™„์ „ํžˆ ๋™์ผ 

 

 

 7. Spring MVCํŒจํ„ด ๊ตฌ์กฐ    

  1. ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ Front Controller์— ์ „๋‹ฌ
  2. ์ „๋‹ฌ๋œ ์š”์ฒญ์€ ์ ์ ˆํ•œ Controller๋ฅผ ์ฐพ์•„ ํ˜ธ์ถœ
  3. Controller๋Š” ํ•ด๋‹น Service๊ฐ์ฒด๋ฅผ ์ฐพ์•„ ํ˜ธ์ถœ
  4. Service๊ฐ์ฒด๋Š” DAO ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” Data๋ฅผ ์š”์ฒญ
  5. DAO๊ฐ์ฒด๋Š” MyBatis๋ฅผ ์ด์šฉํ•˜๋Š” Mapper๋ฅผ ํ†ตํ•ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค (C insert R read U update D delete) 
  6. Service๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ Controller์— ์ „๋‹ฌ
  7. Controller๋Š” ๋‹ค์‹œ ์Šคํ”„๋ง MVC ์ชฝ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ 

 

 

 

 

 

 

์ฐธ๊ณ  : https://velog.io/@ljinsk3/Concept-MVC-Pattern