LUCATHREE.COM

← Back to list
🧐 TIL

[λ°±μ—”λ“œ κΈ°λ³Έ κ°œλ… 정리] WAS와 λ°±μ—”λ“œ ν”„λ ˆμž„μ›Œν¬

μž‘μ„±μΌ:
TILTerms

WAS (Web Application Server)

WASλŠ” μ›Ήμ—μ„œ μš”μ²­μ„ λ°›μ•„μ„œ 동적 μ½˜ν…μΈ (Dynamic Content)λ₯Ό μƒμ„±ν•˜κ³  μ‘λ‹΅ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄λ‹€. 즉, ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ— 따라 μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό HTMLμ΄λ‚˜ JSON으둜 λ§Œλ“€μ–΄ λŒλ €μ£ΌλŠ” 역할을 ν•œλ‹€. 이 κ³Όμ •μ—μ„œ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄κ°€ μ‹€ν–‰λœλ‹€λŠ” 점이 μ›Ήμ„œλ²„μ™€μ˜ κ°€μž₯ 큰 차이이닀.

νŠΉμ§• μš”μ•½

  • 처리 λŒ€μƒ: 동적 μ½˜ν…μΈ  (μ½”λ“œ μ‹€ν–‰ κ²°κ³Ό)
  • μ‹€ν–‰ 방식: μ–Έμ–΄ λŸ°νƒ€μž„ μœ„μ—μ„œ μ½”λ“œ μ‹€ν–‰
  • 속도: μ›Ήμ„œλ²„ 보닀 λŠλ¦¬μ§€λ§Œ μœ μ—°ν•¨
  • μ˜ˆμ‹œ: Tomcat, Jetty, Gunicorn, Uvicorn

WAS의 μ—­ν• 

  • HTTP μš”μ²­μ„ λ°›μ•„μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œ μ‹€ν–‰
  • μŠ€λ ˆλ“œ/ν”„λ‘œμ„ΈμŠ€ 관리
  • μ„Έμ…˜ 관리, νŠΈλžœμž­μ…˜ 관리
  • λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° 및 λ¦¬μ†ŒμŠ€ ν’€ 관리

λ°±μ—”λ“œ ν”„λ ˆμž„μ›Œν¬ (Backend Framework)

ν”νžˆ Spring μ„œλ²„λ₯Ό κ°œλ°œν•œλ‹€κ±°λ‚˜ FastAPI μ„œλ²„λ₯Ό κ°œλ°œν•œλ‹€λŠ” 말은 ν•΄λ‹Ή ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•΄μ„œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€λŠ” 것이지 ν”„λ ˆμž„μ›Œν¬ μžμ²΄κ°€ μ„œλ²„κ°€ λ˜λŠ” 것은 μ•„λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ λ°±μ—”λ“œ ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•΄μ„œ κ°œλ°œμ„ ν•œλ‹€λŠ” 것은 WASλ₯Ό λ§Œλ“œλŠ” 것인가? 라고 μ§ˆλ¬Έν•œλ‹€λ©΄ 그것 λ˜ν•œ μ•„λ‹ˆλ‹€.
WASλŠ” μš”μ²­μ— λŒ€ν•œ 처리λ₯Ό λ‹΄λ‹Ήν•˜λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ‹€ν–‰ ν™˜κ²½μœΌλ‘œ, WAS λΌλŠ” ν”„λ‘œμ„ΈμŠ€ μ•ˆμ—μ„œ κ°œλ°œμžκ°€ μž‘μ„±ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 λ™μž‘ν•˜λŠ” 것이라고 보면 λœλ‹€. λ°±μ—”λ“œ ν”„λ ˆμž„μ›Œν¬λŠ” λ§κ·ΈλŒ€λ‘œ μ›Ή μ„œλΉ„μŠ€μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ½”λ“œλ‘œ κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ λΌˆλŒ€μΌ 뿐이닀.
λͺ¨λ“  λ°±μ—”λ“œ ν”„λ ˆμž„μ›Œν¬κ°€ λ™μΌν•œ κΈ°λŠ₯을 κ°€μ§€λŠ” 것은 μ•„λ‹ˆμ§€λ§Œ 일반적으둜 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μŒκ³Ό 같은 κΈ°λŠ₯듀을 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ— κ΅¬ν˜„ν•  수 μžˆλ‹€.
  • λΌμš°νŒ… (URL β†’ ν•¨μˆ˜ λ§€ν•‘)
  • μš”μ²­(Request)/응닡(Response) 처리
  • λ°μ΄ν„°λ² μ΄μŠ€ ORM
  • 인증, 인가, μ„Έμ…˜, JWT
  • 미듀웨어 및 μ˜μ‘΄μ„± μ£Όμž…

언어별 μ£Όμš” ν”„λ ˆμž„μ›Œν¬

  • Python: Django, FastAPI, Flask
  • Java: Spring
  • JavaScript: Express.js, Nest.js
  • Go: Gin, Echo

μ›Ήμ„œλ²„, WAS, μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 관계

[μ‚¬μš©μž λΈŒλΌμš°μ €] ↓ [μ›Ήμ„œλ²„ (Nginx)] ↓ [WAS (Gunicorn / Uvicorn)] ↓ [μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ (FastAPI / Django)] ↓ [λ°μ΄ν„°λ² μ΄μŠ€, μ™ΈλΆ€ API]
  • μ›Ήμ„œλ²„: μš”μ²­μ„ λ°›κ³  정적 파일 처리 λ˜λŠ” WAS둜 전달
  • WAS: μš”μ²­μ„ μ²˜λ¦¬ν•  μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ‹€ν–‰ ν™˜κ²½ 제곡
  • μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜: 전달받은 μš”μ²­μ— 따라 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 μˆ˜ν–‰