웹 서버 (Web Server)와 웹 어플리케이션 서버 (Web Application Server)의 차이점은 무엇인가요?
WAS ( Web Application Server )
- 특정 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서버
- 프로그램 코드를 실행해서 애플리케이션 로직 수행
- 동적 HTML, HTTP API(JSON) 제공
- 서블릿, JSP, 스프링 MVC 동작
- 대표적으로는 Tomcat, Jeus 등이 있음
구성

- WAS, DB 만으로 시스템 구성 가능
- WAS가 너무 많은 역할 담당 -> 서버 과부하 우려
- WAS 장애 시 오류 화면도 노출 불가능 (WAS는 자주 장애 발생)
- 중요한 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있음
WS ( Web Server )
- 정적인 컨텐츠(HTML, CSS, JS, 이미지, 영상)를 제공하는 서버
- 대표적으로는 Apache, Nginx 등이 있음
구성

- WS는 애플리케이션 로직 같은 동적인 처리가 필요하면 WAS에 요청을 위임
- 정적 리소스만 제공하는 WS는 잘 죽지 않음
- WAS, DB 장애 시 WS 오류 화면 제공 가능
하지만 일반적으로 WAS는 정적인 컨텐츠도 같이 제공해줄 수 있기 때문에, 웹 서버 없이 WAS만으로 도 정상적으로 동작할 수 있다.
WS 사용이유
1) WAS의 부담 감소
웹 서버에서는 정적인 문서만 처리하고, WAS에서는 로직만 수행할 수 있도록 기능을 분배하여 서버의 부담을 줄여주기 위함이다
2) WAS 보호
클라이언트와 WAS가 직접 연결된다면 중요한 정보들이 노출될 수 있기 때문에, 이를 방지하기 위해 WS를 앞단에 둘 수 있다.
참고자료
https://velog.io/@kkimbj18/WAS%EC%99%80-WS-%EC%B0%A8%EC%9D%B4
https://kkyu-coder.tistory.com/168