MVC ํจํด / MVC ์ํคํ ์ณ ํ๋ฆ / DAO, SERVICE ์ญํ
โ๊ถ๊ธ์ฆโ
mvc ํจํด์ ๋ํด ๊ณต๋ถํ๋ ์ค์ "์ mvc ํจํด์์ dao๋ก ๋ฐ๋ก ์ฒ๋ฆฌ๋ฅผ ์ ํ๊ณ service์์ ์ฒ๋ฆฌ๋ฅผ ํ๋๊ฑธ๊น?" ์ ๋ํ ๊ถ๊ธ์ฆ์ด ์์ด์ ๊ธ์ ์์ฑํ๊ฒ ๋์๋ค.
๊ทธ๋ผ ์ผ๋จ mvc์ ๋ํด์ ์์์ผ ํ๋ค. (mvp๋ ์๋๊ณ mvc?)
mvc๋?
Model + View + Controller์ ์ฒซ ๊ธ์๋ฅผ ๋ด ์ฉ์ด๋ก, MVC ํจํด์ด๋ผ๊ณ ๋ถ๋ฆฌ์ด๋ค.
MVC ํจํด..?!
์ํํธ์จ์ด ๋์์ธ ํจํด์ด๋ผ๋ ๊ฐ๋ ์ด ์๋๋ฐ ์ด ํจํด ์ค ํ๋๊ฐ MVC ํจํด์ด๋ค.
์๋ ๊ทธ๋ผ ์ํํธ์จ์ด ๋์์ธ ํจํด์ ๋ญ๋ฐ?
(ํ๋์ ๋ฌผ์ํ๊ฐ ํ๋์ ๋ฌผ์ํ๋ฅผ ๋ณ๊ณ ,, ๋ ๋ณ๊ณ ,,)
(ํจํด์ด๋ ๋ง์ ์๊พธ ์๊ฐํด์ ์ ์ ๊ฒ์ํํธ ๋ถ๊ดด๊ฐ ์๋ค.)
์ํํธ์จ์ด ๋์์ธ ํจํด
์ฌ๋๋ค์ ์ํํธ์จ์ด ํ๋ก๊ทธ๋จ์ ๋ง๋ค๋ค๊ฐ ๋๊ฐ์ ์ค์๋ฅผ ๋ฐ๋ณตํ๊ฒ ๋๋ค.
๊ทธ ์ค์์ ํด๊ฒฐ์ฑ ์ ์ข ๋ฅ๋ณ๋ก ์ ๋ฆฌํ์ฌ ๋ง๋ค์ด ๋์ ๊ฒ์ด ์ํํธ์จ์ด ๋์์ธ ํจํด์ด๋ค.
(ํฐ ์ข ๋ฅ๋ก๋ ์์ฑ ํจํด / ๊ตฌ์กฐํจํด / ํ์ ํจํด์ผ๋ก ๋๋์ด์ง๊ณ , MVC ํจํด์ ๊ตฌ์กฐ ํจํด์ ์ํ๋ค.)
์ ๋ฆฌํ์๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์กฐ๋ฅผ 3๊ฐ(Model / View / Controller)๋ก ์ชผ๊ฐ์ ๊ฐ๊ฐ์ ์ญํ ์ ๋๋์ด ๋ถ๋ดํ์ฌ ์ผ์ ํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ฆ, MVC๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์กฐ๋ฅผ ์ธ ๊ฐ์ง ์ฃผ์ ์ปดํฌ๋ํธ๋ก ๋๋์ด ๊ฐ๋ฐ์ ํ๋ ๋ฐฉ์์ ๋งํ๋ค.
MVC ํจํด ํ๋ฆ
MVC ํจํด ํ๋ฆ์ ๋ํด์ ์ดํด๋ณด์.
์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ํ๋์ ์น ํ์ด์ง์์ ๋ก๊ทธ์ธ์ ํ๋ ค๊ณ ํ๋ค.
๊ทธ๋์ ํ์๋ฅผ ๋ณธ๋ค๋ฉด
โ ์ฌ์ฉ์๊ฐ id, pwd๋ฅผ ์ ๋ ฅํ ํ ๋ก๊ทธ์ธ ๋ฒํผ์ ๋๋ฅธ๋ค. (VIEW)
โก ๋ฒํผ์ ๋๋ฅด๋ฉด id์ pwd์ ์ ๋ณด๊ฐ CONTROLLER์๊ฒ ๋์ฐฉํ๊ฒ ๋๋ค. (CONTROLLER)
โข CONTOLLER๋ MODEL์๊ฒ ๋ก๊ทธ์ธ ์์ฒญ์ ๋ณด๋ธ๋ค. (MODEL)
โฃ SERVICE์์ DAO๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ id์ pwd๋ฅผ ๋น๊ตํ๋ค.
โค ๊ฒฐ๊ณผ ๊ฐ์ CONTROLLER์๊ฒ ๋ณด๋ธ๋ค.
โฅ CONTOLLER๊ฐ ๊ฒฐ๊ณผ๊ฐ์ VIEW๋ก ๋ณด์ฌ์ฃผ๊ฒ ๋๋ค. (๋ก๊ทธ์ธ ์ฑ๊ณต / ๋ก๊ทธ์ธ ์คํจ)
๋ก ์ด์ด์ง๊ฒ ๋๋ค.
์ฌ๊ธฐ์ ๋ ๊ถ๊ธ์ฆ์ โฃ๋ฒ์ด์๋ค.
๊ทธ๋ฅ DAO๋ก ๋ฐ๋ก ๊ฒ์ฌํ๋ฉด ๋์ง ์๋? ํด์ ๊ฒ์์ ํด๋ดค๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ์์ ๊ฐ์ ๊ถ๊ธ์ฆ์ ๊ฐ์ง ๊ฒ์ ํด๋น ๊ฐ๋ ์ ์ ํํ๊ฒ ์ดํดํ๊ณ ์์ง ์์์ ์๊ธด ๊ฒ์ด์๋ค.
DAO์ SERVICE๋ ๊ฐ๊ฐ์ ์ญํ ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
SERVICE
๋น์ฆ๋์ค ๋ก์ง์ ๋ค๋ฃจ๋ ๊ฐ์ฒด์ด๋ค.
CONTROLLER์ MODEL์ฌ์ด์์ ์ค์ฌ ์ญํ ์ ํ๋ค.
DAO
๋ฐ์ดํฐ ์ก์ธ์ค ์์ ์ ํ๋ ๊ฐ์ฒด
์ฌ๊ธฐ์ ๋ฐ์ดํฐ ์ก์ธ์ค ์์ ์ ๋ฐ์ดํฐ CRUD (๋ง๋ค๊ณ , ์ฝ๊ณ , ์์ ํ๊ณ , ์ญ์ ํ๋) ์์ ์ ๋ปํ๋ค.
๋น์ ๋ฅผ ํ์๋ฉด, SERVICE๋ ์ฃผ๋ฐฉ์์ ์ฌ๋ฃ๋ฅผ ๊ฐ๊ณ ์๋ฆฌ(๋ก์ง ๋ค๋ฃจ๊ธฐ)ํ๋ ๋๋์ด๊ณ DAO๋ ๋์ฅ๊ณ ์ ์๋ ์ฌ๋ฃ๋ฅผ ๊บผ๋ด๊ณ , ๋ค์ ์ฑ์๋ฃ๋ ํ์(๋ฐ์ดํฐ ์ ๊ทผ ์์ )๋ผ๊ณ ํ ์ ์๋ค.
โฃ๋ฒ์ ์์ธํ ๋ค์ฌ๋ค ๋ณด๋ฉด
โฃ-1. SERVICE์์ ๋ก๊ทธ์ธ ๋ก์ง์ ์ํํ๊ณ DAO์๊ฒ DB์ ์๋ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์๋ฌ๋ผ๊ณ ์์ฒญํ๋ค.
โฃ-2. DAO์์ DB ์ ๊ทผ : DB์์ ํด๋น ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค. (๋ฐ์ดํฐ ์ก์ธ์ค ์์ : READ)
โฃ-3. SERVICE์์ ๋น๊ต : DAO์๊ฒ ๋ฐ์ ์ฌ์ฉ์ ์ ๋ณด์ ์ ๋ ฅ๋ฐ์ ์ ๋ณด๋ฅผ ๋น๊ตํ ํ CONTROLLER์๊ฒ ๊ฒฐ๊ณผ๊ฐ์ ๋ณด๋ธ๋ค.
์ด๋ ๊ฒ ์ญํ ์ ๋ถ๋ดํจ์ผ๋ก์จ, ์ฝ๋ ์ ์ง๋ณด์, ์๋น์ค๊ฐ db์ ์์กดํ์ง ์๊ฒ ๋๊ณ , ํ์ฅ์ฑ ํ๋, ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ ์ฆ๊ฐ์ ์ด์ ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
โ๊ถ๊ธ์ฆ ํด๊ฒฐโ
ํ์๋ service์ dao์ ์ญํ ์ ํผ๋ํ๊ณ ์์๋ ๊ฒ์ด์๋ค.
๊ฐ๋ ์ ์ ๋๋ก ์๊ณ ์์๋ค๋ฉด ์์ ๊ฐ์ ๊ถ๊ธ์ฆ์ด ๋ค์ง ์์์ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ ๊ฐ๋ ์ ์ ๋ฆฌํด๋ณด๋๊น ์ ์ตํ ์๊ฐ์ด์๊ณ ์์ ๋ํด ์ ๋๋ก ์ดํดํ๊ฒ ๋๋ค.