Spring

웹 서버와 웹 애플리케이션 서버(WAS)

dev-rootable 2023. 7. 11. 15:08

📌 웹 서버(Web Server)란?

 

HTTP 프로토콜 기반에서 동작하는 서버로, 주로 정적 리소스를 제공

 

ex) NGINX, APACHE

 

🔎 특징

 

  • HTTP 기반으로 동작
  • 정적 리소스 처리에 특화
  • 정적 리소스 : 파일, 정적 HTML, JS, 이미지, CSS, 영상
  • 프로그램을 실행하는 기능을 포함하기도 함

 

📌 웹 애플리케이션 서버(WAS - Web Application Server)란?

 

HTTP 프로토콜 기반에서 동작하는 서버로, 프로그램 코드를 실행하여 애플리케이션 로직을 수행하는 서버

 

ex) Tomcat, Jetty, Undertow

 

🔎 특징

 

  • HTTP 기반으로 동작
  • 웹 서버 기능 포함(정적 리소스 제공 가능)
  • 프로그램 코드를 실행하여 애플리케이션 로직 수행
    • 동적 HTML, HTTP API(JSON), 서블릿, 스프링 MVC
  • 서버 다운이 잘 일어난다.

 

📌 웹 서버 vs 웹 애플리케이션 서버

 

결론부터 이야기하면, 둘의 경계가 모호하다.

 

웹 서버도 프로그램을 실행하는 기능을 포함하기도 하고, WAS는 웹 서버의 기능을 제공한다. 따라서, 서로 특화된 영역만 다른 상호 보완적 관계라고 볼 수 있다.

 

📌 웹 시스템 구성

 

🔎 WAS + DB

 

WAS와 DB만으로 시스템 구성이 가능하다. 하지만 WAS가 너무 많은 역할을 담당하면 서버 과부하 문제가 발생할 수 있다.

 

WAS는 생각보다 서버 다운이 잘 일어나기 때문에 해당 시스템 구성에서는 WAS 장애 시 오류 화면도 노출할 수 없게 된다.

 

WAS + DB 시스템 구성

 

🔎 WEB + WAS + DB

 

웹 서버 + WAS + DB로 시스템을 구성하면 WAS로부터 정적 리소스 처리에 대한 부담을 덜어줄 수 있다. 그리고 동적인 처리나 중요한 애플리케이션 로직을
WAS가 전담할 수 있다. 따라서, 리소스 종류에 따라 특화된 서버를 증설할 수 있어 효율적으로 자원을 관리할 수 있다. 또한, 웹 서버는 WAS에 비해 견고하기 때문에
서버 다운이 발생하더라도 웹 서버를 통해 오류 화면을 제공할 수 있다.

 

WEB + WAS + DB 시스템 구성

 

Reference:

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원

www.inflearn.com