웹 - HTTP 기반
: ‘클라이언트 - 서버’ 간 데이터를 요청/응답을 할 때, HTTP 프로토콜(인터넷을 통해) 기반으로 동작한다.
웹 서버?
: HTTP기반으로 동작하는 서버
- 정적 리소스를 제공한다.
- ex) NGINX, Apach
웹 애플리케이션 서버(WAS- Web Application Server)
: HTTP 기반으로 동작하는 서버를 뜻한다.
특징
- 정적 리소스를 제공 한다 ex) NGINX, Apach
- 프로그램 코드를 실행해서 애플리케이션 로직을 수행 가능하게 한다.
- ‘사용자 이름’ 같은 동적 리소스를 제공한다.
- ex) 톰켓(Tomcat) Jetty, Undertow
바로 이 WAS 내에서 서블릿, JSP, 스프링 MVC가 동작하는 것이다!
Web vs WAS
자바 언어에 한해서 두 서버를 구분하는 방법
- 차이점을 알아보기 전에, 웹 서버도 어플리케이션 로직을 실행할 수는 있다.
- 또, 이전에는 대부분 서블릿 (컨테이너) 기능을 제공하면 WAS라고 했긴 했다.
- 그런데, 최근 서블릿 없이 자바코드를 실행하는 서버 프레임워크도 있다.
결론
- WAS는 애플리케이션 코드를 실행하는 데 더 특화된 서버
- 정적, 동적 리소스 제공
- 서블릿 컨테이너 제공
Web System
- 위 그림과 같이 WAS 하나로 많은 역할을 할 수는 있다.
- 정적, 동적 리소스 제공하기 때문에
문제점
- 그렇지만, WAS가 혼자 너무 많은 역할을 담당해서 → 서버 과부하 가능성
- 정적 리소스로 인한 수행 능력 저하
⇒ 이로 인해, WAS가 장애가 나면서, 오류 응답조차 안되버리는 문제 발생
보완점 ⇒ WEB, WAS, DB
- 때문에, 아래 그림과 같이 각 특화된 서버 역할을 분담해놓는 게 일반적이다.
- Web Server: 정적 리소스
- WAS: 애플리케이션 로직(동적 리소스)
⇒ 이로써, 아래와 같은 이점을 얻을 수 있다.
- 효율적인 시스템 리소스 관리
- 정적 리소스가 많이 쓰인다? ⇒ Web Server 증설
- 동적 리소스가 많이 쓰인다? ⇒ WAS 증설
- 오류 응답 가능
- WAS의 장애 발생 ⇒ Web Server 측 오류 응답 전송
'인프런 강의' 카테고리의 다른 글
스프링 빈 주입 (0) | 2023.07.05 |
---|---|
WAS에서 화면을 랜더링?? (0) | 2023.06.30 |
WAS의 Servlet (feat. Multi Thread) (0) | 2023.06.29 |
Web Server와 WAS (0) | 2023.06.28 |
Spring Boot 핵심 원리 기본편 (0) | 2023.06.24 |