이 포스트는 김영한님의 ‘스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술’을 수강하고 작성하였습니다.

웹 서버 (Web Server)

  • HTTP 기반
  • 정적 리소스 제공, 기타 부가기능
  • 예) NGINX, APACHE

웹 애플리케이션 서버 (WAS; Web Application Server)

  • HTTP 기반
  • 웹 서버 기능 + 애플리케이션 로직 수행
    • 동적 HTML, HTTP API
    • 서블릿, JSP, 스프링 MVC
  • 애플리케이션 코드를 실행하는 데 특화
  • 자바는 서블릿 컨테이너 기능을 제공하면 WAS
  • 예) 톰캣(Tomcat), Jetty, Undertow

웹 시스템 구성

WAS, DB

클라이언트WAS애플리케이션 로직HTML, CSS, JS이미지DB출처: 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (김영한)
  • WAS, DB 만으로도 시스템 구성 가능
  • WAS는 정적 리소스, 애플리케이션 로직 모두 제공 가능

특징

  • WAS가 너무 많은 역할을 담당 → 서버 과부화
  • 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있음
  • WAS 장애 시, 오류 화면도 안 나옴

Web Server, WAS, DB

Web Server클라이언트WAS애플리케이션 로직HTML, CSS, JS이미지DB출처: 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (김영한)
  • 웹 서버가 정적 리소스 처리
  • 동적인 처리는 웹 서버가 WAS에 위임
  • WAS는 중요한 애플리케이션 로직 처리 전담

특징

  • 웹 서버는 잘 죽지 않음
    • 정적 리소스만 제공하기 때문에 WAS, DB 장애 시 웹 서버가 오류 화면 제공
  • 애플리케이션 로직이 동작하는 WAS 서버는 잘 죽음

댓글남기기