이번에는 서버에 대한 기초 개념인 Web Server와 WAS에 대해 알아보고자 한다. 하지만 서버를 알아보기 전에 먼저 정적 페이지와 동적 페이지에 대해서 먼저 알아본 뒤 서버를 알아보도록 하자
정적 페이지와 동적 페이지
1. 정적 페이지
- Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환한다.
- 항상 동일한 페이지를 반환한다.
- html, css, js, 이미지, 영상과 같이 컴퓨터에 저장되어 있는 파일
2. 동적 페이지
- 인자의 내용에 맞는 동적인 contents를 반환한다.
- Web Server에 의해 실행되는 프로그램을 통해서 만들어진 결과물
앞선 내용에서 정적 페이지와 동적 페이지의 차이를 간략하게 알아봤다. 이제부터는 이러한 차이를 바탕으로 Web Server와 WAS에 대해서 알아보도록 하자
Web Server
- HTTP 기반으로 동작한다.
- 정적 리소스 제공, 기타 부가기능
- 정적 HTML, CSS, JS, 이미지, 영상
- ex) NGINX, APACHE 등등
Web Application Server
- HTTP 기반으로 동작한다.
- Web Server의 기능도 포함한다. -> 정적 리소스 제공 가능
- 프로그램 코드를 실행해서 애플리케이션 로직 수행
- 동적 HTML, HTTP API(JSON)
- 서블릿, JSP, 스프링 MVC
- ex) Tomcat, Jetty, Undertow 등등
Web Server와 WAS의 차이
- Web Server -> 정적 리소스(파일), WAS -> 애플리케이션 로직
- 자바는 서블릿 컨테이너 기능을 제공하면 WAS
- WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다.
웹 시스템의 구성
1. WAS, DB
- WAS가 정적 리소스, 애플리케이션 로직 모두 제공 가능하므로 WAS와 DB만으로 시스템 구성이 가능하다.
- BUT WAS가 너무 많은 역할을 담당하게 될 경우 서버 과부하가 발생할 수 있다. -> WAS 장애 시 오류 화면 노출도 불가능
- 비싼 애플리케이션 로직이 정적 리소스로 인해 수행이 어려울 수가 있다.
2. Web Server, WAS, DB
- Web Server -> 정적 리소스 처리, WAS -> 애플리케이션 로직 처리
- Web Server는 동적인 처리가 필요하면 WAS에 요청을 위임한다.
- 효율적인 리소스 관리
- 정적 리소스가 많이 사용되면 Web Server만 증설하면 된다.
- 애플리케이션 리소스가 많이 사용되면 WAS만 증설하면 된다.
- Web Server는 잘 죽지 않지만, WAS는 잘 죽기에 WAS/DB 장애 시 Web Server가 오류 화면을 제공한다.
출처 : 인프런 우아한 형제들 최연소 기술이사 김영한의 스프링 완전 정복(스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술)
'Development > Web' 카테고리의 다른 글
| [Web]Redirect와 Forward의 차이와 사용법 (0) | 2023.05.15 |
|---|---|
| [Web]쓰레드와 멀티 쓰레드 (0) | 2023.04.22 |
| [Web]서블릿(Servlet)과 서블릿 컨테이너란? (0) | 2023.04.16 |