# Web Server์™€ WAS

Assembled by GimunLee

# Web Server๋ž€

Web Server๋Š” ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•˜๋“œ์›จ์–ด๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

  • ํ•˜๋“œ์›จ์–ด: Web ์„œ๋ฒ„๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ
  • ์†Œํ”„ํŠธ์›จ์–ด: ์›น ๋ธŒ๋ผ์šฐ์ € ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์ •์ ์ธ ์ปจํ…์ธ (.html .jpeg .css ๋“ฑ)๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ

Web Server๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” ์›น ํฌ๋กค๋Ÿฌ)์˜ ์š”์ฒญ์„ ์„œ๋น„์Šค ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•œ๋‹ค. ์š”์ฒญ์— ๋”ฐ๋ผ ์•„๋ž˜์˜ ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ ์ค‘ ์ ์ ˆํ•˜๊ฒŒ ์„ ํƒํ•˜์—ฌ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Web Server์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

  1. ์ •์ ์ธ ์ปจํ…์ธ  ์ œ๊ณต

    WAS๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ž์›์„ ์ œ๊ณตํ•œ๋‹ค.

  2. ๋™์ ์ธ ์ปจํ…์ธ  ์ œ๊ณต์„ ์œ„ํ•œ ์š”์ฒญ ์ „๋‹ฌ

    ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ(Request)์„ WAS์— ๋ณด๋‚ด๊ณ , WAS๊ฐ€ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ(์‘๋‹ต, Response)ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

Web Server์—๋Š” Apache Server, Nginx, IIS(Windows ์ „์šฉ Web ์„œ๋ฒ„) ๋“ฑ์ด ์žˆ๋‹ค.


# WAS(Web Application Server)๋ž€

WAS๋Š” DB ์กฐํšŒ๋‚˜ ๋‹ค์–‘ํ•œ ๋กœ์ง ์ฒ˜๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜๋Š” ๋™์ ์ธ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ Application Server์ด๋‹ค. ๋˜ํ•œ, HTTP๋ฅผ ํ†ตํ•ด ์ปดํ“จํ„ฐ๋‚˜ ์žฅ์น˜์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๋Š” ๋ฏธ๋“ค์›จ์–ด(์†Œํ”„ํŠธ์›จ์–ด ์—”์ง„)์ด๋‹ค. ์›น ์ปจํ…Œ์ด๋„ˆ(Web Container) ํ˜น์€ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ(Servlet Container) ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. Container๋ž€ JSP, Servlet์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งํ•œ๋‹ค.

์ฆ‰, WAS๋Š” JSP, Servlet ๊ตฌ๋™ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ณ , Web Server ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌ์กฐ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ณ ์žํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์ œ์‹œ๋˜์—ˆ๋‹ค. ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜, ๋ณด์•ˆ, ๋ฉ”์‹œ์ง•, ์“ฐ๋ ˆ๋“œ ์ฒ˜๋ฆฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ ์ฃผ๋กœ DB ์„œ๋ฒ„์™€ ๊ฐ™์ด ์ˆ˜ํ–‰๋œ๋‹ค.

WAS์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

  1. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ํ™˜๊ฒฝ๊ณผ DB ์ ‘์† ๊ธฐ๋Šฅ ์ œ๊ณต

  2. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜(๋…ผ๋ฆฌ์ ์ธ ์ž‘์—… ๋‹จ์œ„) ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

  3. ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ˆ˜ํ–‰

