์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ๊ณต๋ถ๋ฅผ ํ๊ฑฐ๋, ํ๊ต์ ๋ค๋๋ฉด์ ๊ฐ๋ฐ ํจํด์ ๋ํ ์ด์ผ๊ธฐ๋ ๋ง์ด ๋ค์์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ํ๋ฉด์๋ ๋ง์ด ๋ค์์๋ค.
๋ผ์ด์ง์บ ํ๋ฅผ ์๊ฐํ๋ฉฐ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ๊น๊ฒ ํ๊ฒ ๋์๊ณ , ๋ด๊ฐ ์ด๋ก ์ ์ผ๋ก๋ง
์๊ณ ์๋ ์ง์์ ์ ์ฉ์์ผ๋ณด๊ณ ์ถ์๋ค. ๊ทธ๋์ ๋ฐ๋ก ๊ณต๋ถ๋ฅผ ์งํํด์๊ณ , ํ๋ก์ ํธ์ ๊ตฌ์กฐ ์ญ์ ๊ผผ๊ผผํ๊ฒ ์ ๋ฆฌํ๋ฉด์ ๋ณต์ตํ๊ณ ์์๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ํ๋ก์ ํธ๊ฐ ์ด๋ค ๋์์ธ ํจํด์ผ๋ก ์ค๊ณ๋์๋์ง ํท๊ฐ๋ ค ์ง๋ฌธ ์ฑ๋์ ์ง๊ธ๊น์ง ๋ฐฐ์ ๋ ํ๋ก์ ํธ๊ฐ ์ด๋ค ํจํด์ธ์ง ์ง๋ฌธ์ ์ฌ๋ฆฌ๊ฒ ๋์๊ณ
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ด๊ฐ ์๋ชป ์๊ณ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค.
10๊ฐ๊ฐ ๋์ด๊ฐ๋ ๋ต๋ณ์ ๋ณด๋ฉด ์๊ฒ ์ง๋ง ์ดํด๋ฅผ ์ ๋ชปํด์ ๋ค์ ํ ๋ฒ ๊ธ์ ์์ฑํ๋ฉฐ ๊ณต๋ถ๋ฅผ ํ์๋ค.
3 ๊ณ์ธต ๊ตฌ์กฐ(3 tier architecture)
๋ ์ ํ๋ฆฌ์ผ์ด์
์ 3๊ฐ์ ๋
ผ๋ฆฌ์ ๋ฐ ๋ฌผ๋ฆฌ์ ์ปดํจํ
๊ณ์ธต์ผ๋ก ๋ถ๋ฆฌํ๋ 3๊ณ์ธต ์ํคํ
์ฒ๋ ๊ธฐ์กด์ ํด๋ผ์ด์ธํธ-์๋ฒ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ ์ฃผ์ ์ํํธ์จ์ด ์ํคํ
์ฒ๋ฅผ ๋ปํ๋ค.
๊ทธ๋ฌ๋๊น 3๊ณ์ธต ๊ตฌ์กฐ๋ ํ๋ ์ ํ
์ด์
๊ณ์ธต๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค, ๋ฐ์ดํฐ๊ฐ ์ฒ๋ฆฌ๋๋ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต, ๊ทธ๋ฆฌ๊ณ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ฐ๊ด๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ๋๋ ๋ฐ์ดํฐ ๊ณ์ธต์ด ํฌํจ๋๋ค.
์ฌ์ฉ์๊ฐ ์ง์ ๋ง์ฃผํ๊ฒ ๋๋ ๊ณ์ธต์ด๋ค. ๋ฐ๋ผ์ ์ฃผ๋ก ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ง์ํ๋ฉฐ, ์ด ๊ณ์ธต์ GUI
๋๋ ํ๋ก ํธ์๋(front-end)
๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ด ๊ณ์ธต์์๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๊ด๊ณ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ก์ง์ ํฌํจํ์ง ์๋๋ค.
์ฃผ๋ก HTML, Javascript, CSS, ์ฌ์ง ์๋ฃ ๋ฑ์ด ์ด ๊ณ์ธต์ ํด๋นํ๋ค.
์ด ๊ณ์ธต์์๋ ์์ฒญ๋๋ ์ ๋ณด
๋ฅผ ์ด๋ ํ ๊ท์น์ ๋ฐํ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ๊ฐ๊ณตํ๋ ๊ฒ๋ค์ ๋ด๋นํ๋ค. ์ฆ, ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณต
ํ๋ ๊ฒ์ ๋ด๋นํ๋ ๊ฒ์ด๋ค. ๋น์ฆ๋์ค ๋ก์ง(Business Logic) ๊ณ์ธต
๋๋ ํธ๋์ญ์
(Transaction) ๊ณ์ธต
์ด๋ผ๊ณ ๋ ํ๋ค.
์ฒซ ๋ฒ์งธ ๊ณ์ธต(ํ๋ ์ ํ ์ด์ ๊ณ์ธต) ๋๋ ํด๋ผ์ด์ธํธ ๊ณ์ธต์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ์๋ฒ์ฒ๋ผ ๋์(์ฒซ ๋ฒ์งธ ๊ณ์ธต์ด๋ ํด๋ผ์ด์ธํธ ๊ณ์ธต์์ ์์ฒญํ ๋ฐ์ดํฐ๋ฅผ ์๋ตํ๋ ์ญํ )ํ๊ณ , ๋ฐ์ดํฐ ๊ณ์ธต์ด ๋ณผ ๋๋ ํด๋ผ์ด์ธํธ์ฒ๋ผ ํ๋(์ด๋ ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ ๊ณ์ธต์ ์์ฒญ)ํ๋ค.
๋ฐ๋ผ์ ์ด ๊ณ์ธต์ ๋ฏธ๋ค์จ์ด(middleware) ๊ณ์ธต ๋๋ ๋ฐฑ์๋(back-end) ๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ์ด ๊ณ์ธต์์๋ ํ๋ ์ ํ ์ด์ ์ฝ๋๋ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ์ํ ์ฝ๋๋ ํฌํจ๋์ง ์๋๋ค.
์ฃผ๋ก PHP, Java ๋ฑ์ด ์ด ๊ณ์ธต์ ํด๋นํ๋ค.
๋ฐ์ดํฐ ๊ณ์ธต์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๋ ๊ฒ์ ๊ด๋ฆฌ
ํ๋ ๊ฒ์ด ํฌํจ๋๋ค. ๋ฐ๋ผ์ DBMS(Database Management System)์ด ์ด ๊ณ์ธต์ ํด๋นํ๋ค.
์ฃผ๋ก MySQL, MongoDB ๋ฑ์ด ์ด ๊ณ์ธต์ ํด๋น๋๋ค.
์ฅ์
- ๊ฐ ๊ณ์ธต์ด ๋ถ๋ฆฌ๋์ด ์์ด ์
๋ฌด ๋ถ๋ด
์ด ๊ฐ๋ฅํ๋ฏ๋ก ์
๋ฌด ํจ์จ์ฑ ์ฆ๊ฐ
- ์ฌ๋ฌ ๋์ ์๋ฒ๋ก ๋๋์ด ๊ฐ ๊ณ์ธต์ด ๋์ํ๋ฏ๋ก ์๋ฒ์ ๋ถํ๋ฅผ ์ค์ผ ์ ์๋ค.
- ํฉ๋ฆฌ์ ์ธ scale-up์ด ๊ฐ๋ฅํ๋ค.
๋จ์
- 1๊ณ์ธต์ผ๋ก๋ง ์ฌ์ฉํ๋ ๊ฒ์ ๋นํด ๊ด๋ฆฌ๊ฐ ๋ ํ์ํ๋ค.
- ๋น์ฉ์ด ๋ง์ด ๋ฐ์ํ๋ค.
MVC ํจํด์ Model - View - Controller
์ ์ฝ์์ด๋ค. MVC ํจํด์ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์
, ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ๋ ๊ทธ ๊ตฌ์ฑ์์๋ฅผ ์ธ ๊ฐ์ง์ ์ญํ ๋ก ๊ตฌ๋ถ
ํ ํจํด์ด๋ค.
์ฌ์ฉ์๊ฐ Contoller
๋ฅผ ์กฐ์ํ๋ฉด Controller๋ Model
์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก View
๋ฅผ ํตํด ์๊ฐ์ ํํ์ ์ ์ดํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๋ฌ์ ํ๋ค.
์ด MVC ํจํด์ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉํ๋ฉด, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก๋ถํฐ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌ
ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ์๊ฐ์ ์์๋ ๊ทธ ์ด๋ฉด์์ ์คํ๋๋ ๋น์ฆ๋์ค ๋ก์ง์ ์๋ก ์ํฅ ์์ด ์ฝ๊ฒ ๊ณ ์น ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ ์ํ ์ ์๋ค.
๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด
๋ฅผ ๋ชจ๋ธ์ด๋ผ๊ณ ์ง์นญํ๋ค. ๋ฐ์ดํฐ๋ ๋ด๋ถ ์ํ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง ์๋ ์๊ณ , ๋ชจ๋ธ์ ํํํ๋ ์ด๋ฆ, ์์ฑ์ผ๋ก ๊ฐ์ง ์ ์๋ค. ๋ชจ๋ธ์ ์ํ ๋ณํ๊ฐ ์์ ๋ ์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ์ด๋ฅผ ํต๋ณดํ๋ค. ์ด์ ๊ฐ์ ํต๋ณด๋ฅผ ํตํด ๋ทฐ๋ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค ์ ์๊ณ , ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ์ ๋ณํ์ ๋ฐ๋ฅธ ์ ์ฉ ๊ฐ๋ฅํ ๋ช
๋ น์ ์ถ๊ฐ, ์ ๊ฑฐ, ์์ ํ ์ ์๋ค.
ํธ์งํ๊ธธ ์ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ
๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.View๋ ์ฌ์ฉ์๊ฐ ์ง์ ๋ง์ฃผํ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก, ์ฃผ๋ก ํ๋ก ํธ์๋ ์ชฝ ๊ธฐ์ ๋ค์ ๋ชจ์๋์ ์ปจํ ์ด๋์ด๋ค. ์ฌ์ฉ์๊ฐ ๋ณผ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑํ๊ธฐ ์ํ์ฌ ๋ชจ๋ธ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์จ๋ค.
์ฌ์ฉ์๊ฐ ์ ๊ทผํ URL
์ ๋ฐ๋ผ ์ฌ์ฉ์์ ์์ฒญ ์ฌํญ์ ํ์
ํ ํ์ ๊ทธ ์์ฒญ์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ Model์ ์๋ขฐํ๊ณ ๋ฐ์ดํฐ๋ฅผ Veiw์ ๋ฐ์ํด์ ์ฌ์ฉ์์๊ฒ ์๋ ค์ค๋ค.
๋น์ฆ๋์ค ๋ก์ง๊ณผ UI ๋ก์ง์ ๋ถ๋ฆฌ
ํ์ฌ ์ ์ง ๋ณด์๋ฅผ ๋
๋ฆฝ์ ์ผ๋ก ์ํ ๊ฐ๋ฅํ์ฅ์ฑ
๊ณผ ์ ์ฐ์ฑ
์ ์ ๋ฆฌํ๋ค.View
์ Model
์ด ์์กด์ฑ์ ๋๊ฒ ๋๋ค.