Static Pages & Dynamic Pages


Static Pages

  • ํŒŒ์ผ ๊ฒฝ๋กœ ์ด๋ฆ„์„ ํ†ตํ•ด ๊ฒฝ๋กœ์™€ ์ผ์น˜ํ•˜๋Š” File Contents ๋ฅผ ๋ฐ˜ํ™˜
  • ํ•ญ์ƒ ๋™์ผํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜
  • e.g. image html css js ๋“ฑ ์ปดํ“จํ„ฐ์— ์ €์žฅ๋œ ํŒŒ์ผ๋“ค

Dynamic Pages

  • ์ธ์ž์— ๋”ฐ๋ผ ๋™์ ์ธ Contents ๋ฐ˜ํ™˜
  • ์›น ์„œ๋ฒ„์— ์˜ํ•ด ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฒฐ๊ณผ๋ฌผ
    • Servlet WAS ์—์„œ ๋Œ์•„๊ฐ€๋Š” Java Program
    • Servlet ์˜ doGet() ์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋™์ ์ธ Contents ๋ฐ˜ํ™˜

Web Server


Web Server๋ž€?

  • ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์ •์ ์ธ Contents ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ
  • ์š”์ฒญ์— ๋”ฐ๋ผ ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ ์ค‘ ์ ์ ˆํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰
    • ์ •์  Contents ์š”์ฒญ ์‹œ, WAS ๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ •์  ์ž์›์„ ์ œ๊ณต
    • ๋™์  Contents ์š”์ฒญ ์‹œ, WAS ์— ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ „๋‹ฌ ํ›„ ์‘๋‹ต ์ œ๊ณต
  • e.g. Apache NginX ๋“ฑ

WAS(Web Application Server)


WAS ๋ž€?

  • DB ์กฐํšŒ๋‚˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜๋Š” ๋™์  Contents ์ œ๊ณต์„ ์œ„ํ•œ Application Server
  • Web Container ํ˜น์€ Servlet Container ๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ
    • Web Container ๋Š” JSP, Servlet ์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด
    • ์ฆ‰, WAS๋Š” JSP, Servlet ๊ตฌ๋™ ํ™˜๊ฒฝ์„ ์ œ๊ณต
  • WAS = Web Server + Web Container
  • DB ์กฐํšŒ๋‚˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ˆ˜ํ–‰์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ํ™˜๊ฒฝ๊ณผ DB ์ ‘์† ๊ธฐ๋Šฅ ์ œ๊ณต
  • e.g. Tomcat JBoss Jeus Web Sphere ๋“ฑ

Web Server ์™€ WAS ๋ถ„๋ฆฌํ•˜๋Š” ์ด์œ 


Web Server ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

  • html ์— ํฌํ•จ๋œ css js img ๋“ฑ์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•ด๋‹น ํŒŒ์ผ์„ ํ•„์š”๋กœ ํ•  ๋•Œ ์š”์ฒญํ•จ
    • ์ฆ‰, ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋”ฉํ•  ๋•Œ ์—ฌ๋Ÿฌ๋ฒˆ ์š”์ฒญ์„ ๋ณด๋ƒ„
  • Web Server ๋ฅผ ํ†ตํ•ด WAS ๊นŒ์ง€ ์š”์ฒญ์„ ๋ณด๋‚ด์ง€์•Š๊ณ  ์•ž๋‹จ์—์„œ ๋น ๋ฅด๊ฒŒ ์ •์  Contents ๋ฐ˜ํ™˜
    • ์ •์  ํŒŒ์ผ ๋ฐ˜ํ™˜๋งŒ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋ถ„๋ฆฌํ•˜์—ฌ WAS ์˜ ๋ถ€๋‹ด์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

