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

2023. 1. 2. 20:07컴퓨터 공학

반응형

이 문서에서는 웹 서버와 웹 애플리케이션 서버에 대해서 다룹니다.

 

 

많이들 혼동하는 것이 웹 서버와 웹 애플리케이션 서버입니다.

무엇이 다를까요?

 

 

웹 서버(Web Server)

웹 서버는 하드웨어, 소프트웨어 두 가지 특면에서 바라볼 수 있습니다.

 

하드웨어 측면에서 웹 서버는 소프트웨어와 웹 사이트의 컴포넌트 파일들을 저장하는 컴퓨터입니다.

인터넷에 연결되어 웹에 연결된 다른 기기들이 웹 서버의 데이터를 주고 받을 수 있도록 합니다.

 

소프트웨어 측면에서 웹 서버는 웹 사용자가 어떻게 호스트 파일들에 접근하는지를 관리합니다.

현대의 통신은 대부분 HTTP에 국한됩니다.

 

 

또한 웹 서버를 넓게 보자면 정적 리소스를 제공하고 기타 부가기능을 제공합니다.

(정적 리소스는 단순 서빙)

 

 

대표적으로 Apache와 Nginx가 있습니다.

 

특히 nginx의 경우 WAS의 부하를 줄일 수 있는 로드밸런서 역할을 하기도 합니다.

 

 

 

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

WAS 역시 HTTP 기반으로 동작합니다.

 

WAS는 웹 서버의 기능인 정적 리소스 제공 기능을 포함하고 있습니다.

 

WAS는 프로그램 코드를 실행해서 애플리케이션 로직을 수행합니다.

 

그래서 서블릿, JSP, Spring MVC 같은 것을 동작시킬 수 있습니다.

 

 

대표적으로 Tomcat, Jetty, Unsertow와 같은 WAS가 존재합니다.

 

Spring Boot의 경우 기본적으로 Tomcat이 내장되어 있기 때문에 WAS를 별도로 설치할 필요가 없습니다.

 

다만 실제 배포환경에서 Tomcat으로만 구성한다면 트레픽을 감당하지 못할 가능성이 높습니다.

 

    

 

얼핏 보기에 기능이 두개 비슷해보입니다.

특히 최근에는 웹 서버에서 특정 프로그램을 실행할 수도 있게 하고,

웹 애플리케이션 서버에서는 웹 서버의 기능을 사용할 수 있기 때문이죠.

 

 

그렇기 때문에 그 경계는 모호하나 WAS는 애플리케이션 코드를 실행시키는데 더 특화돼 있다는 사실은 확실합니다.

반응형