728x90
๋ฐ์ํ
โ MVC(Model, View, Controller)๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค, ๋ฐ์ดํฐ ๋ฐ ๋ ผ๋ฆฌ ์ ์ด๋ฅผ ๊ตฌํํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด ๋์์ธ ํจํด์ ๋๋ค. ์ํํธ์จ์ด์ ๋น์ง๋์ค ๋ก์ง๊ณผ ํ๋ฉด์ ๊ตฌ๋ถํ๋๋ฐ ์ค์ ์ ๋๊ณ ์์ต๋๋ค. MVC์ ๋ชฉ์ ์ ํ๋ฉด๊ณผ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ๋ถ๋ฆฌํด ์ฝ๋๊ฐ์ ์ข ์์ฑ์ ์ค์ด๊ณ ๊ตฌ์ฑ์์๊ฐ์ ์ญํ ์ ๋ช ํํ๊ฒ ํจ์ผ๋ก์จ ์ฝ๋ ๋ถ๋ฆฌ๊ฐ ์ฝ๊ณ ํ์ ์ ์ฉ์ดํ๊ฒ ํ๋๋ฐ ์์ต๋๋ค.
โ ๋ชจ๋ธ(Model)
- ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ฌด์์ ํ ๊ฒ์ธ์ง ์ ์ํ๋ค. ๋ด๋ถ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ญํ ์ ํ๋ค. ์ฆ, ๋ฐ์ดํฐ ์ ์ฅ์(ex. DB)์ ์ฐ๋ํ์ฌ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฌ๋ค. ํนํ, ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์์ (ex. ์ถ๊ฐ, ๋ณ๊ฒฝ, ์ญ์ )๋ฅผ ํ๋์ ์์ ์ผ๋ก ๋ฌถ์ ํธ๋์ญ์ ์ ๋ค๋ฃจ๋ ์ผ๋ ํ๋ค.
- Model์ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค์ ๋ํด ์์ง ๋ชปํ๋ค. ์๊ธฐ ์์ ์ด ๋ฌด์์ ์ํํ๋์ง๋ง ์๊ณ ์๋ค.
- DAO(Data Access Object) ํด๋์ค, Service ํด๋์ค์ ํด๋น
โ ๋ทฐ(View)
- ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ฌด์์ ํ๋ฉด(UI)๋ก ๋ณด์ฌ์ค๋ค. ํ๋ฉด์ ๋ฌด์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ์ญํ ์ ํ๋ค. ์ฆ, ๋ชจ๋ธ์ด ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ ๊ทธ ์์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๊ณ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํ ํ๋ฉด์ ๋ง๋ ๋ค. ๋ง๋ ํ๋ฉด์ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ถ๋ ฅํ๋ค.
- View ์ญ์๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค์ ๋ํด ์์ง ๋ชปํ๋ค. ์๊ธฐ ์์ ์ด ๋ฌด์์ ์ํํ๋์ง๋ง ์๊ณ ์๋ค.
- HTML๊ณผ JSP๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ
โ ์ปจํธ๋กค๋ฌ(Controller)
- Model๊ณผ View ์ฌ์ด์ ์๋ ์ปดํฌ๋ํธ์ด๋ค. Model์ด ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ์๋ ค์ฃผ๋ ์ญํ ์ ํ๋ค. ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์ผ๋ฉด ํด๋น ์์ฒญ์ ๋ํ ์ค์ ์ ๋ฌด๋ฅผ ์ํํ๋ Model์ ํธ์ถํ๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด, ๋ชจ๋ธ์ ํธ์ถํ ๋ ์ ๋ฌํ๊ธฐ ์ฝ๊ฒ ์ ์ ํ ๊ฐ๊ณตํ๋ค. Model์ด ์ ๋ฌด ์ํ์ ์๋ฃํ๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๊ณ ํ๋ฉด์ ์์ฑํ๋๋ก View์ ์ ๋ฌํ๋ค. ์ฆ, ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํด Model๊ณผ View๋ฅผ ๊ฒฐ์ ํ์ฌ ์ ๋ฌํ๋ ์ผ์ข ์ ์กฐ์ ์๋ก์์ ์ผ์ ํ๋ค.
- Controller๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค์ ๋ํด ์๊ณ ์๋ค. ์๊ธฐ ์์ ์ธ์ Model๊ณผ View๊ฐ ๋ฌด์์ ์ํํ๋์ง ์๊ณ ์๋ค
- Servlet๊ณผ JSP๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ
'Backend > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น(SOLID) (0) | 2022.03.14 |
---|---|
[Spring] IntelliJ ํ๋ก์ ํธ ํ๊ฒฝ ์ค์ (0) | 2022.01.11 |