WEB_MVC ํจํด
๐ WEB
๐ MVC ํจํด
MVC Pattern ์ด๋ ๋ฌด์์ธ๊ฐ?
MVC ํจํด์ ๋์์ธ ํจํด ์ค ํ๋์ด๋ค.
๋์์ธ ํจํด์ด๋ ํ๋ก๊ทธ๋จ์ด๋ ์ด๋ค ํน์ ํ ๊ฒ์ ๊ฐ๋ฐํ๋ ์ค์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ค์ ์ ๋ฆฌํด์ ์ํฉ์ ๋ฐ๋ผ ๊ฐํธํ๊ฒ ์ ์ฉํด์ ์ธ ์ ์๋ ๊ฒ์ ์ ๋ฆฌํ์ฌ ํน์ ํ โ๊ท์ฝโ์ ํตํด ์ฝ๊ฒ ์ธ ์ ์๋ ํํ๋ก ๋ง๋ ๊ฒ์ด๋ค.
์ข ๋ ์ฝ๊ณ ํธ๋ฆฌํ๊ฒ ๋ฅผ ์ถ๊ตฌํ๋ฉฐ ๋ง๋๋ ๊ฒ์ด ๋์์ธ ํจํด์ด๋ค.
MVC ๋ Model, View, Controller์ ์ฝ์์ด๋ค.
ํ๋์ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ๋ ์ธ๊ฐ์ง์ ์ญํ ๋ก ๊ตฌ๋ถํ ํจํด์ด๋ค.
์ฌ์ฉ์๊ฐ controller๋ฅผ ์กฐ์ํ๋ฉด controller๋ model์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๊ทธ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์๊ฐ์ ์ธ ํํ์ ๋ด๋นํ๋ View ๋ฅผ ์ ์ดํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๋ค.
Model 1
view ์ logic ์ JSP ํ์ด์ง ํ๋์์ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ
Client๋ก๋ถํฐ ์์ฒญ์ด ๋ค์ด์ค๊ฒ ๋๋ฉด JSP ํ์ด์ง๋ java beans ๋ ๋ณ๋์ service class ๋ฅผ ์ด์ฉํ์ฌ ์์
์ ์ฒ๋ฆฌ, ๊ฒฐ๊ณผ๋ฅผ Client ์ ์ถ๋ ฅํ๋ค.
๊ฐ๋จํ page๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด ๊ณผ๊ฑฐ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋์๋ architecture
-
์ฅ์
- ๊ตฌ์กฐ๊ฐ ๋จ์ํ๋ฉฐ ์ง๊ด์ ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ฐ๊ธฐ ์ฝ๋ค.
- ๊ฐ๋ฐ ์๊ฐ์ด ๋น๊ต์ ์งง๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ๋น์ฉ์ด ๊ฐ์
-
๋จ์
- ์ถ๋ ฅ์ ์ํ view(html) ์ฝ๋์ ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ์ํ java ์ฝ๋๊ฐ ์์ฌ ์๊ธฐ ๋๋ฌธ์ JSP ์ฝ๋ ์์ฒด๊ฐ ๋ณต์กํด ์ง๋ค.
- JSP ์ฝ๋์ Back-End(Developer)์ Front-End(Designer)๊ฐ ํผ์ฌ๋๊ธฐ ๋๋ฌธ์ ๋ถ์ ์ด ํ๋ค์ด์ง๋ค.
- project ๊ท๋ชจ๊ฐ ์ปค์ง๊ฒ ๋๋ฉด ์ฝ๋๊ฐ ๋ณต์กํด ์ง๋ฏ๋ก ์ ์ง๋ณด์ ํ๊ธฐ๊ฐ ์ด๋ ค์ ์ง๋ค.
- ํ์ฅ์ฑ ( ์ ๊ธฐ์ ์ ๋์ , framework๋ฑ ) ์ด ๋์๋ค.
Model 2
model2๋ ๋ชจ๋ ์ฒ๋ฆฌ๋ฅผ JSP ํ์ด์ง์์ ํ๋ ๊ฒ์ด ์๋๋ผ, Client ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ๋ servlet์ด, logic ์ฒ๋ฆฌ๋ java class(Service, Dao โฆ), Client ์๊ฒ ์ถ๋ ฅํ๋ response page๋ฅผ JSP๊ฐ ๋ด๋นํ๋ค.
model2 ๊ตฌ์กฐ๋ MVC( Model - View - Controller ) pattern์ ์น ๊ฐ๋ฐ์ ๋์
ํ ๊ตฌ์กฐ์ด๋ฉฐ ์์ ํ ๊ฐ์ ํํ๋ฅผ ๋ณด์ธ๋ค.
-
Model ( Service, Dao or Java Beans )
- Logic ( Business & DB Logic ) ์ ์ฒ๋ฆฌํ๋ ๋ชจ๋ ๊ฒ
- controller ๋ก ๋ถํฐ ๋์ด์จ data๋ฅผ ์ด์ฉํ์ฌ ์ด๋ฅผ ์ํํ๊ณ ๊ทธ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ controller ์๊ฒ return ํ๋ค.
-
View ( JSP )
- ๋ชจ๋ ํ๋ฉด ์ฒ๋ฆฌ๋ฅผ ๋ด๋น
- Client์ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ ๋ฟ ์๋๋ผ Controller์ ์์ฒญ์ ๋ณด๋ด๋ ํ๋ฉด๋จ๋ jsp์์ ์ฒ๋ฆฌํ๋ค.
- Logic ์ฒ๋ฆฌ๋ฅผ ์ํ java code๋ ์ฌ๋ผ์ง๊ณ ๊ฒฐ๊ณผ ์ถ๋ ฅ์ ์ํ code๋ง ์กด์ฌ
-
Controller ( Servlet )
- CLient ์ ์์ฒญ์ ๋ถ์ํ์ฌ Logic ์ฒ๋ฆฌ๋ฅผ ์ํ Model ๋จ์ ํธ์ถํ๋ค.
- return ๋ฐ์ ๊ฒฐ๊ณผ data๋ฅผ ํ์์ ๋ฐ๋ผ request, session ๋ฑ์ ์ ์ฅํ๊ณ ,
- redirect ๋๋ forward ๋ฐฉ์์ผ๋ก jsp( view ) page๋ฅผ ์ด์ฉํ์ฌ ์ถ๋ ฅํ๋ค.
-
์ฅ์
- ์ถ๋ ฅ์ ์ํ view ( html ) ์ฝ๋์ ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ์ํ java ์ฝ๋๊ฐ ๋ถ๋ฆฌ๋์๊ธฐ ๋๋ฌธ์ JSP๋ Model1 ์ ๋นํด ์ฝ๋๊ฐ ๋ณต์กํ์ง ์๋ค.
- ํ๋ฉด๋จ๊ณผ Logic ๋จ์ด ๋ถ๋ฆฌ๋์๊ธฐ ๋๋ฌธ์ ๋ถ์ ์ด ์ฉ์ดํด์ก๋ค.
- ๊ธฐ๋ฅ์ ๋ฐ๋ผ code๊ฐ ๋ถ๋ฆฌ๋์๊ธฐ ๋๋ฌธ์ ์ ์ง ๋ณด์๊ฐ ์ฌ์์ก๋ค.
- ํ์ฅ์ฑ์ด ๋ฐ์ด๋๋ค.
-
๋จ์
- ๊ตฌ์กฐ๊ฐ ๋ณต์กํ์ฌ ์ด๊ธฐ ์ง์ ์ด ์ด๋ ต๋ค.
- ๊ฐ๋ฐ ์๊ฐ์ ์ฆ๊ฐ๋ก ๊ฐ๋ฐ ๋น์ฉ ์ฆ๊ฐ
MVC ๋ง๋ฌด๋ฆฌ
ํ์ฌ ๋ง์ ๊ธฐ์
๊ณผ ์๋น์ค์์ MVC ํจํด๋ฅผ ํ์ฉํ๋ ๊ฒ์ผ๋ก ์๊ณ ์๋ค.
์ MVC ํจํด์ ํ์ฉํ ๊น?
๊ทธ๊ฒ์ model2์ ์ฅ์ ์ ๋ณด๋ฉด ์ดํดํ ์ ์๋ค.
model, view, controller ๊ฐ ๋ถ๋ฆฌ๋์ด ๊ฐ์์ ์ญํ ์ ์ง์คํ ์ ์๊ฒ ๊ฐ๋ฐ์ ํ๋ค๋ฉด ์ ์ง๋ณด์์ฑ, ํ์ฅ์ฑ, ์ ์ฐ์ฑ ๋ฑ์ด ์ฆ๊ฐํ ๊ฒ์ด๋ค.
๊ฒฐ๊ตญ ์ค์ํ ๊ฒ์ โ์ด๋ป๊ฒ ๋๋ ๊ฒ ์ธ๊ฐโ ์ด๋ค. ๊ทธ๊ฒ์ ๊ฐ์ด๋๋ผ์ธ์ด MVC ํจํด์ธ ๊ฒ์ด๊ณ ..
์น ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ ๋ชฉํ๋ผ๋ฉด ํ์ of ํ์์ ์ธ ์ง์์ด๋ค !!
๐ ์ฐธ์กฐ
https://m.blog.naver.com/jhc9639/220967034588