Web Server ์™€ WAS(Web Application Server)๋ž€ ?

2025. 9. 15. 22:14ยท๐ŸŒ WEB
728x90

 

์›น ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋ฉด ์ž์ฃผ WAS ๋ผ๋Š” ์šฉ์–ด๊ฐ€ ๋“ฑ์žฅํ•˜๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ WAS ๋ผ๋Š” ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

WAS ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ์„ , ์ •์  ์›นํŽ˜์ด์ง€์™€ ๋™์  ์›นํŽ˜์ด์ง€์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


1. ์ •์  ์›นํŽ˜์ด์ง€ (Static Web Page)

  • ์˜๋ฏธ: ์„œ๋ฒ„์— ์ €์žฅ๋œ HTML ํŒŒ์ผ ๊ทธ๋Œ€๋กœ ๋ธŒ๋ผ์šฐ์ €์— ์ „๋‹ฌ๋˜๋Š” ํŽ˜์ด์ง€
  • ํŠน์ง•:
    • ๋‚ด์šฉ์ด ๊ณ ์ • → ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ™์€ HTML ์‘๋‹ต
    • ์„œ๋ฒ„๋Š” ๋‹จ์ˆœํžˆ ํŒŒ์ผ์„ ์ „๋‹ฌ๋งŒ ํ•จ (์ถ”๊ฐ€ ์—ฐ์‚ฐ ์—†์Œ)
    • ๋น ๋ฅด๊ณ  ๊ฐ€๋ณ๋‹ค
  • ์˜ˆ์‹œ:
    • about.html, contact.html ๊ฐ™์€ ๋‹จ์ˆœ ์ •๋ณด ํŽ˜์ด์ง€
    • GitHub Pages, S3+CloudFront์—์„œ ๋ฐฐํฌํ•˜๋Š” ์ •์  ์‚ฌ์ดํŠธ

2. ๋™์  ์›นํŽ˜์ด์ง€ (Dynamic Web Page)

  • ์˜๋ฏธ: ์š”์ฒญ ์‹œ์ ์— ์„œ๋ฒ„๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด์„œ HTML์„ ์ƒ์„ฑํ•ด ์ „๋‹ฌํ•˜๋Š” ํŽ˜์ด์ง€
  • ํŠน์ง•:
    • ์š”์ฒญ๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฒฐ๊ณผ → ์‚ฌ์šฉ์ž/์‹œ๊ฐ„/์ƒํƒœ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง
    • ์„œ๋ฒ„๊ฐ€ DB์™€ ํ†ต์‹ ํ•˜๊ฑฐ๋‚˜ ๋กœ์ง ์‹คํ–‰ ํ›„ ๊ฒฐ๊ณผ๋ฅผ HTML๋กœ ๋ณ€ํ™˜
    • ์ƒ๋Œ€์ ์œผ๋กœ ๋ฌด๊ฒ์ง€๋งŒ ๊ฐœ์ธํ™”/์‹ค์‹œ๊ฐ„ ์„œ๋น„์Šค ๊ฐ€๋Šฅ
  • ์˜ˆ์‹œ:
    • ๋กœ๊ทธ์ธ ํ›„ “OOO๋‹˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค” ๋ผ๊ณ  ํ‘œ์‹œ๋˜๋Š” ๋Œ€์‹œ๋ณด๋“œ
    • ์‡ผํ•‘๋ชฐ ์ƒํ’ˆ ๋ชฉ๋ก (DB์—์„œ ๋ถˆ๋Ÿฌ์™€ ๋™์ ์œผ๋กœ ์ถœ๋ ฅ)
    • ๊ฒŒ์‹œํŒ, ๋ธ”๋กœ๊ทธ ํ”Œ๋žซํผ

๋น„๊ต ์ •๋ฆฌ

๊ตฌ๋ถ„

   ์ •์  ์›นํŽ˜์ด์ง€ (Static)  ๋™์  ์›นํŽ˜์ด์ง€ (Dynamic)
