Notice
Recent Posts
Link
Today
Total
07-07 22:50
๊ด€๋ฆฌ ๋ฉ”๋‰ด

dingdong coding

MVC, Spring MVC ๋ณธ๋ฌธ

๐ŸSpring/Basic

MVC, Spring MVC

๐Ÿถ ๊ฐœ๋ฐœ๊ฐœ๋ฐœ ๐Ÿพ 2022. 6. 16. 12:49

MVC๋ž€? 

MVC ํŒจํ„ด์€ ์•„ํ‚คํ…์ณ๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์‹œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.

์ด๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ๋ถ„์‹œ์ผœ ์„œ๋กœ ์˜ํ–ฅ์—†์ด ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 M ( Model )  "๋ฌด์—‡์„"

    - ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ

    - ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํ˜ธ์ถœํ•  ๋•Œ, ์š”์ฒญ์— ๋งž๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    - ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ์˜์—ญ์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

 

 V  ( View )

    - ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI) ์ปดํฌ๋„ŒํŠธ

    - Controller๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ชจ๋ธ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ฐ–๊ณ  ์ถœ๋ ฅํ•  ํ™”๋ฉด์„ ๋งŒ๋“œ๋Š” ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค. 

    - ์ƒ์„ฑ๋œ ํ™”๋ฉด์„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ „์†กํ•˜๊ณ  ์ถœ๋ ฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. 

    - ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ(๋ฐ์ดํ„ฐํ‘œ์‹œ, ์ž…๋ ฅ ํผ ๋“ฑ)์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

 

 C ( Controller ) "์–ด๋–ป๊ฒŒ"

    - ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ(์‚ฌ์šฉ์ž์˜ ์ž…์ถœ๋ ฅ)์„ ์ฒ˜๋ฆฌํ•˜๊ณ  Model, View๋ฅผ ์ค‘๊ฐœํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ 

    - ์ผ์ข…์˜ ์กฐ์ •์ž๋กœ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ, ๊ทธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‹ค์ œ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” Model ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. 

    - ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๊ณ  ๋ชจ๋ธ์ด ์—…๋ฌด๋ฅผ ๋งˆ์น˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ทฐ์— ์ „๋‹ฌ

       ํ•ฉ๋‹ˆ๋‹ค. 


Spring MVC๋ž€? 

Spring MVC๋ž€ Spring์—์„œ ์ œ๊ณตํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ MVC ํŒจํ„ด ๊ธฐ๋ฐ˜์˜ ์›น ํ”„๋ ˆ์ž„ ์›Œํฌ์ž…๋‹ˆ๋‹ค.

Spring MVC ์ปดํฌ๋„ŒํŠธ

DispatcherServlet : ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ์„ ๋จผ์ € ๋ฐ›์•„๋“ค์ด๋Š” ์„œ๋ธ”๋ฆฟ, ์š”์ฒญ์— ๋งž๋Š” Controller์—๊ฒŒ ์š”์ฒญ์„ ์ „๋‹ฌ

HandlerMapping : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ URL์„ ์–ด๋–ค Controller๊ฐ€ ์ฒ˜๋ฆฌํ• ์ง€ ๊ฒ€์‚ฌ

Controller : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ DispatcherServlet์— ์ „๋‹ฌ

ViewResolver : Controller์˜ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ(๋ฐ์ดํ„ฐ)๋ฅผ ์ƒ์„ฑํ•  view๋ฅผ ์ฐพ์Œ

View : UI

 

๐Ÿ™‚ Servlet์— ๋Œ€ํ•ด ์ž˜ ์ •๋ฆฌ๋œ ๊ธ€์ด ์žˆ์–ด ์ฐธ์กฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.๐Ÿ™‚ ์„œ๋ธ”๋ฆฟ(Servlet)์ด๋ž€?

 

 

1. Client => DispatcherServlet 

    • ํด๋ผ์ด์–ธํŠธ๋Š” URL์„ ํ†ตํ•ด ์š”์ฒญ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. 

 

2. DispatcherServlet => HandlerMapping

    • ๋””์ŠคํŒจ์ฒ˜ ์„œ๋ธ”๋ฆฟ์€ ํ•ธ๋“ค๋Ÿฌ ๋งคํ•‘์„ ํ†ตํ•ด ํ•ด๋‹น ์š”์ฒญ์ด ์–ด๋Š ์ปจํŠธ๋กค๋Ÿฌ์— ์˜จ ์š”์ฒญ์ธ์ง€ ์ฐพ์Šต๋‹ˆ๋‹ค.

 

3. HandlerMapping => DispatcherServlet  => ControllerAdapter => Controller

    • ์•Œ๋งž๋Š” Controller๋ฅผ ์ฐพ์œผ๋ฉด DispatcherServlet์€ ํ•ด๋‹น Controller์—๊ฒŒ ์š”์ฒญ์„ ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค.

    • ์œ„ ์œ„์ž„ ๊ณผ์ •์€ ControllerAdapter๊ฐ€ ํ•ด๋‹น๋˜๋Š” Controller์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. 

 

4. Controller => Service

    •  Controller๋Š” ๋งตํ•‘๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๋‹น๋˜๋Š” Service์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

5. Service => Controller 

    • Service๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ Controller์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

 

6.  Controller => ControllerAdapter => DispatcherServlet

    • Controller๋Š” ์‘๋‹ต๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค view๋ฅผ ํ†ตํ•ด ๋ณด์—ฌ์ค„ ๊ฒƒ์ธ์ง€ ์ •๋ณด๋ฅผ ๋‹ด์•„ DispatcherServlet์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

 

7. DispatcherServlet  => ViewResolver 

    • DispatcherServlet๋Š” Controller(ControllerAdapter)์—๊ฒŒ ๋ฐ›์€ view์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ViewResolver์— ๋„˜๊น๋‹ˆ๋‹ค.

 

8. ViewResolver => DispatcherServlet  

    • ViewResolver๋Š” jsp ๋˜๋Š” html์„ ์ฐพ์•„์„œ DispatcherServlet์—๊ฒŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

 

9. => View

    • DispatcherServlet๋Š” ์‘๋‹ต๋ฐ›์€ jsp ๋˜๋Š” html์„ View์—๊ฒŒ Render๋ฅผ ์ง€์‹œํ•˜๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ View๊ฐ€ ์ œ๊ณต        ๋ฉ๋‹ˆ๋‹ค.

 

 

 

ํ•™์Šต์— ๋งŽ์€ ๋„์›€์ด ๋œ ๋ธ”๋กœ๊ทธ ๋งํฌ๋ฅผ  ์ฐธ์กฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ™‚

 

์ฐธ์กฐ ๋ฐ ์ถœ์ฒ˜

Spring MVC๋ž€? Spring MVC ์ž‘๋™์›๋ฆฌ

์Šคํ”„๋ง MVC ๊ตฌ์กฐ ์ดํ•ด

Spring MVC๋ž€ ๋ฌด์—‡์ธ๊ฐ€? 

Comments