WAS ๋™์ž‘ ํ”„๋กœ์„ธ์Šค

  1. Web Server๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์ด ์˜ค๋ฉด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.

  2. ์ปจํ…Œ์ด๋„ˆ๋Š” web.xml์„ ์ฐธ์กฐํ•˜์—ฌ ํ•ด๋‹น ์„œ๋ธ”๋ฆฟ์— ๋Œ€ํ•œ ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑํ•˜๊ณ  httpServletRequest์™€ httpServletResponse ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ „๋‹ฌํ•œ๋‹ค.

  3. ์ปจํ…Œ์ด๋„ˆ๋Š” ์„œ๋ธ”๋ฆฟ์„ ํ˜ธ์ถœํ•œ๋‹ค.

  4. ํ˜ธ์ถœ๋œ ์„œ๋ธ”๋ฆฟ์˜ ์ž‘์—…์„ ๋‹ด๋‹นํ•˜๊ฒŒ ๋œ ์“ฐ๋ ˆ๋“œ(2๋ฒˆ์—์„œ ๋งŒ๋“  ์“ฐ๋ ˆ๋“œ)๋Š” doPost()๋˜๋Š” doGet()์„ ํ˜ธ์ถœํ•œ๋‹ค.

  5. ํ˜ธ์ถœ๋œ doPost(), doGet() ๋ฉ”์†Œ๋“œ๋Š” ์ƒ์„ฑ๋œ ๋™์  ํŽ˜์ด์ง€๋ฅผ Response ๊ฐ์ฒด์— ๋‹ด์•„ ์ปจํ…Œ์ด๋„ˆ์— ์ „๋‹ฌํ•œ๋‹ค.

  6. ์ปจํ…Œ์ด๋„ˆ๋Š” ์ „๋‹ฌ๋ฐ›์€ Response๊ฐ์ฒด๋ฅผ HTTPResponseํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ” Web Server์— ์ „๋‹ฌํ•˜๊ณ  ์ƒ์„ฑ๋˜์—ˆ๋˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  httpServletRequest, httpServletResponse ๊ฐ์ฒด๋ฅผ ์†Œ๋ฉธ์‹œํ‚จ๋‹ค.

WAS์—๋Š” Tomcat, JBoss, Jeus, Web Sphere ๋“ฑ์ด ์žˆ๋‹ค.


# Web Server์™€ WAS์˜ ์ฐจ์ด

๋™์  ์ฝ˜ํ…์ธ  ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ๊ฐ€ ์•„๋‹Œ๊ฐ€๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. WAS๋Š” ์ •์ , ๋™์  ๋‘˜๋‹ค ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ •์  ์ฒ˜๋ฆฌ๋ฅผ WAS๊ฐ€ ํ•˜๊ฒŒ๋˜๋ฉด ๋ถ€ํ•˜๊ฐ€ ๋งŽ์ด ๊ฑธ๋ ค์„œ ์ข‹์ง€ ์•Š๋‹ค.

Tomcat(WAS)์—๋Š” Apache(Web Server)์˜ ๊ธฐ๋Šฅ(HTTPD)๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ HTTPD๋Š” ์›น ์„œ๋ฒ„์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜์–ด ๋“ค์–ด์˜ค๋Š” ์„œ๋ฒ„ ์š”์ฒญ์„ ๋Œ€๊ธฐํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

์ถ”๊ฐ€๋กœ Tomcat์ด WAS, Web Server๋ฅผ ๋”ฐ๋กœ ๋‘๊ณ  ์“ฐ๋Š” ์ด์œ ๊ฐ€ ์„ฑ๋Šฅ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฑด ์ž˜๋ชป๋˜์—ˆ๋‹ค. Tomcat 5.5 ์ด์ƒ๋ถ€ํ„ฐ๋Š” HTTPD์˜ native ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์ ํŒŒ์ผ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ์ด๊ฒƒ์ด ์ˆœ์ˆ˜ ์•„ํŒŒ์น˜ HTTPD๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„๊ตํ•ด์„œ ์„ฑ๋Šฅ์ด ์ „ํ˜€ ๋–จ์–ด์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿผ์—๋„ Tomcat(WAS) ์•ž์— Apache(Web Server)๋ฅผ ๋‘๋Š” ์ด์œ ๋Š” ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ php ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, Apache(Web Server)์˜ HTTPD ์„œ๋ฒ„๊ฐ€ ๊ฐ„๋‹จํ•œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


# References

Last Updated: 8/12/2020, 1:33:42 PM