์ƒ์„ฑ ๋ฐฉ์‹ ๋ฏธ๋ฆฌ ์ž‘์„ฑ๋œ HTML ๊ทธ๋Œ€๋กœ ์‘๋‹ต ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ๋งˆ๋‹ค HTML ์ƒ์„ฑ
๋‚ด์šฉ ๋ณ€๊ฒฝ HTML ํŒŒ์ผ ์ˆ˜์ • ํ•„์š” DB/์„œ๋ฒ„ ๋กœ์ง์— ๋”ฐ๋ผ ์ž๋™ ๋ณ€๊ฒฝ
์„œ๋ฒ„ ์—ญํ•  ํŒŒ์ผ ์ „๋‹ฌ์ž ์—ฐ์‚ฐ์ž (๋กœ์ง ์ˆ˜ํ–‰ + DB ์—ฐ๋™)
์†๋„ ๋น ๋ฆ„ (์บ์‹ฑ ์‰ฌ์›€) ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆผ (์—ฐ์‚ฐ ๋น„์šฉ ์žˆ์Œ)
์˜ˆ์‹œ ํšŒ์‚ฌ ์†Œ๊ฐœ ํŽ˜์ด์ง€, ๋ธ”๋กœ๊ทธ ํ…œํ”Œ๋ฆฟ ์‡ผํ•‘๋ชฐ ์ƒํ’ˆ ํŽ˜์ด์ง€, ๋งˆ์ดํŽ˜์ด์ง€

 

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

  • ์ •์  ํŽ˜์ด์ง€: ๊ณ ์ •๋œ HTML, ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ •๋ณด ์ œ๊ณต.
  • ๋™์  ํŽ˜์ด์ง€: ์š”์ฒญ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ์ƒ์„ฑ, ์‚ฌ์šฉ์ž ๋งž์ถค ์„œ๋น„์Šค ์ œ๊ณต.

ํ˜„๋Œ€ SPA ์›น ์•„ํ‚คํ…์ฒ˜? ์ •์  vs ๋™์ 

  • ํ˜„๋Œ€ SPA(React, Vue, Angular)๋Š” ์ •์  HTML + JS๋ฅผ ๋จผ์ € ๋‚ด๋ ค์ฃผ๊ณ ,
    JS๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ API๋ฅผ ํ˜ธ์ถœํ•ด ๋™์ ์œผ๋กœ ํ™”๋ฉด์„ ์ฑ„์›๋‹ˆ๋‹ค.
  • ์ฆ‰, ์ •์  + ๋™์ ์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ตฌ์กฐ๋ฅผ ๋งŽ์ด ์”๋‹ˆ๋‹ค.
  • ์˜ˆ:
    • /index.html ์ž์ฒด๋Š” ์ •์ ์ด์ง€๋งŒ,
    • ํ™”๋ฉด ๋‚ด์šฉ(ํ”ผ๋“œ, ๋Œ“๊ธ€, ์•Œ๋ฆผ)์€ API ํ˜ธ์ถœ๋กœ ๋™์ ์œผ๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค

 


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

 

ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์ •์ ์ธ HTML, CSS, JS ๊ฐ™์€ ํŒŒ์ผ์„ ๋‚ด๋ ค์ฃผ๋Š” ์›น ์„œ๋ฒ„(์˜ˆ: Apache, Nginx)๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

WAS(Web application Server)์˜ ์ •์˜

๋ฐ˜๋ฉด, WAS๋Š” ์ •์  ์›น์„œ๋ฒ„์™€ ๋‹ฌ๋ฆฌ ๋™์ ์ธ ์š”์ฒญ๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์‹คํ–‰ํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” Application Server ์ž…๋‹ˆ๋‹ค.

 

 

