WAS는 Web Application Server의 약자이다.
배포할 때에는 **내장 WAS(스프링부트 기준 Tomcat)**를 사용하게 되고
빌드 시에 생성되는 jar 파일을 실행하면 서버를 가동할 수 있다.
즉, 어떤 환경이든 jvm만 있으면 간단하게 Spring boot 어플리케이션을 동작할 수 있다는 뜻이다.
WAS란?
- 웹 서버와 웹 컨테이너의 결합체
- 클라이언트의 요청이 있을 때 내부의 프로그램을 통해 응답을 생성하고 이를 돌려주는 역할을 하는 것이다.
- 스프링부트에서는 Apache tomcat이 이와 같은 역할을 하며 Servlet Container라고 불린다.
- spring-boot-starter-web 라이브러리는 자체적으로 spring-boot-starter-tomcat을 포함하기 때문에 해당 라이브러리를 사용하는 프로젝트의 내장 WAS는 Tomcat이다.
- 이외의 내장 WAS로는 jetty, undertow, netty 등이 있다.
WAS의 동작
- 정적 리소스(HTML,CSS,JS)를 사용하여 생성한 Static Pages는 웹 서버가 처리
- 웹 서버는 애플리케이션 로직같은 동적 처리가 필요한 Dynamic Pages는 WAS에 요청을 위임
- WAS는 중요한 애플리케이션 로직 처리 전담
- 비용이 커서 큰 규모의 애플리케이션에는 부적합
WAS와 Web Server 의 차이
Web Server
Web Server는 Software와 Hardware로 구분된다.
Hardware
Web 서버가 설치되어 있는 컴퓨터
Software
웹 브라우저로 클라이언트로부터 HTTP 요청을 받아 Static Contents를 제공하는 프로그램
역할
HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 등)의 요청을 서비스하는데 요청에 대한 처리는 2가지로 나누어진다.
1) Static Content 제공 ( WAS를 거치지 않는다.)
2) Dynamic Content를 요청받으면 WAS에 요청을 전달하고, 요청에 대한 결과를 다시 Client에게 전달한다.
WAS
다양한 로직을 처리하는 동적인 처리를 요구하는 Dynamic Contents를 제공하기 위해 만들어진 Application Server
효율적인 리소스 관리
- 정적 리소스가 많이 사용되면 Web Server 증설
- 애플리케이션 리소스가 많이 사용되면 WAS 증설
정적 리소스만 제공하는 웹 서버는 잘 죽지 않음
애플리케이션 로직이 동작하는 WAS 서버는 잘 죽음
WAS, DB 장애시 WEB 서버가 오류 화면 제공 가능
reference
https://velog.io/@noneobj/Spring-Boot-TIL-2.-TDD로-개발하기
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
728x90
반응형
'BackEnd' 카테고리의 다른 글
테스트를 위한 객체, 테스트 더블(Test Double) (0) | 2024.04.04 |
---|---|
[인증/인가] RefreshToken은 왜 Redis를 사용해 관리할까? (with. RTR 방식) (5) | 2023.06.13 |
애자일과 테스트 방법론(TDD & BDD) (1) | 2022.06.29 |
포스트맨(Postman) 사용해서 카카오 엑세스 토큰 받기! (1) | 2022.02.10 |
[포트포워딩] LG U+ 공유기 (0) | 2021.12.02 |