MapleStory Finger Point

๐ŸŸค JAVA/๐ŸŸค JSP

[JSP] MVC 2

HYEJU01 2024. 7. 14. 01:16


[ MVC 1 ]

 

 

[ MVC 2 ]

 

MVC2 ํŒจํ„ด ๊ตฌ์กฐํ™” 

 

๋ชจ๋“  ๊ฒƒ์€ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ฑฐ์ณ๊ฐ„๋‹ค!

Client → Controller → Service (Service pl ) → DAO → (DTO) → DB

 

  • ๋ชจ๋ธ(Model)์€ ๋น„์ฆˆ๋‹ˆ์Šค์™€ ๊ด€๋ จ๋œ ๋กœ์ง๋งŒ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋˜๋ฉฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ผ ํ™”๋ฉด์ด๋‚˜ ์š”์ฒญ์˜ ํ๋ฆ„ ์ œ์–ด์— ๋Œ€ํ•ด์„œ๋Š” ์ „ํ˜€ ์ฒ˜๋ฆฌํ•˜ ์ง€ ์•Š์œผ๋ฉฐ
  • ๋ทฐ(View)๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋งž์€ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•  ๋ฟ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋‚˜ ์š”์ฒญ ํ๋ฆ„ ์ œ์–ด ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (ํ™”๋ฉด์— ๋Œ€ํ•œ ์ฝ”๋“œ๋งŒ HTML ) 
  • ์ปจํŠธ๋กค๋Ÿฌ(Controller)๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ์•Œ๋งž์€ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๋ทฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

 

  • mvc ๊ฐ€ ์ •ํ™•ํžˆ ๋‚˜๋ˆ ์ ธ์„œ ์ผํ•จ
  • ํ™•์žฅ์ž ํŒจํ„ด ์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
  • .do ๋กœ ๋๋‚˜๋Š” ๊ฒƒ๋“ค์€ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์‹คํ–‰
  • controller ๋งŒ๋“ค์–ด์•ผํ•จ

 

 

 

[ URL-Pattern ]

 

1. ๋””๋ ‰ํ† ๋ฆฌ ํŒจํ„ด: ๋””๋ ‰ํ† ๋ฆฌ ํ˜•ํƒœ๋กœ ์„œ๋ฒ„์˜ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฐพ์•„์„œ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

ex) http://localhost:8181/cr/Hello --> /Hello ์„œ๋ธ”๋ฆฟ

http://localhost:8181/cr/World --> /World ์„œ๋ธ”๋ฆฟ

 

2. ํ™•์žฅ์ž ํŒจํ„ด: ํ™•์žฅ์ž ํ˜•ํƒœ๋กœ ์„œ๋ฒ„์˜ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฐพ์•„์„œ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

ex) http://localhost:8181/cr/Hello.do --> *.do ์„œ๋ธ”๋ฆฟ

http://localhost:8181/cr/World.do --> *.do ์„œ๋ธ”๋ฆฟ

 

 

[ MVC Model 2 Architecture ]

 

๋ชจ๋ธ2 ๊ตฌ์กฐ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์ด ๋ฐ›์œผ๋ฉฐ

์„œ๋ธ”๋ฆฟ์€ ๊ทธ ์š”์ฒญ์„ ์•Œ๋งž๊ฒŒ ์ฒ˜๋ฆฌํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค„ JSP ํŽ˜์ด์ง€๋กœ ํฌ์›Œ๋”ฉํ•จ.

 

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

 

 

 

 

[ MVC์˜ ์ปจํŠธ๋กค๋Ÿฌ: ์„œ๋ธ”๋ฆฟ ] --- ๋ชจ๋ธ 2 ๊ตฌ์กฐ์—์„œ ์„œ๋ธ”๋ฆฟ์€ MVC ํŒจํ„ด์˜ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• 

์„œ๋ธ”๋ฆฟ์€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ๊ณผ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜ ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ์ œ์–ด

 

  • 1. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ „์†กํ•œ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์š”์ฒญ๋ฐฉ์‹์— ๋งž๊ฒŒ doGet(), doPost()๋ฅผ ํ˜ธ์ถœํ•จ.
  • 2. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์š”์ฒญํ–ˆ๋Š”์ง€ ๋ถ„์„ํ•จ.
  • 3. ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰.
  • 4. ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฒฐ๊ณผ๋ฌผ์„ ์•Œ๋งž๊ฒŒ ๊ฐ€๊ณตํ•œ ํ›„, request๋‚˜ session์˜ setAttribute() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ’ ์„ ์†์„ฑ์— ์ €์žฅ. ์ด๋ ‡๊ฒŒ ์ €์žฅํ•œ ๊ฒฐ๊ณผ๊ฐ’์€ ๋ทฐ์ธ JSP์—์„œ ์‚ฌ์šฉํ•จ.
  • 5. ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ฒฐ๊ณผ๋ฅผ ์ „์†กํ•  JSP ํŽ˜์ด์ง€๋ฅผ ์„ ํƒํ•œ ํ›„, ํ•ด๋‹น JSP๋กœ ํฌ์›Œ๋”ฉ(ํ˜น์€ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ)ํ•จ

 

 

[ MVC์˜ ๋ทฐ: JSP  ] --- ๋ชจ๋ธ 2 ๊ตฌ์กฐ์—์„œ JSP๋Š” ๋ทฐ ์—ญํ• ์„ ๋‹ด๋‹น

JSP๋Š” ์ปจํŠธ๋กค๋Ÿฌ์—์„œ request ๊ฐ์ฒด๋‚˜ session๊ฐ์ฒด์— ์ €์žฅ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์•Œ๋งž์„ ํ™”๋ฉด์„ ์ถœ๋ ฅ

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

 

 

[ MVC์˜ ๋ชจ๋ธ ]

๋ชจ๋ธ์€ ๋ช…ํ™•ํ•˜๊ฒŒ ์–ด๋–ค ๊ฒƒ์„ ํ†ตํ•ด์„œ ๊ตฌํ˜„ํ•œ๋‹ค๋Š” ๊ทœ์น™์€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ๋ชจ๋ธ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

 

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