WAS๋Š” ์ „ํ†ต์ ์ธ ๋ชจ๋†€๋ฆฌ์‹ ์„œ๋ฒ„ ๊ตฌ์กฐ์—์„œ ๋‚˜์˜จ ๊ฐœ๋…์ธ๋ฐ WAS ๋ฅผ ํ™œ์šฉํ•œ ์•„ํ‚คํ…์ฒ˜๋Š” ํ”„๋ก ํŠธ ์›น ์„œ๋ฒ„ + ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๊ฒฐํ•ฉํ•œ ๊ฐœ๋…์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

  1. ์›น ์„œ๋ฒ„๋Š” ์ •์  ๋ฆฌ์†Œ์Šค (HTML, CSS, JS)๋„ ์„œ๋น™ํ•˜๊ณ 
  2. WAS ๋Š” ๋™์  ์š”์ฒญ(๋กœ๊ทธ์ธ, DB ์กฐํšŒ ๋“ฑ)์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด Tomcat, WebLogic, JBoss ๊ฐ™์€ ๊ธฐ์ˆ ์€ ์ด ์ž์ฒด๋งŒ ๋„์›Œ๋„ HTML, CSS, JS ๊ฐ™์€ ์ •์  ํŒŒ์ผ์„ ์„œ๋น™ํ•  ์ˆ˜ ์žˆ๊ณ , ๋™์‹œ์— Servlet/JSP ๊ฐ™์€ ๋™์  ์š”์ฒญ๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

WAS ์—์„œ์˜ ํ๋ฆ„ 

 

 

 

1. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTTP ์š”์ฒญ์„ ๋‚ ๋ฆฌ๋ฉด ์›น ์„œ๋ฒ„๋Š” ์ •์  ํŒŒ์ผ์„ ๋น ๋ฅด๊ฒŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

2. ๋™์  ์š”์ฒญ(GET /users, POST /login)์€ WAS๋กœ ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค. 

3. WAS๋Š” ๋‚ด๋ถ€์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‹คํ–‰ → DB์™€ ํ†ต์‹  → HTML/JSON ์‘๋‹ต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

4. ์›น ์„œ๋ฒ„๋Š” ์ด๋ฅผ ๋ฐ˜ํ™˜๋ฐ›์•„ ์›น ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

 


๐Ÿ“Œ FE/BE ๋ถ„๋ฆฌ ๊ตฌ์กฐ vs WAS (์ „ํ†ต์ /ํ†ตํ•ฉ ๊ตฌ์กฐ) ๋น„๊ต


ํ˜„๋Œ€์˜ ์ผ๋ฐ˜์ ์ธ ์›น์€ ์ข…์ข… FE์™€ BE๋ฅผ ์•„์˜ˆ ๋…๋ฆฝ๋œ ๋ฐฐํฌ ๋‹จ์œ„๋กœ ๋‚˜๋ˆˆ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค.

ํ˜„๋Œ€ ์›น ์„œ๋น„์Šค์—์„œ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๊ณ  ๋‹ค์Œ์ฒ˜๋Ÿผ FE๋Š” ํ™”๋ฉด๊ณผ ๊ด€๋ จํ•œ ์ •์  ์ž์› ๋ฐฐํฌ + BE๋Š” API ์„œ๋ฒ„๋กœ ์™„์ „ํžˆ ์—ญํ• ์„ ๋‚˜๋ˆ„๊ณ  ๋ณ„๋„๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์ธ๋ฐ์š”.

 

๊ทธ๋Ÿฌ๋ฉด ํ˜„๋Œ€์— ์™€์„œ๋Š” BE API ์„œ๋ฒ„ = WAS ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š”๊ฑด๊ฐ€? ๊ถ๊ธˆ์ฆ์ด ๋“ค์—ˆ์–ด์š”.

 

