MVC๋ Model-View-Controller์ ์ฝ์๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ ๊ฐ์ง ์ญํ ๋ก ๊ตฌ๋ถํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ด๋ค.
ํด๋ผ์ด์ธํธ๊ฐ Controller๋ฅผ ์กฐ์ํ๋ฉด Controller๋ Model์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก View๋ฅผ ํตํด ์๊ฐ์ ํํ์ ์ ์ดํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ๋ค์ ์ ๋ฌํ๋ ๋ฐฉ์์ด๋ค.
Model์ ๋ด๋ถ ๋น์ฆ๋์ค ๋ก์ง์ ํด๋นํ๋ค.
๋ฐฑ๊ทธ๋ผ์ด๋ ๋ก์ง์ผ๋ก์จ ์ฒ๋ฆฌ๋๋ ์๊ณ ๋ฆฌ์ฆ, ๋ฐ์ดํฐ, DB์์ ์ํธ์์ฉ ๋ฑ์ ๋ด๋นํ๋ค.
View๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ์๋ฏธํ๋ค.
์์ฒญ(Request)์ ๋ํ ์ฒ๋ฆฌ๊ฒฐ๊ณผ๋ฅผ View๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์๊ฒ ํ๋ฉด์ ํตํด ๋ณด์ฌ์ค๋ค.
์ฌ์ฉ์๊ฐ ๋ณผ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑํ๊ธฐ ์ํด ๋ชจ๋ธ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์ป์ด์จ๋ค.
Controller๋ Model๊ณผ View์ฌ์ด์์ ์ค๊ณ์ ์ญํ ์ ์ํํ๋ค.
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ฌํญ์ ํ์ ํ ํ์ ๊ทธ ์์ฒญ์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ Model์ ์๋ขฐํ๊ณ , ๋ฐ์ดํฐ๋ฅผ View์ ๋ฐ์ํด์ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ ค์ค๋ค.
๊ทธ๋ผ MVC ํจํด์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋์ฒด ๋ฌด์์ผ๊น?
๋ฐ๋ก ๋น์ฆ๋์ค ๋ก์ง(Back-end)๊ณผ UI๋ก์ง(Front-end)์ ๋ถ๋ฆฌํ์ฌ ์ ์ง๋ณด์๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ํ๊ฐ๋ฅํ๋ค.
๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ญํ ์ ๋ถ๋ช ํ๊ฒ ์ ์ํ์ฌ ๊ฐ๋ฐ์๋ค์ด ํน์ ๋ถ๋ถ์ ์ง์คํ๊ณ ์ฝ๋๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก MVCํจํด์ 2๊ฐ์ง๋ก ๋๋์ด์ง๋ค. ์์ธํ ์์๋ณด์.
MVC Model1์ View์ Controller๋ฅผ JSP์์ ๋ชจ๋ ๊ตฌํํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๊ณ JSP, Model๊ณผ ์ํธ์์ฉ์ ํ์ฌ ๋ณ๊ฒฝ๋ Model์ ์ฌ์ฉํ์ฌ View๋ฅผ ๋ค์ ์์ฑํ๋๊ฒ์ ๋งํ๋ค.
์ฆ, ์ฌ์ฉ์์ ์์ฒญ์ฒ๋ฆฌ์ Model์์ฒญ์ ๋ํ ์๋ต์ฒ๋ฆฌ๋ฅผ JSP์์ ๋ชจ๋ ๊ตฌํํ๋ ๊ฒ์ด๋ค.
MVC Model2 MVC Model1๊ณผ ๋ค๋ฅด๊ฒ Controller, View๊ฐ ๋ถ๋ฆฌ๋์ด ์๋ค.
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌ, ํ๋ฆ์ ์ด๋ฅผ ํ๋ฉด์ ํ์์ Model๊ณผ ์ํธ์์ฉ์ ํ๋ Controller๋ View์ ๋ถ๋ฆฌ๋์ด Servlet์์ ๋ด๋นํ๊ณ , ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ณด์ฌ์ฃผ๋ View๋ JSP์์ ๋ด๋นํ๊ณ ์๋ค.
๋ฐ๋ผ์ ์ญํ ์ด ๋ถ๋ฆฌ๋์ด M, V, C ์ค์์ ์์ ํด์ผ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด, ๊ทธ๊ฒ๋ง ์ ํ ํ์ฌ ์์ ํ๋ฉด ๋๋ค.