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 서버 단에서 오류 메시지 화면을 제공할 수 있다(테크놀로지아 ~).
'Spring > MVC' 카테고리의 다른 글
[Spring] HTTP Response 데이터 처리하기 (0) | 2025.06.21 |
---|---|
[Spring] HttpServletResponse와 제공 메서드 (0) | 2025.06.21 |
[Spring] HTTP Request 데이터를 처리하는 3가지 방법 (0) | 2025.06.21 |
[Spring] HttpServletRequest과 제공 메서드 (0) | 2025.06.20 |
[Spring] Servlet - 서블릿이란? (0) | 2025.06.20 |