ํ๋ฆฌ์ฝ์ค ๋ง์ง๋ง ๋ฏธ์ (4์ฃผ ์ฐจ)์์์ผ MVC๋ฅผ ๋ค๋ฆ๊ฒ ์๊ฒ ๋์ด ์ ์ฉํด๋ณด์์๋ค.
(์ ์ฉํ ๊ฒ๋ ์ํ๋์ง ์ ์ ์๋ค...ใ ใ ๋ฌด์ธ๊ฐ ์๊ฒ ๋๊ณ , ๋ฐฐ์ธ์๋ก ๋์ ๋ํ ๋ถ์กฑํจ์ด ๋๊ปด์ง๋ค.)
MVC๋ฅผ ์ ์ฉํ๊ณ ๊ณต๋ถํ๊ธฐ ์ํด์, ํ ์ฝํก์ ๋จผ์ ์ฐพ์๋ดค๊ณ ์ด๋ฅผ ์ ๋ฆฌํ๋ค.
[10๋ถ ํ ์ฝํก] ๐ฉ๐ป๐ป๐จ๐ป๐ปแแ ขแ แ ต&แแ งแซ์ MVC ํจํด
[ MVC ํจํด์ด๋? ]
Model, View, Controller ๋ก ๊ตฌ์ฑ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ์ 3๊ฐ์ง ์ญํ ๋ก ๊ตฌ๋ถํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ด๋ค.MVC ํจํด
Model: ๊ฐ๊ณผ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด
View: ๋ชจ๋ธ์ ํฌํจ๋ ๋ฐ์ดํฐ์ ์๊ฐํ
Controller: ๋ชจ๋ธ ๊ฐ์ฒด๋ก์ ๋ฐ์ดํฐ ํ๋ฆ์ ์ ์ด, ๋ทฐ์ ๋ชจ๋ธ์ ์ญํ ์ ๋ถ๋ฆฌ
[ MVC ํจํด ์ฅ์ ]
- ๊ฐ ์ปดํฌ๋ํธ์ ์ฝ๋ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ ์ ์๋ค.
- ์ฝ๋์ ์ฌ์ฌ์ฉ์ ๋์ผ ์ ์๋ค.
- ๊ตฌํ์๋ค ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ํจ์จ์ฑ์ ๋์ผ ์ ์๋ค.
[ Service๋? ]
๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด์ด๋ค.
๋น์ฆ๋์ค ๋ฉ์๋๋ฅผ ๋ณ๋์ Service ๊ฐ์ฒด์์ ๊ตฌํํ๋๋ก ํ๊ณ ์ปจํธ๋กค๋ฌ๋ Service ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋๋ก ํ๋ค.
[ Repository๋? ]
DAO(Data Access Object)์ ์ ์ฌํ๋ค.
๋ฐ์ดํฐ ์ก์ธ์ค ๋ฉ์๋๋ฅผ ๋ณ๋์ Repository ๊ฐ์ฒด์์ ๊ตฌํํ๋ค.
Service๋ Repository์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค.
[10๋ถ ํ ์ฝํก] ๐ง ์ ๋ฆฌ์ MVC ํจํด
[ MVC๊ฐ ์๊ฒจ๋ ์ด์ ]
์ ์ง๋ณด์๋ฅผ ์ด๋ป๊ฒ ํ๋ฉด ํธํ๊ฒ ํ ์ ์์๊น๋ฅผ ๊ณ ๋ฏผํ๋ค๊ฐ ํ์ํ๊ฒ ๋ ํจํด ์ค ํ๋์ด๋ค.
[ MVC ๊ตฌ์ฑ ]
Model: ๋ฐ์ดํฐ์ ๊ด๋ จ๋ ๋ถ๋ถ
View: ์ฌ์ฉ์ํํ ๋ณด์ฌ์ง๋ ๋ถ๋ถ
Controller: Model ๊ณผ View ๋ฅผ ์ด์ด์ฃผ๋ ๋ถ๋ถ
[ MVC๋ฅผ ์งํค๋ฉด์ ์ฝ๋ฉํ๋ ๋ฐฉ๋ฒ ]
- Model
๋ชจ๋ธ์ ์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ์์กดํ์ง ์์์ผ ํ๋ค. ์ฆ, ๋ชจ๋ธ ๋ด๋ถ์ ์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ๊ด๋ จ๋ ์ฝ๋๊ฐ ์์ผ๋ฉด ์ ๋๋ค. (์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ํด๋์ค๋ฅผ importํด์ ์ฌ์ฉํ๋ฉด ์๋๋ค.)
- View
๋ทฐ๋ ๋ชจ๋ธ์๋ง ์์กดํด์ผ ํ๊ณ , ์ปจํธ๋กค๋ฌ์๋ ์์กดํ๋ฉด ์ ๋๋ค.
์ฆ, ๋ทฐ ๋ด๋ถ์ ๋ชจ๋ธ์ ์ฝ๋๋ง ์์ ์ ์๊ณ , ์ปจํธ๋กค๋ฌ์ ์ฝ๋๊ฐ ์์ผ๋ฉด ์ ๋๋ค.
๋ทฐ๊ฐ ๋ชจ๋ธ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋๋, ์ฌ์ฉ์๋ง๋ค ๋ค๋ฅด๊ฒ ๋ณด์ฌ์ฃผ์ด์ผ ํ๋ ๋ฐ์ดํฐ์ ๋ํด์๋ง ๋ฐ์์ผ ํ๋ค.
์ฆ, ๋ทฐ๋ ์ฌ์ฉ์ํํ ๋ณด์ด๋ UI์ ๋ชจ๋ธ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๊ฐ ํฉ์ณ์ ธ ๋ง๋ ํ๋ฉด์ด๋ค.
- Controller
์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ๊ณผ ๋ทฐ์ ์์กดํด๋ ๋๋ค.
์ฆ, ์ปจํธ๋กค๋ฌ ๋ด๋ถ์๋ ๋ชจ๋ธ๊ณผ ๋ทฐ์ ์ฝ๋๊ฐ ์์ ์ ์๋ค.
→ ์๋ํ๋ฉด, ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ๊ณผ ๋ทฐ์ ์ค๊ฐ์ ์ญํ ์ ํ๋ฉด์ ์ ์ฒด ๋ก์ง์ ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ทฐ๊ฐ ๋ชจ๋ธ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋, ๋ฐ๋์ ์ปจํธ๋กค๋ฌ์์ ๋ฐ์์ผ ํ๋ค.
ํ ์ฝํก ๋๋ถ์ MVC์ ๋ํด ์ดํดํ ์ ์์๊ณ , ๋ฏธ์ ์ ์ ์ฉํ๋ ์ผ๋ง ๋จ์๋ค.
์ด๋ก ์ ๋ํด ์๊ณ ์๋๋ผ๋ ์ค์ ์ ๋ ์ด๋ ค์ด ๊ฒ ๊ฐ๋ค.
๋ฏธ์ ์ ์ค์ ๋ก ์ ์ฉํ๋๋ฐ ์ด๋ ค์์ด ์์ด์, ์ ๊ธฐ์๋ถ๋ค์ ๋ฏธ์ ์ฝ๋๋ฅผ ์ด์ฌํ ๋ดค๋ค...
MVC ์ฝ๋๋ฅผ ์ ์ฉํ์ ๋ถ๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์ ๋ง ๋ง์ ๊ณ ๋ฏผ๋ค์ ํ๋ค.
์ ๋ง์ ๊ณ ๋ฏผ์ ํ๋๋ฉด...
MVC๋ฅผ ์ ์ฉํ๋ ๋ฐฉ์์ด ์ฌ๋๋ง๋ค ๋ค ๋ฌ๋๋ค...๐ฒ
- model, view, controller
- model, view, controller, utils
- model, view, controller, utils, service
- model, view, controller, utils, service, repository, dto, validator, exception
์ด๋ ๊ฒ 4๊ฐ์ง ์ ๋๋ฅผ ๋ดค๊ณ , ๋ด ํ๋ฆฌ์ฝ์ค ๋ง์ง๋ง ๋ฏธ์ ์ model, view, controller, service๋ก ๊ตฌ์ฑํ๋ค.
๋ด๊ฐ ํ๋ ๋ฐฉ์์ฒ๋ผ ์ด๋ ๊ฒ ํ๋ ๊ฒ ๋ง๋์ง ์์ ๋ ์์๊ณ , ์ฌ๋๋ง๋ค ๋ค๋ฅด๋๊น ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ตฌํํด์ผ ํ๋์ง ๋๋ฌด๋ ํท๊ฐ๋ ธ๋ค.
(๋ด ๋ฐฉ์์ธ model, view, controller, service ๋ง์ผ๋ก๋ ๊ฐ์ฒด ์งํฅ ์ค๊ณ๊ฐ ๋ถ์กฑํ๋ค๊ณ ์๊ฐํ๋ค.)
๊ทธ๋๋ ๋ด ๋ฐฉ์๋ณด๋ค, 4๋ฒ์ฒ๋ผ ํ๋ ๊ฒ ๊ฐ์ฅ ์ ์ค๊ณ๋์๋ค๊ณ (๋ ์ฒด๊ณ๊ฐ ๊ฐ์ถฐ์ง MVC๋ผ๊ณ ) ์๊ฐํ๊ณ ๋ฌด์์ ๋ฐ๋ผ ํ๋ฉด์ ๊ทผ๋ ๋ฉฐ์น ์ ๊ณต๋ถํ๋ค.
๋๋ 4๋ฒ์ฒ๋ผ ํ์ ๋ถ์ ์ฝ๋๋ฅผ ๋ณด๊ณ MVC ํจํด๊ณผ ์นํด์ง๊ธฐ๋ก ํ๋ค.
๊ทผ๋ฐ, ์ฝ๋๊ฐ ์ดํด๊ฐ ์ ๋๋ ๋ถ๋ถ๋ ์์๊ณ , ๋ด๊ฐ ๋ค๋ฅธ ๋ฏธ์ ์ด ์ฃผ์ด์ก์ ๊ฒฝ์ฐ ์ด๋ ๊ฒ ๋๊ฐ์ด ์ ์ฉํ๊ณ ์๊ฐ ๋ด์ ๊ตฌํํ ์ ์์์ง?๋ผ๋ ์๋ฌธ์ด ๋ค์๋ค. (๋๋ ์ด์ ์ผ MVC ํจํด์ ์ ์ฉํด๋ณด๋ ์ฌ๋์ด๊ณ , ์ค๋ ฅ์ ๋นํด ์ฒ์๋ถํฐ ๋๋ฌด ์ํ๊ณ ์ถ์ ์์ฌ์ด ์์ฐ๋ ๊ฒ ๊ฐ๋ค.)
๊ทธ๋์, ๋ด๊ฐ ์ข ๋ MVC ํจํด์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ ๋ณตํด๋๊ฐ๋ฉฐ 4๋ฒ์ฒ๋ผ ์ค์ค๋ก ๊ตฌํํ ์์ ์ด ์๊ฒผ์ ๋ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ ํ๋ค.
์์ฝ์ง๋ง, 3๋ฒ ํจํด์ผ๋ก ๊ณต๋ถํด ๋์๊ฐ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
์ด์ ๊ทธ๋์ ์งํํ๋ ๋ฏธ์ ๋ค์ 3๋ฒ ํจํด๊ณผ ๊ฐ์ด ๋ค์ ๊ตฌํํด๋ณด๋ฉด์ ๊ณต๋ถํด์ผ๊ฒ ๋ค.
'์ฐ์ํํ ํฌ์ฝ์ค 5๊ธฐ ๋ฐฑ์๋ ํ๋ฆฌ์ฝ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฐํ ์ฝ 5๊ธฐ ํ๋ฆฌ์ฝ์ค] ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋ (0) | 2022.12.05 |
---|---|
[์ฐํ ์ฝ 5๊ธฐ ํ๋ฆฌ์ฝ์ค] ์ซ์ ์ผ๊ตฌ with ์๋ฐ ๊ธฐ์ด ๊ฐ์ ์ ๋ฆฌ (0) | 2022.11.27 |
[์ฐํ ์ฝ 5๊ธฐ ํ๋ฆฌ์ฝ์ค] ํผ๋๋ฐฑ ์ ๋ฆฌ (0) | 2022.11.25 |
[์ฐํ ์ฝ 5๊ธฐ ํ๋ฆฌ์ฝ์ค] ์ฐธ์ฌ ํ๊ธฐ (0) | 2022.11.24 |
[์ฐํ ์ฝ 5๊ธฐ ํ๋ฆฌ์ฝ์ค] 4์ฃผ์ฐจ: ๋ค๋ฆฌ ๊ฑด๋๊ธฐ (0) | 2022.11.24 |