[ 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์ ๋ชจ๋ธ ]
๋ชจ๋ธ์ ๋ช ํํ๊ฒ ์ด๋ค ๊ฒ์ ํตํด์ ๊ตฌํํ๋ค๋ ๊ท์น์ ์์ต๋๋ค. ๋จ์ง ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํด์ฃผ๋ฉด ๋ชจ๋ธ์ด ๋ ์ ์์ต๋๋ค
- ์์ฒญ์ ๋ถ์ํ์ฌ ์๋ง์ ๋ชจ๋ธ์ ํธ์ถํ๋ฉด์๋ถํฐ ๋ชจ๋ธ์ ๊ธฐ๋ฅ์ด ์์๋ฉ๋๋ค.
- ๋ชจ๋ธ์ ์ปจํธ๋กค๋ฌ๊ฐ ์์ฒญํ ์์ ์ ์ฒ๋ฆฌํ ํ ์๋ง์ ๊ฒฐ๊ณผ๋ฅผ ์ปจํธ๋กค๋ฌ์๊ฒ ์ ๋ฌํ๋๋ฐ, ์ด๋ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๊ฐ์ ์ ์ฅํ๋ ๊ฐ์ฒด ๋ก ๋ณดํต ์๋ฐ๋น์ ์ฌ์ฉํจ