์ด์— ๋Œ€ํ•œ ์ €์˜ ์˜๊ฒฌ์€ ์–ด๋А์ •๋„ ์—ญํ• ์ด ๊ฒน์น˜๋Š” ๋ถ€๋ถ„๋„ ์žˆ์ง€๋งŒ ์™„์ „ํžˆ ๊ฐ™๋‹ค๊ณ  ํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

 

  • WAS(Web Application Server) ๋Š” ์›๋ž˜ ์›น ์„œ๋ฒ„(Web Server) + ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ํ•ฉ์นœ ๊ฐœ๋…์ด์—์š”.
  • ์˜ˆ์ „์—๋Š” Tomcat, JBoss, WebLogic ๊ฐ™์€ WAS๊ฐ€ ์ •์  ๋ฆฌ์†Œ์Šค ์„œ๋น™ + ๋™์  ํŽ˜์ด์ง€ ์ƒ์„ฑ + ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‹คํ–‰์„ ํ•œ๊บผ๋ฒˆ์— ๋งก์•˜์–ด์š”.
  • ๋”ฐ๋ผ์„œ ํ˜„๋Œ€ SPA ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” BE๋Š” “WAS์—์„œ ์ •์  ๋ฆฌ์†Œ์Šค/SSR ์—ญํ• ์„ ์ œ๊ฑฐํ•œ, API ์ „์šฉ ์„œ๋ฒ„๋ผ๊ณ  ๋ณด๋Š” ๊ฒƒ์ด ๋” ์ •ํ™•ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ( ํŽ˜์ด์ง€ ์ƒ์„ฑ์€ ์•ˆํ•ด์ฃผ๊ณ  ์˜ค๋กœ์ง€ API๋งŒ ์‘๋‹ตํ•˜๊ธฐ ๋•Œ๋ฌธ ) 

 

 

๋˜ํ•œ, ์ด์™ธ์—๋„ FE/BE ๋ถ„๋ฆฌ๊ตฌ์กฐ์™€ ์ „ํ†ต์ ์ธ WAS ๊ฐ„์˜ ํ•ต์‹ฌ์ ์ธ ์ฐจ์ด์ ์€

์ •์  ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ 

์ •์  ์ž์› / API ์š”์ฒญ์ด ๊ฐ๊ฐ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์š”์ฒญ์ด ๊ฐ€๊ฒŒ๋” ํ•˜๋Š”๊ฐ€ vs ๋ชจ๋“  ์š”์ฒญ์„ ํ•˜๋‚˜์˜ entry point ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ณ , ๊ฑฐ๊ธฐ์„œ ์ •์ /๋™์  ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์ •์  ๋ฆฌ์†Œ์Šค๋Š” ๋ฐ”๋กœ ์ œ๊ณตํ•˜๊ณ , ๋™์  ์š”์ฒญ์€ WAS ๋กœ ๋ณด๋‚ด์–ด ์ฒ˜๋ฆฌํ•˜๋Š”๊ฐ€ ๋ผ๊ณ  ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. 

 

์–ด๋–ป๊ฒŒ ๋ณด๋ฉด WAS ๊ตฌ์กฐ๋Š” ํ•ญ์ƒ ๋ชจ๋“  ์š”์ฒญ์ด ์›น ์„œ๋ฒ„๋ฅผ ๊ฑฐ์ณ๊ฐ€์•ผํ•˜๋‹ˆ ๋ฐ”๋กœ BE ๋กœ  ๋™์  ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์— ๋น„ํ•ด ๋” ๋น„ํšจ์œจ์ ์ธ๊ฑฐ ์•„๋‹Œ๊ฐ€? ํ•˜๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋™์  ์š”์ฒญ์ธ ๊ฒƒ์„ ํŒ๋‹จํ•  ์ˆ˜ ๋งŒ ์žˆ๋‹ค๋ฉด ์• ์ดˆ๋ถ€ํ„ฐ BE ์„œ๋ฒ„์— API ์š”์ฒญ์„ ๋ฐ”๋กœ ๋‚ ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉด ๋” ํšจ์œจ์ ์ด๊ธฐ์— ์ด๊ฒŒ ํ˜„๋Œ€์— ์™€์„œ FE/BE๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” ์ด์œ ๊ฐ€ ์•„๋‹๊นŒ ์ƒ๊ฐํ•ด๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 

 

  FE/BE ๋ถ„๋ฆฌ ๊ตฌ์กฐ WAS (์ „ํ†ต์ /ํ†ตํ•ฉ ๊ตฌ์กฐ)
