Spring

Web Server와 WAS

monkeyDugi 2022. 1. 24. 11:43
반응형

Web Server


  • 정적 리소스 파일
  • 웹 서버도 프로그램 실행하는 기능을 포함하기도 한다고 함...

Web Application Server


  • 애플리케이션 로직이 들어간 것(프로그램을 실행하는 것)
  • 애플리케이션 코드를 실행하는데 더 특화 됨.
  • 자바는 서블릿 컨테이너 기능을 제공하면 WAS라고 볼 수도 있지만
    서블릿 없이 자바 코드를 실행하는 프레임 워크도 있음.

실무에서 선정 방법


WEB Server와 WAS를 분리하는 이유

WAS도 정적 리소스를 제공할 수 있고, WEB도 동적 기능을 제공할 수 있음. 그런데 왜 분리하지?

  • WAS는 로직을 처리하므로 하는 일이 많기 때문에 정적 리소스까지 처리하면,
    WAS가 너무 많은 역할을 담당하게 되므로 서버 과부하 우려가 있음
  • WAS 장애 시 WEB요청 자체가 불가 해지기 때문에 WEB과 WAS를 분리함.
  • 정적 리소스는 단순하기 때문에 잘 죽지 않고, WAS는 많은 로직을 처리하기 때문에 죽을 확률이 있기 떄문에
    DB나 WAS가 죽었을 때 WEB 요청은 살아있기 때문에 오류 페이지라도 보여줄 수 있음.
  • 효율적인 리소스 관리가 됨.
    • 정적 리소스가 많이 사용되면 WEB 서버 증설
    • 애플리케이션 리소스가 많이 사용되면 WAS 증설

분리하는 구조

  • 정적인 리소스는 WEB 서버가 처리하도록 함.
  • 이후 애플리케이션 로직같은 동적 기능이 필요하면 WAS요청
  • 정적 리소스만 제공하기 떄문에 웹 서버는 잘 안죽는다.
  • 애플리케이션 로직이 동작하는 WAS는 잘 죽음
    • 아무래도 로직이 있기 때문에 여러가지 상황이 발생될 우려가 많음.
  • WAS, DB 장애 시 웹 서버는 멀쩡하기 때문에 오류화면을 보여주는 방식이 될 수도 있음.

출처 : https://www.inflearn.com/course/스프링-mvc-1

요즘은 용어 경계가 모호함

반응형