웹 서버, 웹 애플리케이션 서버

주리링·2021년 8월 15일

스프링 MVC

목록 보기
1/9

클라이언트에서 서버로 데이터를 전송하고 서버에서 클라이언트로 요청에 응답할 때, HTTP라는 프로토콜을 기반으로 동작한다.
프로토콜이란 여러 개의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신을 원활하게 하기 위해 필요한 통신 규약이다.
HTTP를 사용하면 거의 모든 형태의 데이터가 전송이 가능하다.

웹 서버(Web Server)

웹 서버는 HTTP를 기반으로 동작하며, 정적 리소스를 제공한다.
ex) NGINX, APACHE

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

웹 애플리케이션 서버는 HTTP를 기반으로 동작하며, 웹 서버의 기능을 포함한다.
그러므로 정적 리소스도 제공하며, 프로그램 코드를 실행해서 애플리케이션 로직을 수행한다.
그러므로 사용자에 따라 다른 화면을 제공할 수 있는 동적 리소스도 제공 가능하다.
WAS는 웹 서버보다 애플리케이션 코드를 실행하는데 더 특화되었다고 볼 수 있다.
ex) Tomcat, Jetty, Undertow

웹 시스템 구성-WAS,DB

WAS는 정적 리소스와 애플리케이션 로직을 모두 제공하므로 DB와 WAS만으로도 시스템을 구성할 수 있다.
하지만 WAS만을 이용하여 웹 시스템을 구성하면 서버 과부하의 우려가 있다.
그리고 WAS에 문제가 생길 시에는 오류 화면도 노출 할 수 없다.
가장 중요한 애플리케이션 로직이 정적 리소스 때문에 수행이 어려우면 안되므로 아래와 같이 웹서버와 WAS, DB를 이용하여 웹 시스템을 구성한다.

웹 시스템 구성-WEB,WAS,DB

정적 리소스는 웹 서버가 처리하고, 애플리케이션 로직과 같은 동적 처리는 WAS에 요청을 위임한다.
이렇게 웹 시스템을 구성하면 정적 리소스가 많이 사용되면 WEB 서버를 증설하고 애플리케이션 리소스가 많이 사용되면 WAS를 증설하므로 리소스 관리를 효율적으로 할 수 있다!
또 다른 이점은 WAS에 문제가 생겼을 때 웹 서버가 오류 화면을 보여주도록 설정할 수 있다.

김영한님의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 보고 공부한 내용을 정리한 것입니다.

profile
코딩하는 감자

0개의 댓글