FE ์—ญํ•  ์ •์  ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ๋งŒ ์ œ๊ณต (CDN/์ •์  ์„œ๋ฒ„) ์„œ๋ฒ„์—์„œ HTML๊นŒ์ง€ ์ƒ์„ฑํ•ด์„œ ์ œ๊ณต
BE ์—ญํ•  API ์ „์šฉ ์„œ๋ฒ„ (JSON, GraphQL) API + HTML + ์ •์  ๋ฆฌ์†Œ์Šค ๋ชจ๋‘ ์ฒ˜๋ฆฌ
์žฅ์  ํ™•์žฅ์„ฑ, ๋ฐฐํฌ ๋…๋ฆฝ, ํ”„๋ก ํŠธ-๋ฐฑ ๋ถ„์—… ๋ช…ํ™• ๊ฐ„๋‹จํ•œ ๋ฐฐํฌ, ํ•œ ์„œ๋ฒ„์—์„œ ์™„๊ฒฐ
๋‹จ์  ์ธํ”„๋ผ ๋ณต์žก, CORS ๋ฌธ์ œ ๊ณ ๋ ค ์„œ๋ฒ„ ๋ถ€ํ•˜ ์ง‘์ค‘, ํ™•์žฅ์„ฑ ๋–จ์–ด์ง
์˜ˆ์‹œ React + Nginx + Express JSP+Tomcat, Spring Boot, Node.js EJS

 

 

 

  • FE/BE ๋ถ„๋ฆฌ ๊ตฌ์กฐ: FE๋Š” CDN์— ์˜ฌ๋ ค๋†“๊ณ , BE๋Š” API๋งŒ ์ œ๊ณต → ํ˜„๋Œ€ SPA ๊ตฌ์กฐ
  • WAS ๊ตฌ์กฐ: ํ•œ ์„œ๋ฒ„๊ฐ€ ์ •์  ํŒŒ์ผ + API + HTML ๋ชจ๋‘ ๋‹ด๋‹น → ์ „ํ†ต์  ๋ชจ๋†€๋ฆฌ์‹ ๊ตฌ์กฐ

 

 


 

 

์›น ์„œ๋น„์Šค ๊ตฌ์กฐ - WEB ์„œ๋ฒ„์™€ WAS ์˜ ๋ถ„๋ฆฌ

 

 

์ƒ๊ฐํ•ด๋ณด๋ฉด ๋‹จ์ˆœํžˆ WAS ์—์„œ ์ •์  ์ž์›์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ๊ฐ™์ด ์ˆ˜ํ–‰ํ•ด๋„ ๋ ํ…๋ฐ, ์™œ ๊ตณ์ด ์›น์„œ๋ฒ„์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฆฌํ–ˆ์„๊นŒ์š”?

 

 

WAS๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜ ์œ„ํ—˜์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ณ  ๊ฐ€์žฅ ๋น„์‹ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์ด ์ •์  ๋ฆฌ์†Œ์Šค ๋•Œ๋ฌธ์— ์ˆ˜ํ–‰์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ WAS์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜ ํ™”๋ฉด๋„ ๋…ธ์ถœ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด, Web Server ์™€ WAS ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

Web ์„œ๋ฒ„๋Š” ์ •์ ์ธ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง๊ฐ™์€ ๋™์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด WAS์— ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.

WAS๋Š” ์ค‘์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ์ „๋‹ดํ•˜์—ฌ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ Web๊ณผ WAS๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • WAS์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ Web ์„œ๋ฒ„๊ฐ€ ์˜ค๋ฅ˜ํ™”๋ฉด HTML์„ ์ œ๊ณต ๊ฐ€๋Šฅ => ์ •์  ๋ฆฌ์†Œ์Šค๋งŒ์„ ์ œ๊ณตํ•˜๋Š” Web์„œ๋ฒ„๋Š” ์ž˜ ์ฃฝ์ง€ ์•Š์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” WAS ์„œ๋ฒ„๋Š” ์ž˜ ์ฃฝ์Œ.
  • ํšจ์œจ์ ์ธ ๋ฆฌ์†Œ์Šค ํ™•์žฅ => ๊ฐ๊ฐ, ์ˆ˜์š”์— ๋”ฐ๋ผ ์ˆ˜ํ‰ ํ™•์žฅ(Load Balancing) ๊ฐ€๋Šฅ
    • ์ •์  ํŠธ๋ž˜ํ”ฝ ๊ธ‰์ฆ ์‹œ → Web ์„œ๋ฒ„๋งŒ ํ™•์žฅ
    • ๋™์  ์š”์ฒญ ๊ธ‰์ฆ ์‹œ → WAS ์ธ์Šคํ„ด์Šค๋งŒ ํ™•์žฅ

