๊ฐœ๋ฐœ์šฉ์–ด

์›น ์„œ๋ฒ„ vs WAS ์กฐํ•ฉ์„ ์“ฐ๋Š” ์ง„์งœ ์ด์œ ๋“ค

JANNNNNN 2025. 3. 29. 22:40

๐ŸŒ ์›น ์„œ๋ฒ„(Web Server)๋ž€?

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

์ฆ‰, ์›น ์„œ๋ฒ„๋Š” ์š”์ฒญ๋ฐ›์€ ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์‘๋‹ตํ•ด์ฃผ๋Š” ์—ญํ• ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์–ด์š”.
๋Œ€ํ‘œ์ ์ธ ์›น ์„œ๋ฒ„๋กœ๋Š” Nginx, Apache๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’พ WAS (Web Application Server)๋ž€?

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

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ "๋‚ด ์ฃผ๋ฌธ ๋‚ด์—ญ ๋ณด์—ฌ์ค˜"๋ผ๊ณ  ์š”์ฒญํ•˜๋ฉด,
WAS๋Š” DB์—์„œ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ๊บผ๋‚ด์˜ค๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€๊ณตํ•ด์„œ ์‘๋‹ต์„ ๋งŒ๋“ค์–ด ๋ณด๋‚ด์ค๋‹ˆ๋‹ค.

Spring Boot, Node.js, Tomcat ๋“ฑ์ด WAS ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

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

 

์š”์•ฝ๋น„๊ต: ์›น ์„œ๋ฒ„ vs WAS

ํ•ญ๋ชฉ์›น ์„œ๋ฒ„ (Web Server)WAS (Web Application Server)
 ๋ชฉ์  ์ •์  ์ฝ˜ํ…์ธ  ์ œ๊ณต ๋™์  ์ฝ˜ํ…์ธ  ์ฒ˜๋ฆฌ
์ฃผ์š” ๊ธฐ๋Šฅ HTML, CSS, JS, ์ด๋ฏธ์ง€ ๋“ฑ ์ „์†ก ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‹คํ–‰, DB ์—ฐ๊ฒฐ
์ฒ˜๋ฆฌ ๋ฐฉ์‹ ์š”์ฒญ๋œ ํŒŒ์ผ ๊ทธ๋Œ€๋กœ ์‘๋‹ต ๋‚ด๋ถ€ ๋กœ์ง ์ฒ˜๋ฆฌ ํ›„ ๊ฒฐ๊ณผ ์‘๋‹ต
์š”์ฒญ ์ฒ˜๋ฆฌ HTTP ์š”์ฒญ → ์ •์  ํŒŒ์ผ ๋ฐ˜ํ™˜ HTTP ์š”์ฒญ → ๋กœ์ง ์ˆ˜ํ–‰ → ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
์—ฐ๊ฒฐ ๋ฐฉ์‹ WAS์™€ ์—ฐ๊ฒฐํ•ด์„œ ๋™์  ์š”์ฒญ ์ „๋‹ฌ ์›น ์„œ๋ฒ„ ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์ง์ ‘ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ
์˜ˆ์‹œ Nginx, Apache Tomcat, Node.js, Spring Boot ๋“ฑ
์†๋„ ๋น ๋ฅด๊ณ  ๊ฐ€๋ณ๋‹ค ์ƒ๋Œ€์ ์œผ๋กœ ๋ฌด๊ฒ๊ณ  ์ฒ˜๋ฆฌ ๋ณต์žก
์ฝ˜ํ…์ธ  ์ข…๋ฅ˜ ์ •์  ์ฝ˜ํ…์ธ  ๋™์  ์ฝ˜ํ…์ธ  (DB ์—ฐ๋™ ๋“ฑ)

Web Service Architecture

 Client - Web Server - WAS - DB

Client (๋ธŒ๋ผ์šฐ์ €)

โžก๏ธ [Web Server: Nginx, Apache] (์ •์  ํŒŒ์ผ์€ ์—ฌ๊ธฐ์„œ ์ฒ˜๋ฆฌ ๋)
โžก๏ธ[WAS: Node.js, Spring Boot, Django ๋“ฑ]

โžก๏ธ [DB: PostgreSQL, MySQL, MongoDB ๋“ฑ]

 

๐Ÿ”๊ทธ๋ƒฅ WAS์—์„œ ์ •์ ๋„ ๊ฐ™์ด ๋‹ค๋ฃจ๋ฉด ์•ˆ๋˜๋‚˜์š”?

