๋ณธ ์๋ฆฌ์ฆ๋ ์ธํ๋ฐ ํ์ต ์ฌ์ดํธ์ ๊น์ํ ๊ฐ์ฌ๋์ java spring mvc - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํต์ฌ ๊ธฐ์ ํธ์ ํ์ตํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์์ต๋๋ค.
์๋
spring์ ํต์ฌ์๋ฆฌ๋ฅผ ํ์ตํ๊ณ spring framework๋ฅผ ํตํด web์ ๊ฐ๋ฐํ๊ณ ์ถ๋ค๋ ์๊ฐ์ ํ๊ฒ ๋์๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ ํ์ต์ด ๋ง์ฐฌ๊ฐ์ง๊ฒ ์ง๋ง ๊ฐ๋ ์ ๋ฐฐ์ ๋ค๊ณ ํด์ ๊ทธ๊ฒ์ ๋ฐ๋ก ์จ๋จน์ ์ ์๊ธฐ๋ ๋จธ๋ฆฌ๊ฐ ๋น์ํ ์ฌ๋์ด ์๋ ์ด์ ํ๊ธฐ ์ด๋ ค์ด ๊ฒ์ด ์ฌ์ค...
๊ฐ๋ ์ ํ์ตํ์ผ๋ ์ค์ํ์ ์ ์ฉํ๊ธฐ ์ํ ์์ฉ(์ฌํ)์ ํ์ตํด๋ณด์.
spring ์น ๊ฐ๋ฐ์ ์์ด์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ญ๊น? ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๊ฒ ์ง๋ง ๋ฌด์๋ณด๋ค mvc ํจํด์ ์๊ณ ์์ด์ผ ํ๋ค.
๊ทธ๋ฌ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ป๊ฒ ๋์ํ๊ณ ์ด๋ค ์ํ๊ณ๋ก ์ด๋ฃจ์ด์ ธ ์๋์ง๋ฅผ ์๋ ๊ฒ์ด ๋จผ์ ์ ํ๋์ด์ผ ํ ๊ฒ์ด๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ดํด
HTTP ์๋
ํ๋์ Web ํต์ ์์๋ ์ด๋ฅธ ๋ฐ HTTP ์๋๋ผ๊ณ ํด๋ ๊ณผ์ธ์ด ์๋๋ค. HTTP ๋ฉ์ธ์ง์ ๋ชจ๋ ๊ฒ์ ๋ด์ ์ ์กํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.HTML๊ณผ ํ ์คํธ ๊ฐ์ ์ ์ ๋ฉ์์ง๋ ๋ฌผ๋ก ์ด๊ณ ์ด๋ฏธ์ง, ์์ฑ ํ์ผ, ์์ ํ์ผ, JSON, XML ๋ฑ. ๊ฑฐ์ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ก๋ค.
๋ฐ๋ผ์ ์ด๋ฌํ HTTP ๊ธฐ๋ฐ์์ ์๋ฒ๋ฅผ ๊ตฌ๋์ํค๋ ๊ฒ์ด ์ผ๋ฐํ๋์๊ณ , ์๋ฒ๋ ์ฉ๋์ ๋ฐ๋ผ ๋ค์์ 2๊ฐ์ง๋ก ๋๋๊ฒ ๋์๋ค.
์น ์๋ฒ (Web Server)
- HTTP ๊ธฐ๋ฐ์ผ๋ก ๋์
- ์ ์ ๋ฆฌ์์ค๋ฅผ ์ ๊ณต
- ์ ์ HTML, CSS, JS
- ex. NGINX, APACHE
์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ (WAS - Web Application Server)
- HTTP ๊ธฐ๋ฐ์ผ๋ก ๋์
- ์น ์๋ฒ ๊ธฐ๋ฅ ํฌํจ + (์ ์ ๋ฆฌ์์ค ์ ๊ณต ๊ฐ๋ฅ)
- ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ์คํํด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์ํ
- ๋์ HTML, HTTP API(JSON)
- ์๋ธ๋ฆฟ, JSP, ์คํ๋ง MVC
- ex. ํฐ์บฃ(Tomcat) Jetty, Undertow
์ด์ฒ๋ผ HTTP ๊ธฐ๋ฐ์ ์๋ฒ๋ ๋จ์ํ ์ ์ ๋ฆฌ์์ค๋ง์ ์ ๊ณตํ๋ ์น ์๋ฒ์ ์ ์ ๊ณผ ๋์ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ ๊ณตํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๊ฐ ์๋ค๋ ๊ฒ์ ํ์ตํ๋ค. ๊ทธ๋ฐ๋ฐ ๋์ ๊ด๊ณ๊ฐ ๋ชจํธํ ๊ฒ ๊ฐ๋ค. ์ ํํ ์ฐจ์ด๊ฐ ๋ฌด์์ผ๊น?
์น ์๋ฒ๋ ์ ์ ๋ฆฌ์์ค(ํ์ผ) , WAS๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์ผ๋ก ๊ตฌ์ฑ ๋์ด ์๋ค๋ ๊ฒ์ด ๊ฐ์ฅ ํฐ ์ฐจ์ด์ด๋ค. ์ฌ์ค ์น ์๋ฒ๋ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๊ณ , ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ ์น ์๋ฒ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๊ทธ๋ฌ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(WAS)๊ฐ ์ข ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์คํํ๋๋ฐ ๋ ํนํ ๋์ด ์๋ค.
์น ์์คํ ๊ตฌ์ฑ - WAS, DB
WAS๋ ์ ์ ๋ฆฌ์์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๊ธฐ๋ฅ์ ๋ชจ๋ ์๋น์ค ํ ์ ์๋ค. ์ด ์ ์ ์ด์ฉํด์ WAS์ DB๋ง์ผ๋ก๋ ์น์ ๊ตฌ์ฑํ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ, ์ด๊ฒ ๋ง๋...?
์ด๋ ๊ฒ ๊ตฌ์ฑํ๊ฒ ๋๋ค๋ฉด WAS๊ฐ ๋๋ฌด ๋ง์ ์ญํ ์ ๋ด๋นํ๊ฒ ๋๋ค. ์ฆ, ์๋ฒ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๋ ๊ฒ์ด๋ค. ๋ํ, ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋ฉ์ธ์ผ๋ก ์ฒ๋ฆฌํด์ผํ WAS๊ฐ ์ ๋ง์ ์ ์ ๋ฆฌ์์ค ๋๋ฌธ์ ์ด๋ฅผ ์ํํ๊ธฐ๊ฐ ์ด๋ ค์์ง๋ค. ๊ทธ ๋ฟ๋ง์ด ์๋๋ผ WAS๊ฐ ์ฅ์ ๋ฅผ ๋ฐ์์์ผฐ์ ๋, ์ค๋ฅ ํ๋ฉด์ ์ถ๋ ฅํ๋๊ฒ๋ ๋ถ๊ฐ๋ฅํ๋ค.
๊ทธ๋ ๋ค๋ฉด ์น์ ์ด๋ป๊ฒ ๊ตฌ์ฑํด์ผํ ๊น?
์น ์์คํ ๊ตฌ์ฑ - WEB, WAS, DB
์ ๋ต์ WEB server์ WAS๋ฅผ ํจ๊ป ๋๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ์น์ ๊ตฌ์ฑํ๊ฒ ๋๋ฉด ์ ์ ๋ฆฌ์์ค๋ ์น ์๋ฒ๊ฐ ์ฒ๋ฆฌํ๊ณ ์น ์๋ฒ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง๊ณผ ๊ฐ์ ๋์ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค๋ฉด WAS๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ก ์์ํ๋ค. ์ด๋ก ์ธํด Web Server๋ ์ ์ ์ฒ๋ฆฌ, WAS๋ ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๊ฐ๊ฐ ํจ์จ์ ์ผ๋ก ์ ๋ดํ ์ ์๊ฒ ๋์๋ค.
ํจ์จ์ ์ธ ๋ฆฌ์์ค ๊ด๋ฆฌ
Web, WAS, DB์ ์น ๊ตฌ์ฑ์ผ๋ก ํจ์จ์ ์ธ ์์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ก๋ค. ์ ์ ๋ฆฌ์์ค๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ค๊ณ ํ๋ค๋ฉด Web ์๋ฒ๋ฅผ ์ฆ์ค์ํค๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ๋ฆฌ์์ค๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ค๋ฉด WAS๋ฅผ ์ฆ์ค์ํค๋ ๋ฐฉ์์ผ๋ก ๋ง์ด๋ค.
์ค๋ฅํ๋ฉด ์ฒ๋ฆฌ
์ ์ ๋ฆฌ์์ค๋ง ์ฒ๋ฆฌํ๋ ์น ์๋ฒ์ ๋ฌ๋ฆฌ, ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ด ๋์ํ๋ WAS ์๋ฒ๋ ์ฝ๊ฒ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ ๊ฒ WAS์ DB์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด Web์๋ฒ๊ฐ ์ค๋ฅ์ ๊ดํ ๋ด์ฉ์ ํ๋ฉด์์ ๋์ธ ์ ์๊ฒ ๋์๋ค.