๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
FOR SW ENGINEER๐Ÿ‘ฉ‍๐Ÿ’ป/JSP

JSP - MVC(model- view - controller)

by ์”จ๋‹ˆ 2021. 12. 14.
728x90

1. MVC(model-view-controller)

MVC๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค, ๋ฐ์ดํ„ฐ ๋ฐ ๋…ผ๋ฆฌ ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค.

๋ง ๊ทธ๋Œ€๋กœ ๋ชจ๋ธ, ๋ทฐ, ์ปจํŠธ๋กค๋Ÿฌ์˜ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ํ™”๋ฉด์„ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ง๊ณผ ํ™”๋ฉด์„ ๊ตฌ๋ถ„ํ•จ์— ๋”ฐ๋ผ ๋”๋‚˜์€ ์—…๋ฌด์˜ ๋ถ„๋ฆฌ์™€ ํ–ฅ์ƒ๋œ ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค.

 

<MVC๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ>

Model :  ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ์˜ ๋กœ์ง ์ฒ˜๋ฆฌ -> ๋กœ์ง ์ฒ˜๋ฆฌ ํด๋ž˜์Šค, ์ž๋ฐ”๋นˆ

View : ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ์— ๋Œ€ํ•œ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ทฐ (์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๊ฒŒ ๋  ๊ฒฐ๊ณผ ํ™”๋ฉด) -> JSP

Controller : ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์ฒ˜๋ฆฌ์™€ ํ๋ฆ„์ œ์–ด ๋‹ด๋‹น. ->Servlet

 

โ–ถ mvc๋Š” 2๊ฐ€์ง€ ๋ชจ๋ธ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Œ.

  • ๋ชจ๋ธ1 - JSP๋ฅผ ์ด์šฉํ•œ ๋‹จ์ˆœ ๋ชจ๋ธ

- ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ์„ JSP๊ฐ€ ์ง์ ‘์ฒ˜๋ฆฌํ•จ.

- ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ์œ„ํ•œ ์ฝ”๋“œ์™€ ์›น ๋ธŒ๋ผ์šฐ์— ๊ฒฐ๊ณผ ์ถœ๋ ฅํ•˜๋Š ์ฝ”๋“œ๊ฐ€ ์„ž์ธ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ. (view+controller์„ž์ž„)

 

  • ๋ชจ๋ธ2 - Servlet์„ ์‚ฌ์šฉํ•œ ๋ชจ๋ธ

MVC๊ตฌ์กฐ ํ๋ฆ„

- ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ์„ ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์ด ์š”์ฒญ์„ ๋ฐ›์•„ ์•Œ๋งž๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ฒ˜๋ฆฌ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค„ JSPํŽ˜์ด์ง€๋กœ ํฌ์›Œ๋”ฉํ•จ. ํฌ์›Œ๋”ฉ ํ†ตํ•ด ์š”์ฒญ ํ๋ฆ„ ๋ฐ›์€ JSPํŽ˜์ด์ง€๋Š” ๊ฒฐ๊ณผํ™”๋ฉด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก. (์ด ๊ณผ์ •์—์„œ ์„œ๋ธ”๋ฆฟ์ด ๋กœ์ง ์ฒ˜๋ฆฌํ•จ)

- ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์ด ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋ชจ๋“  ์š”์ฒญ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ธ”๋ฆฟ์€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”.

- MVCํŒจํ„ด ์ด์šฉํ•ด์„œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„ํ•  ๋•Œ ์ด ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•จ.

 

2. MVC์ปจํŠธ๋กค๋Ÿฌ : ์„œ๋ธ”๋ฆฟ

โ–ถ์ปจํŠธ๋กค๋Ÿฌ ์„œ๋ธ”๋ฆฟ ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹

 

โ–ถ ์„œ๋ธ”๋ฆฟ ๋™์ž‘ ๊ณผ์ •(++MVCํŒจํ„ด ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ ์„ค๋ช…)

1. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ „์†กํ•œ HTTP์š”์ฒญ ๋ฐ›์Œ - doGet()๋ฉ”์„œ๋“œ / doPost()๋งค์„œ๋“œ

2. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์–ด๋–ค ์š”์ฒญ ํ–ˆ๋Š”์ง€ ๋ถ„์„ 

<parameter๋กœ ๊ฐ’๋ฐ›์•„ ์š”์ฒญ ๋ถ„์„>

3. ๋ชจ๋ธ ์‚ฌ์šฉํ•ด ์š”์ฒญ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰

<์„œ๋ธ”๋ฆฟ ์‚ฌ์šฉํ•œ ์š”์ฒญ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ ์˜ˆ์‹œ>

4. ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฒฐ๊ณผ๋ฌผ ์•Œ๋งž๊ฒŒ ๊ฐ€๊ณต ํ›„, request/session์˜ setAttribute()๋ฉ”์„œ๋“œ ์‚ฌ์šฉํ•ด ๊ฒฐ๊ณผ๊ฐ’ ์†์„ฑ์— ์ €์žฅ.

<์„œ๋ธ”๋ฆฟ ์‚ฌ์šฉํ•œ setAttribute์˜ˆ์‹œ>

5. ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ฒฐ๊ณผ ์ „์†กํ•  JSP(view)์„ ํƒ ํ›„, ํ•ด๋‹น JSP๋กœ ํฌ์›Œ๋”ฉ/๋ฆฌ๋‹ค์ด๋ ‰ํŠธ

<์„œ๋ธ”๋ฆฟ ์‚ฌ์šฉํ•œ forward์˜ˆ์‹œ>

 

 

3. ๋ชจ๋ธ๊ธฐ๋Šฅ

 

728x90