본문 바로가기

Development/Web

[Web]Web Server와 Web Application Server

이번에는 서버에 대한 기초 개념인 Web Server와 WAS에 대해 알아보고자 한다. 하지만 서버를 알아보기 전에 먼저 정적 페이지와 동적 페이지에 대해서 먼저 알아본 뒤 서버를 알아보도록 하자

 

정적 페이지와 동적 페이지

1. 정적 페이지

  • Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환한다.
  • 항상 동일한 페이지를 반환한다.
  • html, css, js, 이미지, 영상과 같이 컴퓨터에 저장되어 있는 파일

2. 동적 페이지

  • 인자의 내용에 맞는 동적인 contents를 반환한다.
  • Web Server에 의해 실행되는 프로그램을 통해서 만들어진 결과물

 

앞선 내용에서 정적 페이지와 동적 페이지의 차이를 간략하게 알아봤다. 이제부터는 이러한 차이를 바탕으로 Web Server와 WAS에 대해서 알아보도록 하자

 

Web Server

  • HTTP 기반으로 동작한다.
  • 정적 리소스 제공, 기타 부가기능
  • 정적 HTML, CSS, JS, 이미지, 영상
  • ex) NGINX, APACHE 등등

 

Web Application Server

  • HTTP 기반으로 동작한다.
  • Web Server의 기능도 포함한다. -> 정적 리소스 제공 가능
  • 프로그램 코드를 실행해서 애플리케이션 로직 수행
    • 동적 HTML, HTTP API(JSON)
    • 서블릿, JSP, 스프링 MVC
  • ex) Tomcat, Jetty, Undertow 등등

 

Web Server와 WAS의 차이

  • Web Server -> 정적 리소스(파일), WAS -> 애플리케이션 로직
  • 자바는 서블릿 컨테이너 기능을 제공하면 WAS
  • WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다.

 

웹 시스템의 구성

1. WAS, DB

  • WAS가 정적 리소스, 애플리케이션 로직 모두 제공 가능하므로 WAS와 DB만으로 시스템 구성이 가능하다.
  • BUT WAS가 너무 많은 역할을 담당하게 될 경우 서버 과부하가 발생할 수 있다. -> WAS 장애 시 오류 화면 노출도 불가능
  • 비싼 애플리케이션 로직이 정적 리소스로 인해 수행이 어려울 수가 있다.

2. Web Server, WAS, DB

  • Web Server -> 정적 리소스 처리, WAS -> 애플리케이션 로직 처리
  • Web Server는 동적인 처리가 필요하면 WAS에 요청을 위임한다.
  • 효율적인 리소스 관리
    • 정적 리소스가 많이 사용되면 Web Server만 증설하면 된다.
    • 애플리케이션 리소스가 많이 사용되면 WAS만 증설하면 된다.
  • Web Server는 잘 죽지 않지만, WAS는 잘 죽기에 WAS/DB 장애 시 Web Server가 오류 화면을 제공한다.

 


출처 : 인프런 우아한 형제들 최연소 기술이사 김영한의 스프링 완전 정복(스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술)