์น์ ๋์ ๋ฐฉ์(๊ตฌ์กฐ)
Web Client
- ์น ํด๋ผ์ด์ธํธ - ์ฌ์ฉ์๊ฐ ์น์ ์ ๊ทผํ๋ ํ๋ก๊ทธ๋จ
- ์ผ๋ฐ์ ์ผ๋ก IE, Chrome ๋ฑ๊ณผ ๊ฐ์ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ์น ๋ธ๋ผ์ฐ์ ๋ค์ ๋๋ถ๋ถ ์น ํด๋ผ์ด์ธํธ๋ผ๊ณ ํจ
Web Server
- ์น ์๋ฒ - ์น ํ์ด์ง, ์ฌ์ดํธ ๋๋ ์ฑ์ ์ ์ฅํ๋ ํ๋ก๊ทธ๋จ
- ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ํด๋ผ์ด์ธํธ๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ์ ์ ์ ์ธ ์ปจํ ์ธ (.html, .jpeg, .css, etc.)๋ฅผ ์ ๊ณต
- HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ , ์น ํฌ๋กค๋ฌ)์ ์์ฒญ์ ์๋น์ค
- ์ ์ ์ธ ์ปจํ
์ธ ์ ๊ณต
- WAS๋ฅผ ๊ฑฐ์น์น ์๊ณ ๋ฐ๋ก ์์ ์ ๊ณต
- ๋์ ์ธ ์ปจํ
์ธ ์ ๊ณต์ ์ํ ์์ฒญ ์ ๋ฌ
- ํด๋ผ์ด์ธํธ์ ์์ฒญ(Request)์ WAS์ ๋ณด๋ด๊ณ , WAS๊ฐ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต(Response)
- ํด๋ผ์ด์ธํธ(Client)๋ ์ผ๋ฐ์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ (browser)๋ฅผ ์๋ฏธ
- ์ ์ ์ธ ์ปจํ
์ธ ์ ๊ณต
- ์น ์๋ฒ์ ์ข
๋ฅ
- ex) Apache, Nginx, IIS(Window ์ ์ฉ Web Server), etc.
WAS(Web Application Server)
- WAS - ์ฌ์ฉ์ ์ปดํจํฐ๋ ์ฅ์น์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํด์ฃผ๋ ๋ฏธ๋ค์จ์ด(์ํํธ์จ์ด ์์ง)
- DB ์ด๋ ๋ฐ ๋ค์ํ ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ์๊ตฌํ๋ ๋์ ์ธ ์ปจํ ์ธ ์ ๊ณต
- ์น ์ปจํ
์ด๋(Web Container) or ์๋ธ๋ฆฟ ์ปจํ
์ด๋(Servlet Container) ๋ผ๊ณ ๋ถ๋ฆผ
- ์ปจํ
์ด๋(Container) ๋?
- JSP, Servlet ๋ฑ์ ๊ตฌ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ ์ํํธ์จ์ด
- ์ปจํ
์ด๋(Container) ๋?
- WAS == Web Server + Web Container
- Web Server ๊ธฐ๋ฅ๋ค์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ฒ๋ฆฌํ๊ณ ์ ํ๋ ๋ชฉ์
- Web Server์์ ์ ์ ์ปจํ ์ธ ๋ง ์ฒ๋ฆฌํ๋๋ก ๊ธฐ๋ฅ์ ๋ถ๋ฐฐํ์ฌ ์๋ฒ์ ๋ถ๋ด์ ์ค์ฌ์ฃผ๊ธฐ ์ํจ
- ์ฃผ๋ก DB ์๋ฒ์ ์ฐ๋๋์ด, ๋ถ์ฐ ํธ๋์ญ์
, ๋ณด์, ๋ฉ์์ง, ์ฐ๋ ๋ ์ฒ๋ฆฌ ๋ฑ์ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๋ ๋ถ์ฐ ํ๊ฒฝ
- ํ๋ก๊ทธ๋จ ์คํ ํ๊ฒฝ ๋ฐ DB ์ ์ ๊ธฐ๋ฅ
- ์ฌ๋ฌ ๊ฐ์ ํธ๋์ญ์ (๋ ผ๋ฆฌ์ ์์ ๋จ์) ๊ด๋ฆฌ
- ์ ๋ฌด ์ฒ๋ฆฌ๋ฅผ ์ํ ๋น์ฆ๋์ค ๋ก์ง ์ํ
- WAS์ ์ข
๋ฅ
- ex) Tomcat, Web Sphere, Jeus, JBoss, etc.
DB
- DataBase - ๋ฐ์ดํฐ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ณณ
- WAS์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์๋ต
- WAS์์ ๋ก์ง์ ์ํํ๋ค๊ฐ DB ์ ๊ทผ์ด ํ์ํ๋ฉด SQL ์ง์๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ฒญ
- DB๋ ์์ฒญ์ฌํญ์ ๋ง๋ ์๋ต์ ๋ณด๋
- WAS์์ DB์๊ฒ ๋ณด๊ดํ ๋ด์ฉ์ ์ ์ฅํ๊ฒ๋ ์์ฒญ
- DB๋ ๊ทธ ๋ด์ฉ์ ์ ๋ฆฌํ์ฌ ์ ์ฅ
- WAS์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์๋ต
Web Server vs WAS
- ์น ํ์ด์ง๋ ์ ์ / ๋์ ์ปจํ
์ธ ๊ฐ ๋ชจ๋ ์กด์ฌ
- ์ฌ์ฉ์์ ์์ฒญ์ ๋ง๊ฒ ์ ์ ํ ์ปจํ
์ธ ๋ฅผ ์ ๊ณตํด์ผ ํจ
- Web Server๋ง ์ด์ฉํ๋ค๋ฉด? ์ฌ์ฉ์์ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ ๊ฐ์ด ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ ธ ์์ด์ผ ํจ
- ์ด๋ด ๊ฒฝ์ฐ, ์์์ด ์ ๋์ ์ผ๋ก ๋ถ์กฑ
- WAS๋ฅผ ํตํด ์์ฒญ์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ DB์์ ๊ฐ์ ธ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ง๊ฒ, ๊ทธ๋ ๊ทธ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด ์ ๊ณตํจ์ผ๋ก์จ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํจ
- ์ฌ์ฉ์์ ์์ฒญ์ ๋ง๊ฒ ์ ์ ํ ์ปจํ
์ธ ๋ฅผ ์ ๊ณตํด์ผ ํจ
- WAS ์์ Web Server ๊ธฐ๋ฅ์ ๋ชจ๋ ์ํํ๋ฉด ์๋ ๊น?
- ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ์๋ฒ์ ๋ถํ๋ฅผ ๋ฐฉ์ง(์๋ฒ์ ๋ถ๋ด์ ์ค์ฌ ์ค)
- Web Server๋ ์ ์ ์ปจํ ์ธ ๋ง์, Application Server ๊น์ง ๊ฐ์ง ์๊ณ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ
- WAS๋ ๋์ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด DB ์กฐํ ๋ฐ ๋ค์ํ ๋ก์ง์ ์ฒ๋ฆฌ
- ๋ง์ฝ ์ ์ ์ปจํ
์ธ ์ ๋ํ ์์ฒญ๊น์ง WAS ๊ฐ ์ฒ๋ฆฌํ๋ค๋ฉด?
- ์ ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ก ์ธํ ๋ถํ ์ฆ๊ฐ
- ๋์ ์ปจํ ์ธ ์ ์ฒ๋ฆฌ ์ง์ฐ์ผ๋ก ์ธํ ์ํ ์๋ ๊ฐ์
- ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ์๋ฒ์ ๋ถํ๋ฅผ ๋ฐฉ์ง(์๋ฒ์ ๋ถ๋ด์ ์ค์ฌ ์ค)
- ์ฌ๋ฌ ๊ฐ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ Web Server์ WAS๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋ฌด์ค๋จ ์ด์, ์ฅ์ ๊ทน๋ณต, ๋ฑ ๋ฌธ์ ๋ฐ์์ ๋์์ด ์ฌ์
- ์์ ์ด์ฉ์ ํจ์จ์ฑ ๋ฐ ์ฅ์ ๊ทน๋ณต, ๋ฐฐํฌ ๋ฐ ์ ์ง๋ณด์์ ํธ์์ฑ์ ์ํด Web Server์ WAS๋ฅผ ๋ถ๋ฆฌ
์ ์ ํ์ด์ง(Staic Pages) ์ ๋์ ํ์ด์ง(Dynamic Pages)
- ์ ์ ํ์ด์ง(Static Pages)
- Web Server๋ ํ์ผ ๊ฒฝ๋ก/์ด๋ฆ ์ ๋ฐ์์ ํด๋น ๊ฒฝ๋ก์ file contents๋ฅผ ๋ฐํ
- ํญ์ ๋์ผํ ํ์ด์ง๋ฅผ ๋ฐํ
- ex) image, html, css, js ํ์ผ๊ณผ ๊ฐ์ด ์ ์ฅ๋์ด ์๋ ํ์ผ๋ค
- ๋์ ํ์ด์ง(Dynamic Pages)
- ์์ฒญ, ์ธ์์ ๋ฐ๋ผ, ๋ด์ฉ์ ๋ง๊ฒ ๋์ ์ธ ์ปจํ ์ธ (contents)๋ฅผ ๋ฐํ
- (์น ์๋ฒ์ ์ํด ์คํ๋ ํ๋ก๊ทธ๋จ์ ํตํด ๋์ถ๋ ๊ฒฐ๊ณผ๋ฌผ)
์น ์๋น์ค ๊ตฌ์กฐ(Web Service Architecture)
- Client <---> (Web Server <--> WAS <--> DB)
- ํด๋ผ์ด์ธํธ๊ฐ HTTP ์์ฒญ(Request)์ Web Server๋ก ์ ๋ฌ
- Web Server๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ WAS์ ์ ๋ฌ
- WAS๋ ์ธ์์ ๋ง๊ฒ ์์ฑ๋ Response ๊ฐ์ฒด๋ฅผ Web Server์ ์ ๋ฌ
- Web Server๊ฐ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ ์๋ต
Reference