๋˜ํ•œ, ์ •์  ๋ฆฌ์†Œ์Šค ์„œ๋น™์€ ๋น ๋ฅธ I/O, ์บ์‹ฑ, SSL ์ฒ˜๋ฆฌ ์ตœ์ ํ™” ์ฒ˜๋ฆฌ๊ฐ€ ๋œ ์›น ์„œ๋ฒ„(Nginx, Apache)๊ฐ€ ๋” ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

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

 

์ด๋•Œ๋Š” Web ↔ WAS๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ

  • Web ์„œ๋ฒ„: ์ •์  ํŒŒ์ผ ์ œ๊ณต, ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ
  • WAS: API, ๋™์  ์ฒ˜๋ฆฌ ์ „๋‹ด

์ •์  ๋ฆฌ์†Œ์Šค๋Š” Web ์„œ๋ฒ„์— ์œ„์ž„ํ•˜๊ณ , WAS๋Š” ์‚ฌ์‹ค์ƒ ๋™์  ๋กœ์ง ์ „์šฉ์œผ๋กœ ์šด์˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ “WAS = ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ™˜๊ฒฝ”์ด๋ผ๊ณ  ์ดํ•ดํ•˜๋Š” ๊ฒŒ ๋” ํ˜„์‹ค์ ์ธ ์ดํ•ด ๊ฐ™์Šต๋‹ˆ๋‹ค.


๋˜ํ•œ, ๊ณผ๊ฑฐ์˜ WAS ๋Š” Tomcat ๊ฐ™์€ ๊ธฐ์ˆ ์œผ๋กœ ์›นํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์—ญํ• ๊นŒ์ง€ ์ œ๊ณตํ–ˆ์ง€๋งŒ,

์‹ค๋ฌด/ํ˜„๋Œ€์ ์ธ ๊ด€์ ์—์„œ๋Š” SPA ๊ฐ€ ๋งŽ์ด ๋ฐœ์ „ํ•˜๋ฉด์„œ WAS ์—ญํ• ์ด ๋งŽ์ด ์ถ•์†Œ๋˜๊ณ , SSR ์€ ์ œ์™ธํ•˜๊ณ  API ๋ฅผ JSON ํ˜•ํƒœ๋กœ ์‘๋‹ตํ•ด์ฃผ๋Š” WAS ๊ตฌ์กฐ๊ฐ€ ์ž๋ฆฌ์žก๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 


WAS ์—์„œ์˜ ํด๋”๊ตฌ์กฐ

 

WAS์—์„œ SPA๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ํด๋” ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•˜๋ฉด ์ข‹์„๊นŒ์š”?

 

์šฐ์„  1. ์ •์  ํŒŒ์ผ์„ ์ œ๊ณตํ•ด์ค„ ์„œ๋ฒ„ 2. ๋™์  API ๋ฅผ ์ œ๊ณตํ•ด์ค„ ์„œ๋ฒ„๊ฐ€  ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ํ”„๋ก ํŠธ์—”๋“œ ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ(dist)์ด WAS ์•ˆ์— ๋“ค์–ด๊ฐ€๊ณ , ์ด๋ฅผ ์„œ๋ฒ„ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋‹ค์Œ์€ ์˜ˆ์‹œ WAS + SPA ํด๋” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. 

