WEB ๊ณผ WAS์ ์ฐจ์ด
์น์๋ฒ(WEB Server) ๋?
Web Server์ ๊ฐ๋
- ์น ์๋ฒ(ํ๋์จ์ด) : Web ์๋ฒ๊ฐ ์ค์น๋์ด ์๋ ์ปดํจํฐ
- ์น ์๋ฒ(์ํํธ์จ์ด) : ํด๋ผ์ด์ธํธ๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ์ ์ ์ ์ปจํ ์ธ (.html, .jpg, .css ํ์ผ ๋ฑ)๋ฅผ ์ ๊ณตํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ
Web Server์ ๊ธฐ๋ฅ
- HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ ๋๋ ์น ํฌ๋กค๋ฌ)์ ์์ฒญ์ ์๋น์คํ๋ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค.
- ์์ฒญ์ ๋ฐ๋ผ ์๋์ ๋ ๊ฐ์ง ๊ธฐ๋ฅ ์ค ์ ์ ํ๊ฒ ์ ํํ์ฌ ์ํํ๋ค.
- ๊ธฐ๋ฅ1)
1. ์ ์ ์ธ ์ปจํ ์ธ ์ ๊ณต
2. WAS๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ์์์ ์ ๊ณต
- ๊ธฐ๋ฅ2)
1. ๋์ ์ธ ์ปจํด์ธ ์ ๊ณต์ ์ํ ์์ฒญ ์ ๋ฌ
2. ํด๋ผ์ด์ธํธ ์์ฒญ(Request)์ WAS์ ๋ณด๋ด๊ณ , WAS๊ฐ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ(์๋ต, Response)ํ๋ค.
3. ํด๋ผ์ด์ธํธ๋ ์ผ๋ฐ์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ฏธํ๋ค.
- Web Server์ ์
ex) Apache Server, Nginx, IIS(Windows ์ ์ฉ Web ์๋ฒ) ๋ฑ
WAS(Web Application Server) ๋?
- WAS์ ๊ฐ๋
1. DB ์กฐํ๋ ๋ค์ํ ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ์๊ตฌํ๋ ๋์ ์ธ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ง๋ค์ด์ง Application Server
2. HTTP๋ฅผ ํตํด ์ปดํจํฐ๋ ์ฅ์น์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํด์ฃผ๋ ๋ฏธ๋ค์จ์ด(์ํํธ์จ์ด ์์ง)์ด๋ค.
3. "์น ์ปจํ ์ด๋(Web Container)" ํน์ "์๋ธ๋ฆฟ ์ปจํ ์ด๋(Servlet Container)"๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
*Container๋ JSP, Servlet์ ์ฑํ์ํฌ ์ ์๋ ์ํํธ์จ์ด๋ฅผ ๋งํ๋ค. ์ฆ, WAS๋ JSP, Servlet ๊ตฌ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
- WAS์ ์ญํ
1. WAS = Web Server + Web Container
2. Web Sever ๊ธฐ๋ฅ๋ค์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ฒ๋ฆฌํ๊ณ ์ ํ๋ ๋ชฉ์ ์ผ๋ก ์ ์๋์๋ค.
2-1. ๋ถ์ฐ ํธ๋์ญ์ , ๋ณด์, ๋ฉ์์ง, ์ฐ๋ ๋ ์ฒ๋ฆฌ ๋ฑ์ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๋ ๋ถ์ฐ ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ค.
2-2. ์ฃผ๋ก DB ์๋ฒ์ ๊ฐ์ด ์ํ๋๋ค.
3. ํ์ฌ๋ WAS๊ฐ ๊ฐ์ง๊ณ ์๋ Web Server๋ ์ ์ ์ธ ์ปจํ ์ธ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์์ด์ ์ฑ๋ฅ์ ํฐ ์ฐจ์ด๊ฐ ์๋ค.
- WAS์ ์ฃผ์ ๊ธฐ๋ฅ
1. ํ๋ก๊ทธ๋จ ์คํ ํ๊ฒฝ๊ณผ DB ์ ์ ๊ธฐ๋ฅ ์ ๊ณต
2. ์ฌ๋ฌ ๊ฐ์ ํธ๋์ญ์ (๋ ผ๋ฆฌ์ ์ธ ์์ ๋จ์) ๊ด๋ฆฌ ๊ธฐ๋ฅ
3. ์ ๋ฌด๋ฅผ ์ฒ๋ฆฌํ๋ ๋น์ฆ๋์ค ๋ก์ง ์ํ
- WAS์ ์
ex) Tomcat, JBoss, Jeus, Web Sphere ๋ฑ
Web Server์ WAS๋ฅผ ๊ตฌ๋ถํ๋ ์ด์
Web Server๊ฐ ํ์ํ ์ด์
: ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ )์ ์ด๋ฏธ์ง ํ์ผ(์ ์ ์ปจํ ์ธ )์ ๋ณด๋ด๋ ๊ณผ์ ์ ๋ณด๋ฉด ์ด๋ฏธ์ง ํ์ผ๊ณผ ๊ฐ์ ์ ์ ์ธ ํ์ผ๋ค์ ์น ๋ฌธ์(HTML ๋ฌธ์)
๊ฐ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด์ง ๋ ํจ๊ป ๊ฐ๋ ๊ฒ์ด ์๋๋ค.
ํด๋ผ์ด์ธํธ๋ HTML ๋ฌธ์๋ฅผ ๋จผ์ ๋ฐ๊ณ ๊ทธ์ ๋ง๊ฒ ํ์ํ ์ด๋ฏธ์ง ํ์ผ๋ค์ ๋ค์ ์๋ฒ๋ก ์์ฒญํ๋ฉด ๊ทธ๋์์ผ ์ด๋ฏธ์ง ํ์ผ์ ๋ฐ์์จ๋ค.
Web Server๋ฅผ ํตํด ์ ์ ์ธ ํ์ผ๋ค์ Application Server๊น์ง ๊ฐ์ง ์๊ณ ์๋จ์์ ๋น ๋ฅด๊ฒ ๋ณด๋ด์ค ์ ์๋ค.
WAS๊ฐ ํ์ํ ์ด์
: ์น ํ์ด์ง๋ ์ ์ ์ปจํ ์ธ ์ ๋์ ์ปจํ ์ธ ๋ชจ๋ ์กด์ฌํ๋ค. ์ฌ์ฉ์์ ์์ฒญ์ ๋ง๊ฒ ์ ์ ํ ๋์ ์ปจํ ์ธ ๋ฅผ ๋ง๋ค์ด์ ์ ๊ณตํด์ผ ํ๋ค.
์ด๋, Web Server ๋ง์ ์ด์ฉ ํ๋ค๋ฉด ์ฌ์ฉ์๊ฐ ์ํ๋ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ์ ๋ชจ๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋๊ณ ์๋น์ค๋ฅผ ํด์ผ ํ๋ค.
ํ์ง๋ง, ์ด๋ ๊ฒ ์ํํ๊ธฐ์๋ ์์์ด ์ ๋์ ์ผ๋ก ๋ถ์กฑํ๋ค. ๋ฐ๋ผ์, WAS๋ฅผ ํตํด ์์ฒญ์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ DB์์ ๊ฐ์ ธ์์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ง๊ฒ ๊ทธ๋ ๊ทธ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด์ ์ ๊ณตํจ์ผ๋ก์จ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
WAS๊ฐ Web Server ๊ธฐ๋ฅ์ ๋ฐ๋ก ๋๋ ์ด์
1. ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ์๋ฒ ๋ถํ ๋ฐฉ์ง
- WAS๋ DB ์กฐํ๋ ๋ค์ํ ๋ก์ง์ ์ฒ๋ฆฌํ๋๋ผ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๋จ์ํ ์ ์ ์ปจํ ์ธ ๋ Web Server์์ ๋น ๋ฅด๊ฒ ํด๋ผ์ด์ธํธ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ข๋ค.
- WAS๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์กด์ฌํ๋ ์๋ฒ์ด๋ค.
- ๋ง์ฝ ์ ์ ์ปจํ ์ธ ์์ฒญ๊น์ง WAS๊ฐ ์ฒ๋ฆฌํ๋ค๋ฉด ์ ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ก ์ธํด ๋ถํ๊ฐ ์ปค์ง๊ฒ ๋๊ณ , ๋์ ์ปจํ ์ธ ์ ์ฒ๋ฆฌ๊ฐ ์ง์ฐ ๋จ์ ๋ฐ๋ผ ์ํ ์๋๊ฐ ๋๋ ค์ง๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ํ์ด์ง ๋ ธ์ถ ๊น์ง์ ์๊ฐ์ด ๋์ด๋๊ฒ ๋๋ค.
2. ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ๋ณด์ ๊ฐํ
- SSL์ ๋ํ ์๋ณตํธํ ์ฒ๋ฆฌ์ Web Server๋ฅผ ์ฌ์ฉ
3. ์ฌ๋ฌ ๋์ WAS ์ฐ๊ฒฐ ๊ฐ๋ฅ
- Load Balancing์ ์ํด์ Web Server ์ฌ์ฉ
- fail over(์ฅ์ ๊ทน๋ณต), fail back ์ฒ๋ฆฌ์ ์ ๋ฆฌ
- ํนํ ๋์ฉ๋ ์น ์ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ(์ฌ๋ฌ ๊ฐ์ ์๋ฒ ์ฌ์ฉ) ์๋ฅผ ๋ค์ด, ์ ๋จ์ Web Server์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ WAS๋ฅผ ์ด์ฉํ์ง ๋ชปํ๋๋ก ํ ํ WAS๋ฅผ ์ฌ์์ํจ์ผ๋ก์จ ์ฌ์ฉ์๋ ์ค๋ฅ๋ฅผ ๋๋ผ์ง ๋ชปํ๊ณ ์ด์ฉํ ์ ์๋ค.
4. ์ฌ๋ฌ ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋น์ค ๊ฐ๋ฅ
- ์๋ฅผ ๋ค๋ฉด, ํ๋์ ์๋ฒ์์ PHP Application๊ณผ Java Application์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
5. ๊ธฐํ
- ์ ๊ทผ ํ์ฉ IP ๊ด๋ฆฌ, 2๋ ์ด์์ ์๋ฒ์์์ ์ธ์ ๋ฑ๋ Web Server์์ ์ฒ๋ฆฌํ๋ฉด ํจ์จ์ ์ด๋ค.
์ฆ, ์์ ์ด์ฉ์ ํจ์จ์ฑ ๋ฐ ์ฅ์ ๊ทน๋ณต, ๋ฐฐํฌ ๋ฐ ์ ์ง๋ณด์์ ํธ์์ฑ์ ์ํด Web Server์ WAS๋ฅผ ๋ถ๋ฆฌํ๋ค.
Web Server๋ฅผ WAS ์์ ๋๊ณ ํ์ํ WAS๋ค์ Web Server์ ํ๋ฌ๊ทธ์ธ ํํ๋ก ์ค์ ํ๋ฉด ๋์ฑ ํจ์จ์ ์ธ ๋ถ์ฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
Web Service Architecture
๋ค์ํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ์๋ค.
1. Client -> Web Server -> DB
2. Client -> WAS -> DB
3. Client -> Web Server -> WAS -> DB
3๋ฒ ๊ตฌ์กฐ์ ๋์๊ณผ์
1. Web Server๋ ์น ๋ธ๋ผ์ฐ์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ๋๋ค.
2. Web Server๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ(Request)๋ฅผ WAS์ ๋ณด๋ธ๋ค.
3. WAS๋ ๊ด๋ จ๋ Servlet์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
4. WAS๋ web.xml์ ์ฐธ์กฐํ์ฌ ํด๋น Servlet์ ๋ํ Thread๋ฅผ ์์ฑํ๋ค. (Thread Pool ์ด์ฉ)
5. HttpServletRequest์ HttpServletResponse ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ Servlet์ ์ ๋ฌํ๋ค.
- 5-1. Thread๋ Servlet์ service() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
- 5-2. service() ๋ฉ์๋๋ ์์ฒญ์ ๋ง๊ฒ doGet() ๋๋ doPost() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
- protected doGet(HttpServletRequest request, HttpServletResponse response)
6. doGet() ๋๋ doPost() ๋ฉ์๋๋ ์ธ์์ ๋ง๊ฒ ์์ฑ๋ ์ ์ ํ ๋์ ํ์ด์ง๋ฅผ Response ๊ฐ์ฒด์ ๋ด์ WAS์ ์ ๋ฌํ๋ค.
7. WAS๋ Response ๊ฐ์ฒด๋ฅผ HttpResponse ํํ๋ก ๋ฐ๊พธ์ด Web Server์ ์ ๋ฌํ๋ค.
8. ์์ฑ๋ Thread๋ฅผ ์ข ๋ฃํ๊ณ , HttpServletRequest์ HttpServletResponse ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๋ค.
*์ฐธ๊ณ
MiddleWare(๋ฏธ๋์จ์ด)
Client - MiddleWare Server - DB Server(DBMS)
๋์๊ณผ์
1. Client๋ ๋จ์ํ ์์ฒญ๋ง ์ค์์ ์๋ MiddleWare Server์๊ฒ ๋ณด๋ธ๋ค.
2. MiddleWare Server์์ ๋๋ถ๋ถ์ ๋ก์ง์ด ์ํ๋๋ค.
3. ์ด๋, ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ ์ผ์ด ์์ผ๋ฉด DBMS์ ์์ฒญํ๋ค.
4. ๋ก์ง์ ๊ฒฐ๊ณผ๋ฅผ Client์๊ฒ ์ ์กํ๋ค.
5. Client๋ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ค๋ค.
์ฆ, ๋น์ฆ๋์ค ๋ก์ง์ Client์ DBMS ์ฌ์ด์ MiddleWare Server์์ ๋์ํ๋๋ก ํจ์ผ๋ก์จ Client๋ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ๋ง ๋ด๋นํ๊ฒ ๋๋ค.
์ฐธ๊ณ
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
'๊ฐ๋ฐ ์ง์, ์คํฌ๋ฆฝํธ > WAS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํฐ์บฃ context path --์ ๋ฆฌ์ค (0) | 2024.01.31 |
---|
๋๊ธ