Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

IT/๋„คํŠธ์›Œํฌ

์›น ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ดํ•ด - Web Server vs WAS

Gearvirus(junyup2) 2023. 11. 3. 00:37
์›น์˜ ๋™์ž‘ ๋ฐฉ์‹(๊ตฌ์กฐ)

 

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 ๋“ฑ์˜ ๊ตฌ๋™ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด
  • 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๋Š” ๊ทธ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์—ฌ ์ €์žฅ

Web Server vs WAS

 

Web Server / 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)
    1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ HTTP ์š”์ฒญ(Request)์„ Web Server๋กœ ์ „๋‹ฌ
    2. Web Server๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ WAS์— ์ „๋‹ฌ
    3. WAS๋Š” ์ธ์ž์— ๋งž๊ฒŒ ์ƒ์„ฑ๋œ Response ๊ฐ์ฒด๋ฅผ Web Server์— ์ „๋‹ฌ
    4. Web Server๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต

 

Reference