본문 바로가기

[Spring] Web Server, Web Application Server(WAS)

@xuv22025. 6. 20. 17:20

HTTP의 기본을 충분히 공부하였으니 이제 웹에 대해 이해 해보자 !

우리는 현재 HTTP 프로토콜로 모든 데이터를 네트워크로 주고 받는다. 

이러한 HTTP 로 데이터를 주고 받는 웹 애플리케이션에 대해 알아보자.

웹 서버 (Web Server)

웹 서버는 HTTP 기반으로 동작한다.

정적 리소스 (HTML , CSS, JavaScript) 등을 제공하고, 대표적인 예시로 NGINX 가 있다.


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

WAS 도 HTTP 기반으로 동작한다.

하지만 WAS는 웹 서버의 기능을 포함하면서 프로그램 코들르 통해 애플리케이션 로직을 수행할 수 있다.

기존 웹 서버는 정적인 파일들만 내려줬다면, WAS 는 동적인 HTML을 생성하거나 API를 생성하여 응답할 수 있다.

대표적으로 스프링 부트가 기본으로 제공하는 Tomcat 이 있다.

 


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

웹 서버는 정적 리소스를 내려주는 역할을 하는 반면에, WAS는 애플리케이션 로직을 포함하여 동적인 리소스를 작성하고 응답할 수 있다는 큰 차이점이 존재한다.

사실 두개의 개념이 모호 하긴 한데, 웹 서버도 프로그램을 실행하는 기능을 포함하기도 하고, 웹 애플리케이션 서버도 웹 서버의 기능을 제공한다.


웹 시스템 구성

WAS와 DB만 있다면 사실 서비스를 운영할 수 있다.

하지만 이렇게 되면 WAS가 너무 많은 역할을 부담하게 되며 과부하가 일어날 수 있다.

순전히 정적 HTML을 뿌려주기만 하면 되는데, 만약 이러한 작업 때문에 중요한 애플리케이션 로직이 수행이 못될 수도 있다.

그래서 다음과 같은 방법으로 부하를 줄여주는 방법을 택하면 된다.

웹 서버에서 1차로 정적 리소스나 이미지를 뿌려주고, 동적인 처리가 필요하다면 이후에 WAS에서 비즈니스 애플리케이션 로직을 수행하면 된다.

이런식으로 웹 시스템을 구성하게 되면 정적 리소스가 많아지면 단순 웹 서버만 증설하면 되고, 애플리케이션 리소스의 사용이 증가하면 WAS만 증가하면 된다.

또한 웹 서버는 단순 정적 파일을 내려주는 작업만 하기 때문에 잘 죽지 않는다. -> 이때 이 웹 서버에 오류 페이지들을 넣어 놓고 WAS 나 DB 장애시 WEB 서버 단에서 오류 메시지 화면을 제공할 수 있다(테크놀로지아 ~).

xuv2
@xuv2 :: xuvlog

폭싹 늙었수다

목차