ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SpringMVC] web server와 WAS
    Programming/Spring MVC 2021. 3. 13. 18:57
     

    스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

    웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원

    www.inflearn.com

    이 게시글은 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의를 듣고 느낀점과 배운 것들을 다시 한 번 각색하여 정리한 것입니다.


    Web

    현대의 웹은 모든 것이 HTTP 메시지를 기반으로 동작한다. 단순히 HTML과 같은 마크업 언어를 전달하는 용도가 아닌, image나 JSON과 같이 다양한 형태의 데이터를 전송할 수 있다. 


    Web Server

    웹 서버는 말 그대로 HTTP를 기반으로 동작하는 서버이다.

    웹 브라우저와 같은 클라이언트로 부터 HTTP 요청을 받고, HTTP로 응답한다.

    주로 html, css, js 등과 같은 정적인 리소스를 제공한다. 

    대표적으로는 아파치, nginx, GWS 등이 있다.

    간단한 web server 구조


    WAS

    WAS는 HTTP 기반으로 동작하는 미들웨어로, 웹 서버의 기능과 프로그램 코드를 실행하는 애플리케이션 로직을 함께 수행한다. 즉 동적인 컨텐츠를 제공하기 위해 동작한다.

     

    대표적으로 Java에서 서블릿이나 JSP와 같이 프로그램 코드가 담긴 파일들을 실행할 수 있다. WAS는 이러한 코드들을 실행할 수 있는 구동 환경을 제공한다.

     

    주로 database와 함께 사용된다. 또한 여러 개의 트랜잭션을 관리할 수 있도록 제공한다.

     

    WAS의 종류에는 톰캣, Jetty 등이 있다.

     

    그렇다면 Web Server는 왜 사용해야 할까?

    WAS에는 Web Server가 수행할 수 있는 모든 기능들을 가지고 있다. 그럼에도 불구하고 많은 웹 시스템은 Web server와 WAS를 혼합하여 제공한다.

     

    WAS는 개발자가 작성한 애플리케이션 로직을 처리하기 때문에 다양한 오류나 에러에 직면할 수 있다. 또한 너무나 많은 역할을 담당하기 때문에 다수의 트래픽이 들어오면 서버의 과부하가 우려된다. 만약 WAS가 과부하에 의하여 내려간다면, 클라이언트는 해당 웹 시스템에 접근조차 할 수 없게 된다. 즉 오류 화면 조차 노출할 수 없다.

     

    정적 리소스는 비교적 적은 비용으로 처리할 수 있다. 좀 더 큰 비용을 요구하는 것은 동적은 리소스를 처리하는 애플리케이션 로직이다. 그렇기 때문에 정적인 리소스는 web server가 처리하고 나머지 동적인 처리는 WAS에게 요청을 위임한다.

     

    WAS는 동적 리소스만 처리하면 되기 때문에 서버에 전해지는 부하가 적어진다. 또한 정적인 리소스 요청이 많아지면 web server를 증설하면 되고, 동적인 요청이 많아지면 WAS를 늘려서 대비할 수 있다.

     

    앞서 우려하였던 오류 페이지 또한 정적 리소스에 포함되기 때문에 비교적 잘 죽지 않는 web server가 이러한 오류 페이지를 처리할 수 있다.

    'Programming > Spring MVC' 카테고리의 다른 글

    [SpringMVC] SpringMVC 구조  (0) 2021.03.18
    [SpringMVC] 프론트 컨트롤러 패턴  (0) 2021.03.15
    [SpringMVC] HTML, HTTP API, CSR, SSR  (0) 2021.03.14
    [SpringMVC] 멀티 쓰레드  (0) 2021.03.14
    [SpringMVC] 서블릿  (0) 2021.03.13

    댓글

Designed by Tistory.