๐Ÿ“˜ Web/Network, Server

[Server] Web Server์™€ Was์˜ ์ฐจ์ด (Apache, Tomcat?)

a n u e 2022. 2. 20. 16:54

์ž…์‚ฌ ์ดˆ์—๋Š” Apache๋Š” ๋‹น์—ฐํžˆ ํšŒ์‚ฌ ์ด๋ฆ„์ธ ์ค„ ์•Œ์•˜๊ณ  Tomcat์€ ์„œ๋ฒ„์ด๊ฒ ๊ฑฐ๋‹ˆ ํ–ˆ๋‹ค.

์‹ ์ž…์„ ๊ฑฐ์น˜๋ฉด์„œ ๊ทธ ๋‘˜์˜ ์˜๋ฏธ๊ฐ€ Apache - Web Server / Tomcat - WAS๋กœ ๊ตฌ๋ถ„์ด ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์œผ๋‚˜, ์ •์ž‘ Web Server์™€ WAS์˜ ์ฐจ์ด๋ฅผ ์ œ๋Œ€๋กœ ์•Œ ์ง€ ํ–ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์€ ๋А๋‚Œ์œผ๋กœ๋งŒ ์•Œ๊ณ ์žˆ๋˜ ๊ทธ ๋‘˜์˜ ๊ฐœ๋…๊ณผ ์ฐจ์ด๋ฅผ ์ •ํ™•ํžˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

 

๋ชฉ๋ก
1. ์‘๋‹ต๊ณผ ์š”์ฒญ
2. Web Server๋ž€?
3. WAS๋ž€?

 

์‘๋‹ต๊ณผ ์š”์ฒญ (Request/Response)

์›น ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ์„ ๋‹จ๋ฌธ์œผ๋กœ ๋งํ•˜์ž๋ฉด, ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ(Request)ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต(Response)ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 

 ์›น ์„œ๋น„์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๊ณ  ์‘๋‹ตํ•ด์ค€๋‹ค. ์›น ํŽ˜์ด์ง€๋Š” ๋‘ ๊ฐœ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ •์  ํŽ˜์ด์ง€์™€ ๋™์  ํŽ˜์ด์ง€์ด๋‹ค. ์ •์  ํŽ˜์ด์ง€๋Š” ํ•ญ์ƒ ๊ณ ์ •๋œ ํ™”๋ฉด์ด๋‹ค. ์ฆ‰, ์–ด๋–ค ์‚ฌ์šฉ์ž๊ฐ€ ๋“ค์–ด์™€๋„ ๋™์ผํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

๋™์  ํŽ˜์ด์ง€๋Š” ์‚ฌ์šฉ์ž์™€์˜ ๊ด€๊ณ„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋น„์Šค์™€ ์–ด๋–ค ์ƒํ˜ธ์ž‘์šฉ์„ ํ–ˆ๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ์ด๋‹ค. ์ œ๊ณต์ค‘์ธ ์›น ์„œ๋น„์Šค์— ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์„ ํ˜ธ๋„์— ๋”ฐ๋ผ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋ฉด, ๊ทธ ์›น ์„œ๋น„์Šค์— ๋“ค์–ด์™”์„๋•Œ ๊ตฌ์„ฑํ•œ ํ™”๋ฉด์œผ๋กœ ๋ณด์—ฌ์ง€๋Š” ๊ฒƒ์„ ์˜ˆ๋กœ ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด Web Server๋Š” ์ •์  ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , WAS๋Š” ์ •์  ํŽ˜์ด์ง€์™€ ๋™์  ํŽ˜์ด์ง€ ๋ชจ๋‘ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ์ž 'WAS๋งŒ ์“ฐ๋ฉด ๋˜์ง€ ์•Š๋‚˜? Web Server์™€ WAS๋ฅผ ํ•จ๊ป˜ ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋˜๋ฐ, ์ด๋Š” ๋ฌด์—‡์„ ์œ„ํ•จ์ผ๊นŒ?' ๋Š” ์˜๋ฌธ์ด ๋“ ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ ๋‘˜์„ ์ข€ ๋” ์ž์„ธ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž!

 

 


