Rootable의 개발일기
웹 서버와 웹 애플리케이션 서버(WAS) 본문
📌 웹 서버(Web Server)란?
HTTP 프로토콜 기반에서 동작하는 서버로, 주로 정적 리소스를 제공
ex) NGINX, APACHE
🔎 특징
- HTTP 기반으로 동작
- 정적 리소스 처리에 특화
- 정적 리소스 : 파일, 정적 HTML, JS, 이미지, CSS, 영상
- 프로그램을 실행하는 기능을 포함하기도 함
📌 웹 애플리케이션 서버(WAS - Web Application Server)란?
HTTP 프로토콜 기반에서 동작하는 서버로, 프로그램 코드를 실행하여 애플리케이션 로직을 수행하는 서버
ex) Tomcat, Jetty, Undertow
🔎 특징
- HTTP 기반으로 동작
- 웹 서버 기능 포함(정적 리소스 제공 가능)
- 프로그램 코드를 실행하여 애플리케이션 로직 수행
- 동적 HTML, HTTP API(JSON), 서블릿, 스프링 MVC
- 서버 다운이 잘 일어난다.
📌 웹 서버 vs 웹 애플리케이션 서버
결론부터 이야기하면, 둘의 경계가 모호하다.
웹 서버도 프로그램을 실행하는 기능을 포함하기도 하고, WAS는 웹 서버의 기능을 제공한다. 따라서, 서로 특화된 영역만 다른 상호 보완적 관계라고 볼 수 있다.
📌 웹 시스템 구성
🔎 WAS + DB
WAS와 DB만으로 시스템 구성이 가능하다. 하지만 WAS가 너무 많은 역할을 담당하면 서버 과부하 문제가 발생할 수 있다.
WAS는 생각보다 서버 다운이 잘 일어나기 때문에 해당 시스템 구성에서는 WAS 장애 시 오류 화면도 노출할 수 없게 된다.
🔎 WEB + WAS + DB
웹 서버 + WAS + DB로 시스템을 구성하면 WAS로부터 정적 리소스 처리에 대한 부담을 덜어줄 수 있다. 그리고 동적인 처리나 중요한 애플리케이션 로직을
WAS가 전담할 수 있다. 따라서, 리소스 종류에 따라 특화된 서버를 증설할 수 있어 효율적으로 자원을 관리할 수 있다. 또한, 웹 서버는 WAS에 비해 견고하기 때문에
서버 다운이 발생하더라도 웹 서버를 통해 오류 화면을 제공할 수 있다.
Reference:
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의
웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원
www.inflearn.com
'Spring' 카테고리의 다른 글
서블릿(Servlet) 활용 (0) | 2023.07.12 |
---|---|
서블릿(Servlet) 기본 (1) | 2023.07.11 |
빈 스코프 (0) | 2023.05.26 |
BeanFactory vs ApplicationContext (0) | 2023.05.19 |
빈 생명 주기 콜백 (0) | 2023.05.11 |