์ด ์๋ฃ๋ "์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ ์๊ฐ" ์๋ฆฌ์ฆ์ ์ผ๋ถ์
๋๋ค. ์ด์ ๊ธฐ์ฌ:
- ๋คํธ์ํฌ์ ๋ํด ;
- ์ํํธ์จ์ด ์ํคํ ์ฒ์ ๋ํด ;
- HTTP/HTTPS ํ๋กํ ์ฝ์ ๋ํด ;
- Maven ๊ธฐ๋ณธ ์ฌํญ์ ๋ํด ;
- ์๋ธ๋ฆฟ์ ๋ํด (์ฐ๋ฆฌ๋ ๊ฐ๋จํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ณ ์์ต๋๋ค) ;
- ์๋ธ๋ฆฟ ์ปจํ ์ด๋์ ๋ํด .
MVC์ ์ญ์ฌ
MVC์ ๋ํ ์์ด๋์ด๋ 70๋ ๋ ํ๋ฐ Xerox PARC์์ ๊ทผ๋ฌดํ๋ฉด์ Trygve Reenskaug๊ฐ ๊ณ ์ํ์ต๋๋ค. ๊ทธ ๋น์ ์ปดํจํฐ ์์ ์ ํ์ ํ์์ ๋ฐฉ๋ํ ๋ฌธ์์ ๋ํ ๋์์๋ ์ฐ๊ตฌ ์์ด๋ ๋ถ๊ฐ๋ฅํ์ต๋๋ค. Reenskaug๊ฐ ๋งค์ฐ ๊ฐ๋ ฅํ ๊ฐ๋ฐ์ ๊ทธ๋ฃน๊ณผ ํจ๊ป ํด๊ฒฐํ ๋ฌธ์ ๋ ์ผ๋ฐ ์ฌ์ฉ์์ ์ปดํจํฐ์ ์ํธ ์์ฉ์ ๋จ์ํํ๋ ๊ฒ์ด์์ต๋๋ค. ํํธ์ผ๋ก๋ ๋งค์ฐ ๊ฐ๋จํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ฐ๋ฉด์๋ ๋ค๋ฅธ ํํธ์ผ๋ก๋ ์ปดํจํฐ์ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฆฌํ ์ ์๋ ๋๊ตฌ๋ฅผ ๋ง๋๋ ๊ฒ์ด ํ์ํ์ต๋๋ค. Reenskaug๋ Alan Kay์ ์ง๋ ํ์ "๋ชจ๋ ์ฐ๋ น๋์ ์ด๋ฆฐ์ด๋ฅผ ์ํ" ํด๋์ฉ ์ปดํจํฐ์ธ Dynabook๊ณผ SmallTalk ์ธ์ด๋ฅผ ๊ฐ๋ฐํ๋ ํ์์ ์ผํ์ต๋๋ค. ์น์ํ ์ธํฐํ์ด์ค์ ๊ฐ๋ ์ด ํ๋ฆฝ๋ ๊ฒ์ ๋ฐ๋ก ๊ทธ๋์์ต๋๋ค. Reenskaug์ ๊ทธ์ ํ์ ์์ ์ IT ๋ถ์ผ์ ๋ฐ์ ์ ํฐ ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค. MVC์ ์ง์ ์ ์ผ๋ก ๊ด๋ จ๋์ง๋ ์์ง๋ง ์ด๋ฌํ ๊ฐ๋ฐ์ ์ค์์ฑ์ ๋ณด์ฌ์ฃผ๋ ํฅ๋ฏธ๋ก์ด ์ฌ์ค์ ์ ์ํ๊ฒ ์ต๋๋ค. 2007๋ , Apple iPhone์ด ๋ฐํ๋ ํ Alan Kay๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํ์ต๋๋ค. โMacintosh๊ฐ ๋์์ ๋ Newsweek๋ ๋์๊ฒ ๊ทธ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ๋ฌผ์์ต๋๋ค. ๋๋ ์ด๋ ๊ฒ ๋งํ์ต๋๋ค. ์ด๊ฒ์ ๋นํ๋ฐ์ ๋งํ ์ต์ด์ ๊ฐ์ธ์ฉ ์ปดํจํฐ์ ๋๋ค. ํ๋ ์ ํ ์ด์ ์ด ๋๋ ํ Steve Jobs๊ฐ ์์ ๋ฌผ์์ต๋๋ค. iPhone์ด ๋นํ๋ฐ์ ๊ฐ์น๊ฐ ์์ต๋๊น? ๊ทธ๋ฆฌ๊ณ ์ ๋ ๊ฐ๋ก์ธ๋ก 5์ธ์น, ์ธ๋ก 8์ธ์น๋ก ๋ง๋ค๋ฉด ์ธ๊ณ๋ฅผ ์ ๋ณตํ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค.โ 3๋ ํ์ธ 2010๋ 1์ 27์ผ, Apple์ 9.7์ธ์น iPad๋ฅผ ์ถ์ํ์ต๋๋ค. ์ฆ, ์คํฐ๋ธ ์ก์ค๋ Alan Kay์ ์กฐ์ธ์ ๊ฑฐ์ ๋ฌธ์ ๊ทธ๋๋ก ๋ฐ๋์ต๋๋ค. Rennskaug๊ฐ ์์ ํ ํ๋ก์ ํธ๋ 10๋ ๋์ ์ง์๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์์๊ฐ MVC์ ๊ดํ ์ฒซ ๋ฒ์งธ ์ถํ๋ฌผ์ 10๋ ํ์ ์ถํํ์ต๋๋ค. ์ํํธ์จ์ด ์ํคํ ์ฒ์ ๊ดํ ์ฌ๋ฌ ์ฑ ๊ณผ ๊ธฐ์ฌ์ ์ ์์ธ Martin Fowler๋ SmallTalk์ ์๋ ๋ฒ์ ์์ MVC๋ฅผ ๋ฐฐ์ ๋ค๊ณ ์ธ๊ธํฉ๋๋ค. ์ค๋ซ๋์ ๊ธฐ๋ณธ ์์ค๋ก๋ถํฐ MVC์ ๋ํ ์ ๋ณด๊ฐ ์์๊ณ ๋ค๋ฅธ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ธํด ์ด ๊ฐ๋ ์ ๋ํ ๋ค์ํ ํด์์ด ๋ํ๋ฌ์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ง์ ์ฌ๋๋ค์ MVC๋ฅผ ๋์์ธ ์ฒด๊ณ๋ ํจํด์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค. ๋ ์ผ๋ฐ์ ์ผ๋ก MVC๋ ๋ณตํฉ ํจํด ๋๋ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ๊ธฐ ์ํด ํจ๊ป ์๋ํ๋ ์ฌ๋ฌ ํจํด์ ์กฐํฉ์ด๋ผ๊ณ ํฉ๋๋ค. ํ์ง๋ง ์ฌ์ค ์์ ๋งํ๋ฏ์ด MVC๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ํ ํจํด์ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์๋ ์ผ๋ จ์ ์ํคํ ์ฒ ์์ด๋์ด/์๋ฆฌ/์ ๊ทผ ๋ฐฉ์์ ๋๋ค... ๋ค์์ผ๋ก MVC ๊ฐ๋ ์ ํฌํจ๋ ์ฃผ์ ์์ด๋์ด๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.MVC๋ ๋ฌด์์ธ๊ฐ: ๊ธฐ๋ณธ ์์ด๋์ด์ ์๋ฆฌ
- VC๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ ๋ณต์กํ ์ ๋ณด ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ผ๋ จ์ ์ํคํ ์ฒ ์์ด๋์ด์ ์์น์ ๋๋ค.
- MVC๋ Model-View-Controller์ ์ฝ์ด์ ๋๋ค.
1๋จ๊ณ: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์์ ๋ถ๋ฆฌ
MVC์ ํต์ฌ ์์ด๋์ด๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๊ฐ ์๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋๋ต์ ์ผ๋ก 2๊ฐ์ ๋ชจ๋, ์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๋ก์ง ๊ตฌํ์ ๋ด๋นํ๋ ๋ชจ๋๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก ๋๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฒซ ๋ฒ์งธ ๋ชจ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ์ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค. ์ด ๋ชจ๋์ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ฉ์ธ ๋ชจ๋ธ์ด ๊ตฌํ๋๋ ์์คํ ์ ํต์ฌ์ด ๋ฉ๋๋ค. MVC ๊ฐ๋ ์์ ์ด ๋ชจ๋์ ๋ฌธ์ M์ด ๋ฉ๋๋ค. ๋ชจ๋ธ. ๋ ๋ฒ์งธ ๋ชจ๋์ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ ํ์ ๋ฐ ์ฌ์ฉ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํธ ์์ฉ ๋ ผ๋ฆฌ๋ฅผ ํฌํจํ์ฌ ์ ์ฒด ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํฉ๋๋ค. ์ด๋ฌํ ๋ถ๋ฆฌ์ ์ฃผ์ ๋ชฉ์ ์ ์์คํ ์ ํต์ฌ(MVC ์ฉ์ด๋ก ๋ชจ๋ธ)์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ํ ์คํธํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๋ถํ ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.2๋จ๊ณ. ๊ด์ฐฐ์ ํจํด์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ ๋ฆฝ์ฑ๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋๊ธฐํ๋ฅผ ๋์ฑ ๊ฐํํฉ๋๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ 2๊ฐ์ง ๋ชฉํ๋ฅผ ์ถ๊ตฌํฉ๋๋ค:- ๋ชจ๋ธ์ ๋ ๋ฆฝ์ฑ์ ๋์ฑ ํฅ์์ํต๋๋ค.
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋๊ธฐํํฉ๋๋ค.
Step 3. ์ธํฐํ์ด์ค๋ฅผ View์ Controller๋ก ๋๋๊ธฐ
์ฐ๋ฆฌ๋ ๊ณ์ํด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋๋ก ๋๋์ง๋ง ๊ณ์ธต ๊ตฌ์กฐ์ ๋ฎ์ ์์ค์ ์์ต๋๋ค. ์ด ๋จ๊ณ์์๋ 1๋จ๊ณ์์ ๋ณ๋์ ๋ชจ๋๋ก ๋ถ๋ฆฌ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ทฐ์ ์ปจํธ๋กค๋ฌ๋ก ๊ตฌ๋ถํฉ๋๋ค. ๋ทฐ์ ์ปจํธ๋กค๋ฌ ์ฌ์ด์ ์๊ฒฉํ ์ ์ ๊ธ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค. ๋ทฐ๋ ์ฌ์ฉ์๊ฐ ๋ณด๋ ๊ฒ์ด๊ณ ์ปจํธ๋กค๋ฌ๋ ์ฌ์ฉ์๊ฐ ์์คํ ๊ณผ ์ํธ ์์ฉํ ์ ์๋ ๋ฉ์ปค๋์ฆ์ด๋ผ๊ณ ๋งํ๋ฉด ๋ชจ์์ด ์์ต๋๋ค. ์น ํ์ด์ง์ ๋ฒํผ์ด๋ ์ ํ๊ธฐ ํ๋ฉด์ ๊ฐ์ ํค๋ณด๋์ ๊ฐ์ ์ปจํธ๋กค์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ปจํธ๋กค๋ฌ์ ์ผ๋ถ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ทฐ์ ๋ค๋ฅธ ๋ถ๋ถ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ๊ธฐ๋ฅ์ ๋ถํ ์ ๋ํด ์์ธํ ์ค๋ช ํฉ๋๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์ฃผ์ ์๋ฌด๋ ์ฌ์ฉ์์ ์์คํ ์ ์ํธ ์์ฉ์ ๋ณด์ฅํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ธํฐํ์ด์ค์๋ 2๊ฐ์ง ๊ธฐ๋ฅ๋ง ์์ต๋๋ค.- ์์คํ ์ ๊ดํ ์ ๋ณด๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํ๊ณ ํธ๋ฆฌํ๊ฒ ํ์ํฉ๋๋ค.
- ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ๋ช ๋ น์ ์์คํ ์ ์ ๋ ฅํฉ๋๋ค(์์คํ ์ผ๋ก ์ ์ก).
- MVC์ ์์น์ ๋ฐ๋ผ ์์คํ ์ ๋ชจ๋๋ก ๋๋์ด์ผ ํฉ๋๋ค.
- ๊ฐ์ฅ ์ค์ํ๊ณ ๋ ๋ฆฝ์ ์ธ ๋ชจ๋์ ๋ชจ๋ธ์ด์ด์ผ ํฉ๋๋ค.
- ๋ชจ๋ธ์ ์์คํ ์ ํต์ฌ์ด๋ค. ์ธํฐํ์ด์ค์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ํ ์คํธํ ์ ์๋ ๋ฅ๋ ฅ์ด ํ์ํฉ๋๋ค.
- ์ด๋ฅผ ์ํด์๋ ์์คํ ๋ถ๋ฆฌ์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์์ ๋ชจ๋ธ๊ณผ ์ธํฐํ์ด์ค๋ก ๋๋์ด์ผ ํฉ๋๋ค.
- ๋ค์์ผ๋ก Observer ํจํด์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ ๋ฆฝ์ฑ์ ๊ฐํํ๊ณ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋๊ธฐํ๋ฅผ ์ป์ต๋๋ค.
- ์ธ ๋ฒ์งธ ๋จ๊ณ๋ ์ธํฐํ์ด์ค๋ฅผ ์ปจํธ๋กค๋ฌ์ ๋ทฐ๋ก ๋๋๋ ๊ฒ์ ๋๋ค.
- ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์์คํ ์ ์ ๋ ฅํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ์ปจํธ๋กค๋ฌ์ ์์ต๋๋ค.
- ์์คํ ์์ ์ฌ์ฉ์์๊ฒ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ ๋ชจ๋ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
GO TO FULL VERSION