1. ์—ญํ•  ๋ถ„๋ฆฌ (Separation of Concerns)

 

  • Web Server๋Š” ๋น ๋ฅด๊ณ  ๊ฐ€๋ณ๊ฒŒ ์ •์  ์ž์› ์ฒ˜๋ฆฌ (HTML, CSS, JS, ์ด๋ฏธ์ง€ ๋“ฑ)
  • WAS๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ, DB ์—ฐ๊ฒฐ, ์„ธ์…˜ ๊ด€๋ฆฌ ๋“ฑ ๋ฌด๊ฑฐ์šด ์ž‘์—… ์ˆ˜ํ–‰
  • → ์„œ๋กœ ๋‹ค๋ฅธ ์„ฑ๊ฒฉ์˜ ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•ด์ฃผ๋Š” ๊ฒŒ ํ•ต์‹ฌ!

 

Web Server๋Š” "๋ฆฌ์…‰์…˜" / WAS๋Š” "๋‚ด๋ถ€ ๋ถ€์„œ ์ง์›"
๋ฆฌ์…‰์…˜์€ ๋‹จ์ˆœ ์š”์ฒญ์„ ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ณต์žกํ•œ ๊ฑด ๋‚ด๋ถ€ ๋ถ€์„œ์— ๋„˜๊ธด๋‹ค๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

2. ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ & ์บ์‹ฑ ์ตœ์ ํ™”

 

  • Web Server๋Š” ํ”„๋ก์‹œ ์—ญํ• ๋„ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•จ → ์—ฌ๋Ÿฌ WAS์— ์š”์ฒญ์„ ๋ถ„์‚ฐ (๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ)
  • ์ด๋ฏธ์ง€, JS ๊ฐ™์€ ํŒŒ์ผ์€ Web Server๊ฐ€ ์บ์‹ฑ ์ฒ˜๋ฆฌํ•ด์„œ ๋” ๋น ๋ฅด๊ฒŒ ์ œ๊ณต ๊ฐ€๋Šฅ
  • → ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ + ์„œ๋ฒ„ ๋ถ€ํ•˜ ๊ฐ์†Œ

 

3. ๋ณด์•ˆ์  ์žฅ์ 

 

  • WAS๋ฅผ ์ง์ ‘ ์™ธ๋ถ€์— ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ , Web Server๊ฐ€ ๋ณด์•ˆ ๊ณ„์ธต ์—ญํ• ์„ ํ•จ
  • Nginx์—์„œ HTTPS ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‚ด๋ถ€ WAS์™€๋Š” HTTP ํ†ต์‹ ๋„ ๊ฐ€๋Šฅํ•จ
  • Web Application Firewall(WAF) ๊ฐ™์€ ๊ธฐ๋Šฅ๋„ Web Server ์•ž๋‹จ์—์„œ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ

 

๐Ÿ’ก ์‹ค๋ฌด์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์“ฐ์ผ๊นŒ?

 

  • ์ •์  ์ฝ˜ํ…์ธ ๋Š” CDN์ด๋‚˜ Web Server์—์„œ ์ฒ˜๋ฆฌ (์—„์ฒญ ๋น ๋ฆ„)
  • ๋™์  ์š”์ฒญ์€ REST API ์„œ๋ฒ„(WAS)๋กœ ์ „๋‹ฌ
  • ํ”„๋ก ํŠธ์—”๋“œ SPA + ๋ฐฑ์—”๋“œ API ๋ถ„๋ฆฌ๋˜๋ฉด์„œ ์ด ๊ตฌ์กฐ ๋” ๋ณดํŽธํ™”๋จ
  • ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€: React + Express + Nginx, Vue + Spring Boot + Apache

์ œ๊ฐ€ ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑด ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜์—

  • Nginx ์„ค์น˜ํ•ด์„œ HTTPS ์„ค์ •
  • Node.js ์•ฑ์€ WAS ์—ญํ• 
  • PostgreSQL์€ DB

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! 

 

๊ฒฐ๊ตญ ์›น ์„œ๋ฒ„์™€ WAS๋Š” ๊ฒฝ์Ÿ ๊ด€๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ฐ์ž์˜ ๊ฐ•์ ์„ ์‚ด๋ ค ์ตœ์ ์˜ ์›น ์„œ๋น„์Šค ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํŒŒํŠธ๋„ˆ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์›น ์„œ๋ฒ„๋Š” ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์œผ๋กœ ์ •์  ์ž์›์„ ์ฒ˜๋ฆฌํ•˜๊ณ , WAS๋Š” ๋ณต์žกํ•œ ๋กœ์ง๊ณผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•จ์œผ๋กœ์จ ์ „์ฒด์ ์ธ ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ, ์œ ์ง€ ๋ณด์ˆ˜์„ฑ๊นŒ์ง€ ์žก์„ ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค๊ณ  ๋ณด๋ฉด ๋˜๊ฒ ๋„ค์š” ใ…Žใ…Ž