Web Server(์›น ์„œ๋ฒ„)๋ž€?

 ์œ„์—์„œ ๋งํ–ˆ๋“ฏ, Web Server๋Š” ์ •์  ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๊ณ  ํ•˜์˜€๋‹ค. ํด๋ผ์ด์–ธํŠธ(์‚ฌ์šฉ์ž)๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์–ด๋– ํ•œ Request๋ฅผ ํ•˜๋ฉด, ์›น ์„œ๋ฒ„์—์„œ ๊ทธ Request๋ฅผ ๋ฐ›์•„ ์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ •์  ์ฝ˜ํ…์ธ ์˜ ์˜๋ฏธ๋Š” ๋ญ”๊ฐ€. ๋˜ ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”„๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค. 

๋‹จ์ˆœ HTML, CSS, Javascript, ์ด๋ฏธ์ง€, ํŒŒ์ผ ๋“ฑ ์ฆ‰์‹œ ์‘๋‹ต์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋“ค์ด๋‹ค.

 ๊ทธ๋Ÿผ ๊ฑฐ๋Œ€ํ•œ ๊ทœ๋ชจ์˜ ์„œ๋น„์Šค์—๋Š” ์›น ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ๋งŽ์„๊นŒ? ์‹ถ๋‹ค. ๋Œ€์ฒด ์–˜๋Š” ์™œ ์กด์žฌํ•˜๋Š”๊ฑฐ์ง€. 

์‹ค์ œ๋กœ, WAS๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์›น ์„œ๋ฒ„์™€ WAS๋Š” ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ๋Œ€์ฒด ์™œ? WAS๊ฐ€ ์›น ์„œ๋ฒ„๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฐœ๋…์ด ์•„๋‹Œ๊ฐ€?

 ์›น ์„œ๋ฒ„์˜ ์—ญํ• ์€ ๊ทธ๊ฒƒ๋งŒ์ด ์•„๋‹ˆ์—ˆ๋‹ค. ์›น ์„œ๋ฒ„๋Š” '๋™์ ' Contents๋ฅผ ์š”์ฒญ๋ฐ›์œผ๋ฉด, WAS์—๊ฒŒ ํ•ด๋‹น HTTP ์š”์ฒญ(Request)์„ ๋„˜๊ฒจ์ฃผ๊ณ  WAS์—์„œ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ(Response)๋ฅผ ํด๋ผ์ด์–ธํŠธ(์‚ฌ์šฉ์ž)์—๊ฒŒ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• ๋„ ํ•œ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ์ด ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋Œ€ํ‘œ์  Web Server๊ฐ€ ๋ฐ”๋กœ Apache(์•„ํŒŒ์น˜)์ด๋‹ค. 

(๊ทธ ๋ฐ–์— Nginx, IIS, WebtoB ๋“ฑ ..) 

 


 

 

WAS(์™€์Šค)๋ž€?

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

๋Œ€ํ‘œ์  WAS๊ฐ€ ๋ฐ”๋กœ Tomcat(ํ†ฐ์บฃ, ์•„ํŒŒ์น˜ ์‚ฌ), Jeus(์ œ์šฐ์Šค, ํ‹ฐ๋งฅ์Šค ์‚ฌ), Node js์ด๋‹ค.

 

 * Web Container(์›น ์ปจํ…Œ์ด๋„ˆ)