project-root/
 โ”œโ”€ backend/                  # ์„œ๋ฒ„ ์†Œ์Šค์ฝ”๋“œ (Java, Node.js ๋“ฑ)
 โ”‚
 โ”œโ”€ frontend/             # SPA ์†Œ์Šค (React, Vue, Angular ๋“ฑ)
 โ”‚   โ”œโ”€ src/              # FE ์ปดํฌ๋„ŒํŠธ, ๋ผ์šฐํ„ฐ
 โ”‚   โ””โ”€ public/           # index.html (๊ฐœ๋ฐœ์šฉ)
 โ”‚
 โ”œโ”€ build/ or dist/       # FE ๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ (index.html, bundle.js, css ๋“ฑ)
 โ”‚   โ”œโ”€ index.html
 โ”‚   โ”œโ”€ assets/
 โ”‚   โ”‚    โ”œโ”€ bundle.js
 โ”‚   โ”‚    โ”œโ”€ style.css
 โ”‚   โ”‚    โ””โ”€ images/
 โ”‚
 โ”œโ”€ static/ or public/    # WAS๊ฐ€ ์ •์  ํŒŒ์ผ ์„œ๋น™ํ•˜๋Š” ํด๋”
 โ”‚   โ””โ”€ (๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ์ด ๋ณต์‚ฌ๋จ)
 โ”‚
 โ”œโ”€ app.js   # WAS ์‹คํ–‰ ์—”ํŠธ๋ฆฌํฌ์ธํŠธ ( ์ •์  ์›น ์„œ๋น™ + ๋™์  ์š”์ฒญ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ )

 

 

