메이쁘

[WEB CS] 웹 서버와 WAS(Web Application Server) 의 의미, 차이점, 웹 동작 원리를 알아보자! 본문

Technology/Web - Spring

[WEB CS] 웹 서버와 WAS(Web Application Server) 의 의미, 차이점, 웹 동작 원리를 알아보자!

메이쁘 2020. 7. 18. 17:53

안녕하세요.

 

최근에 회사에서 WEB 서버 개발 파트를 맡게 되서

 

기초 cs지식부터 다시 공부하고 있습니다.

 

 

이에 따라, 공부한 것을 정리하는 겸 해서 포스팅을 하게 되었습니다!!

 

 

웹 하면 말나오는 웹 브라우저, 웹 서버, 그리고 이젠 기본이 되버린 WAS에 대해 알아보겠습니다.

 

 

 

 

 

 

웹 서버 정의 및 웹 페이지 출력 원리


  -  웹 서버 : 정적인 데이터만 처리하는 서버. (HTML, 이미지 등). 속도는 빠르다.

 

  -  WAS(Web Application Server) : 동적 데이터를 처리하는 서버.  (DB 등). 비즈니스 로직 처리

 

 

 

엥..

 

우선, 동적 데이터와 정적 데이터의 차이가 헷갈립니다.

 

 

 

정적 데이터 는 정확하게 말하면, 웹 서버에서 클라이언트가 요청(Request) 한 페이지를 만들기 위해 미리 저장된 파일(HTML, CSS, JS, 이미지) 을 말합니다.

 

그래서, 서버에 저장된 파일들로 웹 페이지를 만들어 클라이언트에게 응답(Response) 하고, 클라이언트는 이 웹 페이지를 볼 수 있게 되죠.

 

 

이렇게 만들어진 정적 데이터 페이지장단점이 존재합니다.

 

 

  -  장점

    ->  속도가 빠르다. (대신 파일의 양이 많으면 많아질수록 웹 페이지로 가공할 양이 늘어나니 느려지겠죠?)

    ->  구축 비용이 적다. (별도의 DB, 비즈니스 로직이 필요없고 파일만 만들어내면 끝이니까요!)

 

 

  -  단점

    ->  정해진 데이터만 웹 페이지에 출력한다. (한정적인 정보만 보여줄 수 있음)

    ->  관리가 힘들다. (예를 들어, 갑자기 메뉴를 추가하고 싶다면 HTML 파일, CSS 파일을 전부 까서 코드를 추가하고 해야함. 마찬가지로, 이미지를 수정하고 싶다면 직접 소스코드를 열어 수정해야 한다..)

 

 

 

그럼 동적 데이터에 대해서도 감이 오시나요?

 

 

동적 데이터정보의 변경이 잦은 정보들을(ex. 날씨, 주식, 이벤트, 게시글 등) 을 Ajax 같은 라이브러리를 사용하여 동적으로 받아오는 데이터를 말합니다.

 

 

즉,

 

클라이언트가 서버에 웹 페이지를 요청(Request)을 할때, 우선 서버에 저장된 정적 데이터를 응답(Response) 하여 정적 웹 페이지부터 클라이언트에게 보여준 후,

 

DB에 요청한 데이터를 받아온 후 비즈니스 로직에 맞게 가공한 결과값을 주어진 웹 페이지 공간에 출력하는 웹 페이지 를 말합니다.

 

 

 

거의 대부분의 웹 페이지는 동적 웹 페이지 입니다.

 

왜 다들 동적으로 웹 페이지를 만들었을까요?

 

 

  - 장점

    ->  다양한 정보(서비스)를 제공할 수 있다.

    ->  유지보수가 쉽다. (이미지 파일, 메뉴 추가 등 여러 작업을 DB에 데이터만 넣어도 변경이 가능하다.)

 

  -  단점

    ->  상대적으로 느리다. (단순한 웹 페이지 같은 경우에는 정적 웹 페이지가 빠르겠지만, 거의 대부분의 웹 페이지는 단순하지 않고 정보의 변경이 잦기 때문에 오히려 동적 웹 페이지가 빠른 편이다.)

    ->  추가 비용이 발생한다. (웹 서버 이외에 WAS 를 사용해야 하기 때문에!)

 

 

*** 사실, 웹 서버도 동적 웹 페이지를 출력하기 위해 필요한 존재입니다. 근데 위에서 저렇게 웹 서버와 WAS를 구분지어서 적은 이유는 이제 WAS에 대해 알게 되면 이해하실 겁니다.

 

 

 

드디어.. 나왔습니다! WAS가!

 

동적 웹 페이지를 만들기 위해서는 WAS가 필요하기 때문에, WAS는 동적 웹 페이지를 처리할 때 사용하는 서버 라고 말합니다.

 

 

 

그럼, 웹 서버에 대해 확실히 정리하고 WAS에 대해 알아보러 넘어가겠습니다.

 

  -  웹 서버 : 클라이언트가 특정 주소(URL, IP 주소 등) 로 웹 페이지를 요청하는 것을 전달받아, 이에 맞는 웹 페이지를 만들어 응답(HTML) 하기 위한 서버. 

 

**** 클라이언트 : 저와, 지금 이 글을 읽는 여러분과 같은 사용자

**** 웹 브라우저 : 웹 페이지를 요청하고, 응답받은 HTML을 보여주는 Application (ex. 크롬, IE, Safari 등)

**** 웹 페이지 : HTML 페이지. (지금 보고있는 이 포스팅 페이지, 네이버 등)

**** 요청 및 응답 : HTTP 방식

 

 

 

웹 통신 과정(클라이언트가 URL 입력 시, 웹 페이지가 출력되는 원리)

 

 

 

 

 

 

WAS 정의 및 구조


  -  웹 서버 + 웹 컨테이너 구조

 

  -  웹 서버에서 동적 데이터 처리가 필요한 부분은 웹 컨테이너로 전달하고, 웹 컨테이너에서는 동적 데이터를 처리(HTML로 받아옴) 해서 다시 웹 서버로 전달합니다.

 

  -  웹 서버에서는 정적 데이터를 처리하여 웹 페이지를 만들어 클라이언트에게 뿌리고, 동적 데이터를 웹 컨테이너에서 받는대로 웹 페이지에 뿌려줍니다.

 

  -  JSP 를 처리하기 위함입니다.

 

 

WAS 처리 과정(간단히)

 

 

 

그렇기 때문에, 어느 웹 페이지에서 다른 메뉴를 선택하면 최상단, 최하단 부분이 먼저 출력되고, 중간 내용 부분은 하나하나씩 출력되곤 합니다. 

 

이해하셨나요?

 

 

 

 

WAS 는 어떤 것들이 있냐면,

 

Tomcat, Spring Framework, JBoss, Jeus 등 이 있습니다.

  

 

*** 웹 컨테이너에 대해서는 다른 포스팅에서 다루겠습니다.

 

[WEB CS] JSP 처리 과정(= WAS를 통한 웹 페이지 출력 과정)

안녕하세요. 이 포스팅을 보기 전에 웹 서버 및 WAS에 대한 포스팅을 보고 오시는 것도 추천드립니다!! [WEB CS] 웹 서버와 WAS(Web Application Server) 의 의미, 차이점, 웹 동작 원리를 알아보자! 안녕하세

maivve.tistory.com

 

 

 

 

궁금하거나 수정할 내용 있으면 댓글 부탁드립니다!

 

감사합니다.

 

Comments