1 minute read


개발일을 하다보면 WEB/WAS 라는 소리를 한 번쯤 들어봤을 것이다. 이 WEB/WAS의 개념과 특징에 대해 알아보자.

1. WEB (Web Server)

Web Server란 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 정적인 콘텐츠(HTML, CSS, 이미지 등)을 전송해주는 서비스 프로그램을 말한다.

웹 서버는 url을 입력해서 페이지를 요청하면 http 요청을 받아들여 사용자에게 단순히 저장된 웹 리소스를 클라이언트로 전달한다. 클라이언트로부터 콘텐츠를 전달 받아 저장, 처리 동적인 요청이 들어오면 웹 서버에서 처리가 어려워 해당 요청을 WAS로 요청하고 WAS로 부터 돌려받은 응답을 클라이언트에게 전달하는 역할을 한다.

대표적인 웹 서버로는 Apache, Nginx, IIS 등이 있다.



2. WAS (Web Application Server)

Web Application Server란 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다.

주로 데이터베이스 서버와 같이 수행되며 웹 서버가 처리하기 힘든 서버 사이드 코드 로직 등을 수행하는데, 웹 애플리케이션을 실행하여 동적 콘텐츠를 생성하고 웹 서버와 클라이언트 간의 데이터를 처리하는 역할을 한다.

대표적인 WAS로는 Tomcat, JBoss, WebLogic, WebSphere 등이 있다.



3. WEB, WAS 를 따로 두는 이유

WAS는 웹 서버의 기능을 포함하고 있기 때문에 WAS와 DB만 가지고 웹 서비스의 구성이 가능하다. 하지만 대부분 웹 서버와 WAS를 함께 사용해서 웹 서비스를 구성한다.



왜 그럴까? 역시 효율이 좋지 않기 때문이다. 정적인 데이터를 처리할 웹 서버 없이 WAS로만 서비스를 구성한다면 WAS가 너무 많은 역할을 담당하게 되어 서버 과부하의 위험이 있고, 비용적 측면에서도 정적 리소스가 많이 사용되면 웹 서버르 증설하면 되고 동적 리소스가 많이 사용된다면 WAS를 증설하면 되기 때문에 비교적 낮은 비용으로 서비스를 운영할 수 있다.
또, 웹 서버가 있다면 WAS가 죽었을 때 사용자에게 HTML 화면을 제공하지만 그렇지 않다면 사용자는 빈 화면이나 오류가 발생했다는 화면을 보게 될 것이다.