๋™์ž‘ ๋ฐฉ์‹

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ / ๋˜๋Š” /index ์ ‘์†
    → WAS๊ฐ€ static/index.html (๋นŒ๋“œ๋œ SPA entry point)์„ ์‘๋‹ต
  2. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋กœ๋“œ๋œ index.html ์•ˆ์—์„œ JS ๋ฒˆ๋“ค(bundle.js) ์‹คํ–‰
    → SPA ๋ผ์šฐํ„ฐ๊ฐ€ /register, /login, /mypage ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ ๋ผ์šฐํŒ… ์ฒ˜๋ฆฌ
  3. ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ ์š”์ฒญ ํ•„์š” → WAS์˜ /api/** ์—”๋“œํฌ์ธํŠธ ํ˜ธ์ถœ (JSON ์‘๋‹ต)

 

 

 

 

 

 

 

 

 

Ref

 

https://hstory0208.tistory.com/entry/Web%EA%B3%BC-WAS%EB%9E%80-%EC%9B%B9-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%9D%98-%EA%B5%AC%EC%A1%B0%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

Web๊ณผ WAS๋ž€ ? ์›น ์„œ๋น„์Šค์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

Web Server (์›น ์„œ๋ฒ„)์›น ์„œ๋ฒ„๋ž€, HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์„œ๋ฒ„๋กœ,๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์„œ๋ฒ„์— HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์›น ์„œ๋ฒ„๋Š” HTTP๋กœ ์‘๋‹ตํ•˜์—ฌ ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ

hstory0208.tistory.com

 

 

https://helloworld-88.tistory.com/71

 

[๊ธฐ๋ณธ] WEB ๊ณผ WAS ์ฐจ์ด

WEB, WAS ๋ž€? โ–  ์›น์„œ๋ฒ„(WEB)๋ž€? ์›น์„œ๋ฒ„๋Š” ๋ง๊ทธ๋ž˜๋„ ์ž‘์„ฑ๋œ htmlํŽ˜์ด์ง€ ๋“ฑ์„ ๋„คํŠธ์›Œํฌ๋ง์— ์ข…์†๋˜์ง€ ์•Š๊ณ , ์›น์„œ๋น„์Šค๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ - ์›น ์„œ๋ฒ„(์†Œํ”„ํŠธ์›จ์–ด): ์›น ๋ธŒ๋ผ์šฐ์ € ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€

helloworld-88.tistory.com

 

'๐ŸŒ WEB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์›น ์‚ฌ์ดํŠธ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•  (0) 2026.01.19
HTTP Multipart/form-data ์ง์ ‘ ํŒŒ์„œ ๋งŒ๋“ค๋ฉฐ ์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ  (0) 2025.10.01
Node.js๋กœ ๊ณ ์„ฑ๋Šฅ ์›น์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ: Cluster์™€ Worker Threads  (0) 2025.09.28
HTTP ํŒจํ‚ท ๋ถ„์„ํ•˜๊ธฐ  (0) 2025.09.18
HTTP ํŒจํ‚ท ๊ตฌ์กฐ, ์š”์ฒญ ํ—ค๋”/๋ฐ”๋””  (0) 2025.09.17
'๐ŸŒ WEB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • HTTP Multipart/form-data ์ง์ ‘ ํŒŒ์„œ ๋งŒ๋“ค๋ฉฐ ์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
  • Node.js๋กœ ๊ณ ์„ฑ๋Šฅ ์›น์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ: Cluster์™€ Worker Threads
  • HTTP ํŒจํ‚ท ๋ถ„์„ํ•˜๊ธฐ
  • HTTP ํŒจํ‚ท ๊ตฌ์กฐ, ์š”์ฒญ ํ—ค๋”/๋ฐ”๋””
์—ฐ์žŽ(lotus leaf)
์—ฐ์žŽ(lotus leaf)
  • ์—ฐ์žŽ(lotus leaf)
    lotus' s develog ๐Ÿƒ
    ์—ฐ์žŽ(lotus leaf)
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • โœ๏ธ ๊ฐœ๋ฐœํšŒ๊ณ ๋ก (5)
      • ๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (3)
      • ๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE) (19)
        • HTML (0)
        • CSS (0)
        • Javascript (0)
        • React (0)
        • Next.js (0)
        • webpack & babel (0)
      • ๐Ÿ’ป ๋ฐฑ์—”๋“œ(BE) (2)
        • Nest.js (0)
        • Express.js (0)
        • MySQL (1)
      • โš™๏ธ ์ธํ”„๋ผ(Devops) (2)
      • ๐Ÿค– AI (1)
      • ๐ŸŒ WEB (8)
      • ๐Ÿ’ป CS (16)
        • ์ž๋ฃŒ๊ตฌ์กฐ (0)
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (1)
        • ์šด์˜์ฒด์ œ (0)
        • ์ธ๊ณต์ง€๋Šฅ (8)
        • ์›น ๋ณด์•ˆ (1)
        • ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… (6)
      • ๐Ÿ–‹๏ธ DevLog (1)
      • ๐Ÿฆพ ๋กœ๋ณดํ‹ฑ์Šค (4)
      • ๐Ÿ“— ๋„ค์ด๋ฒ„๋ถ€์ŠคํŠธ์บ ํ”„ ์›น ๋ชจ๋ฐ”์ผ (0)
      • ๐ŸŽฎ Unity(C#) (10)
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (4)
        • C (4)
        • C++ (0)
        • Java (0)
        • Python (0)
      • MSA (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    C
    ros bridge
    ์ŠคํŒธ๋ฉ”์ผ๋ถ„๋ฅ˜๊ธฐ
    c++
    advaned detail
    ํŒŒ์ผํŠธ๋ฆฌ
    ๊ธฐ์ดˆ์•Œ๊ณ ๋ฆฌ์ฆ˜
    Devops #๋Œ€๊ทœ๋ชจํŠธ๋ž˜ํ”ฝ์ฒ˜๋ฆฌ
    ๋ฐฑ์ค€
    soft margin svm
    deploy-aws
    isaac automator
    turtlebot
    client-streaming
    ๋ฆฌ์•กํŠธ
    ์กฐํ•ฉ
    hard margin svm
    ์ฝ”๋”ํŒจ๋“œ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์ˆœ์—ด
    AWS
    nav2
    ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต #๋„์ „ํ•™๊ธฐ์ œ
    gaussian rbf svm
    C#
    ros workspace
    auto-scaling
    next.js12
    ์ŠคํŒธ๋ถ„๋ฅ˜๊ธฐ
    c์–ธ์–ด
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.6
์—ฐ์žŽ(lotus leaf)
Web Server ์™€ WAS(Web Application Server)๋ž€ ?
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”