๋™์  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ •์ ์ธ ํŽ˜์ด์ง€๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด. ์›น ์„œ๋ฒ„๋Š” ์ •์  ์š”์†Œ๋“ค๋งŒ ํด๋ผ์ด์–ธํŠธ ์ธก์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์›น ์„œ๋ฒ„์— ๋™์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์ ์ธ ํŽ˜์ด์ง€๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
Servlet Class, JSP๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ, JSP ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•˜๊ณ , ์ด๋ฅผ ํ†ต์นญํ•˜์—ฌ ์›น ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•œ๋‹ค. ์›น ์„œ๋ฒ„์—์„œ JSP, PHP๋ฅผ ์š”์ฒญํ•˜๋ฉด, ์›น ์ปจํ…Œ์ด๋„ˆ์—์„œ๋Š” JSP, PHPํŒŒ์ผ์„ ์„œ๋ธ”๋ฆฟ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค, ์ปดํŒŒ์ผํ•˜์—ฌ ์›น ์„œ๋ฒ„์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

 

step 1. WAS์˜ ์›น ์„œ๋ฒ„๋Š” Client์˜ ์š”์ฒญ์ด ๋™์ ์ธ์ง€ ์ •์ ์ธ์ง€ ํŒŒ์•…

step 2. ๋™์ ์ด๋ฉด ์›น ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ Web Container์—๊ฒŒ ๋ณด๋ƒ„

step 3. Web Container์˜ Sevlet์ด ๋™์  ์ปจํ…์ธ  ์ƒ์„ฑ

step 4. ๋™์  ์ปจํ…์ธ ๋ฅผ ์›น ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ด๊ณ , ์›น ์„œ๋ฒ„๋Š” Client์—๊ฒŒ ๋ณด๋ƒ„.

 


 

๊ทผ๋ฐ ... WAS๋งŒ ์“ฐ๋ฉด ์•ˆ๋˜๋‚˜?

 ๋ช‡ ๋…„ ์ „๊นŒ์ง€๋งŒ ํ•ด๋„, WAS์™€ ์›น ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์ด์œ ๋ฅผ ์„ฑ๋Šฅ ์ฐจ์ด ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, Tomcat 5.5 ์ด์ƒ๋ถ€ํ„ฐ๋Š” ์ •์  ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ˆœ์ˆ˜ ์•„ํŒŒ์น˜ ์›น ์„œ๋ฒ„์™€ ๋น„๊ตํ•˜์—ฌ ์ „ํ˜€ ๋’ค๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

 ๊ทธ๋Ÿผ์—๋„ ๋‘˜์„ ๋ถ„๋ฆฌํ•˜๋Š” ์ด์œ ๋Š”, ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆด ๊ฒฝ์šฐ์˜ WAS์˜ ๋ถ€๋‹ด์„ ์ค„์ด๊ธฐ ์œ„ํ•จ์ด๋‹ค. WAS ์•ž์— ์›น ์„œ๋ฒ„๋ฅผ ๋‘ฌ์„œ ์ •์ ์ธ ๋ฌธ์„œ๋งŒ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋‘์–ด ์„œ๋ฒ„์˜ ๋ถ€๋‹ด์„ ์ค„์ด๋Š” ๊ฒƒ์ด๋‹ค. 

 ํ•˜์ง€๋งŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ด์œ ๋Š”, ๋ณด์•ˆ์„ฑ ๋•Œ๋ฌธ์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ WAS๊ฐ€ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ์„ค์ • ํŒŒ์ผ๋“ค์ด ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์–ด์„œ, WAS ์„ค์ • ํŒŒ์ผ์„ ์ˆจ๊ธฐ๊ธฐ ์œ„ํ•จ๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํด๋ผ์ด์–ธํŠธ๊ฐ€ tomcat์— ์ง์ ‘ ๋ถ™๊ฒŒ ๋˜๋ฉด ๋ฐ”๋กœ ๋’ท๋‹จ์— ์žˆ๋Š” DB ์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ํ•ด์ปค๋“ค์ด ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์›น ์„œ๋ฒ„์™€ WAS์— ์ ‘๊ทผํ•˜๋Š” ํฌํŠธ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— WAS์— ๋“ค์–ด์˜ค๋Š” ํฌํŠธ์—๋Š” ๋ฐฉํ™”๋ฒฝ์„ ์ณ์„œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 


 

 

References

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html