WAS ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

  • ์‚ฌ์šฉ์ž ์š”์ฒญ์— ๋งž๋Š” ๋™์  Contents ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด
    • Web Server ๋งŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์š”์ฒญ์— ๋งž๋Š” Contents ๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“๊ณ  ์„œ๋น„์Šคํ•ด์•ผ ํ•จ
  • ์‚ฌ์šฉ์ž ์š”์ฒญ์— ๋งž์ถฐ DB ์กฐํšŒ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

WAS ๊ฐ€ Web Server ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ์ด์œ 

  1. ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•œ ์„œ๋ฒ„ ๋ถ€ํ•˜ ๋ฐฉ์ง€
    • WAS ๋Š” DB ์กฐํšŒ๋‚˜ ๋‹ค์–‘ํ•œ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š๋ผ ๋ฐ”์˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํ•œ ์ •์  Contents ๋Š” Web Server ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ž„
    • ๋งŒ์•ฝ WAS ๊ฐ€ ์ •์  Contents ์ œ๊ณต๊นŒ์ง€ ์ˆ˜ํ–‰ํ•œ๋‹ค๋ฉด ๋™์  Contents ์ฒ˜๋ฆฌ์— ์˜ํ•ด ๋ถ€ํ•˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์ด๋Š” ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ง€์—ฐ์œผ๋กœ ์ด์–ด์ง
  2. ๋ฌผ๋ฆฌ์  ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•œ ๋ณด์•ˆ ๊ฐ•ํ™”
    • Web Server ๋ฅผ ํ†ตํ•œ SSL ์•”๋ณตํ˜ธํ™” ์ฒ˜๋ฆฌ
  3. ์—ฌ๋Ÿฌ ๋Œ€์˜ WAS ๋ฐฐ์น˜ ๊ฐ€๋Šฅ
    • Web Server ๋ฅผ ํ†ตํ•œ Load Balancing
    • ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ๋ฐ ์žฅ์•  ๊ทน๋ณต์— ์‰ฝ๊ฒŒ ๋Œ€์‘
  4. ์—ฌ๋Ÿฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค ๊ฐ€๋Šฅ
    • ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— PHP Application ๊ณผ Java Application ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์ฆ‰, ํšจ์œจ์ ์ธ ์ž์› ์‚ฌ์šฉ ๋ฐ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ, ์žฅ์•  ๊ทน๋ณต, ๋ฐฐํฌ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์˜ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด ๋ถ„๋ฆฌ

Web Service Architecture


  1. Client ๋Š” Web Server ์—๊ฒŒ HTTP ์š”์ฒญ์„ ๋ณด๋ƒ„
  2. Web Server ๋Š” HTTP ์š”์ฒญ์„ WAS ์— ๋ณด๋ƒ„
  3. WAS ๋Š” ๊ด€๋ จ๋œ Servlet ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆผ
  4. WAS ๋Š” ํ•ด๋‹น Servlet ์— ๋Œ€ํ•œ Thread ๋ฅผ Thread Pool ์—์„œ ๊ฐ€์ ธ์˜ด
  5. HttpServletRequest HttpServletResponse ๊ฐ์ฒด ์ƒ์„ฑ ํ›„ Servlet ์— ์ „๋‹ฌ
  6. doGet() doPost() ๋ฉ”์„œ๋“œ๊ฐ€ ์ฒ˜๋ฆฌํ•œ ์š”์ฒญ์„ HttpServletResponse ๊ฐ์ฒด์— ๋‹ด์Œ
  7. WAS ๋Š” HttpServletResponse ๊ฐ์ฒด๋ฅผ HTTP ์‘๋‹ต ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ ํ›„ Web Server ์— ์ „๋‹ฌ
  8. WAS ๋Š” ์‚ฌ์šฉํ•œ Thread ๋ฅผ Thread Pool ์— ๋ฐ˜๋‚ฉํ•˜๊ณ  ์‚ฌ์šฉ๋œ ์š”์ฒญ ์‘๋‹ต ๊ฐ์ฒด๋“ค์€ ์ œ๊ฑฐ๋จ

References