웹 서버와 WAS 의 차이

    먼저 웹서버에 대해 알아보자

     

    웹 서버란 크게 두 가지 측면으로 요약할 수 있다.

    첫 번째는 소프트웨어 측면, 두 번째는 하드웨어 측면이다.


     

    - 소프트웨어 측면 : 대표적인 예로 nginx, apache가 있다. 이 소프트웨어들을 호스팅하고 있는 서버(컴퓨터)에서 웹페이지의 컴포넌트 파일들에 어떻게 접근하는지를 관리한다.

     

    - 하드웨어 측면 : nginx나 apache와 같은 소프트웨어가 실제도 동작하고 웹페이지의 데이터를 실제로 저장하는 서버를 의미한다, 웹 서버는 인터넷에 연결되어 IP 주소로 식별되고, 이 주소를 통해 클라이언트와 연결된다.


    웹서버? 

    HTTP와 같은 프로토콜을 통해 넘어온 클라이언트의 요청에 HTML과 같은(정적 컨텐츠) 웹 페이지를 응답하는 소프트웨어이다.

    **대표적인 웹 서버 : Apache

    *정작 컨텐츠란?

    단순 HTML문서, css, javascript, 이미지, 파일 등 즉시 응답 가능한 컨텐츠이다.

     

    그러면 웹서버는 정적 컨텐츠만 제공하는 건가?? 라고 생각할 수 있다.

    하지만 꼭 그런것은 아니다.❌

    웹 서버가 동적 컨텐츠를 요청 받으면 was에게 해당 요청을 넘겨주고, was에서 처리한 결과를 클라이언트(사용자)에게 전달해주는 역할도 한다.

     

     

    그렇담,, was는 무엇일까?


    WAS란?

    사전적으로 명시되어 있기로는 

    "인터넷 상에서 HTTP 프로토콜을 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, 주로 동적 컨텐츠를 수행하는 것으로 웹서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행"

    이라고 적혀 있다.

     

    **대표적인 WAS 종류  :  Tomcat

     

    WAS웹 서버웹 컨테이너가 합쳐진 형태로, 웹 서버 단독으로는 처리할 수 없는! 데이터 베이스의 조회나 다양한 로직 처리가 필요한 동적 컨텐츠를 제공한다.

    덕분에 사용자의 다양한 요구에 맞춰 웹서비스를 제공할 수 있다. WAS는 JSP, Servlet 구동환경을 제공해주기 때문에 웹 컨테이너 혹은 서블릿 컨테이너라고도 불린다. 

    이렇게 보면 정적/ 동적 컨텐츠를 수행하는 것 말고는 비슷비슷 하다..

     

    그럼 웹 서버버 말고 was만 사용해도 되는거 아니야? 라고 생각할 것이다. 

     

    하지만! 그것은 틀렸다. ( 왜? ?? ?)❌

     

    WAS는 DB조회 및 다양한 로직을 처리하는데 집중해야한다. 따라서 단순한 정적 컨텐츠는 웹 서버에게 맡기고 기능을 분리시켜 서벌 부하를 방지해야한다.

     

    만약 WAS가 정적 컨텐츠 요청까지 처리하면, 부하가 커지고 동적 컨텐츠 처리가 지연되면서 수행 속도가 느려지고 이로 인해 페이지 노출 시간이 늘어나는 문제가 발생하여 효율성이 크게 떨어진다.


    예를 들어 대학교에 들어가서 실시간 챗팅앱을 만들어 보아요~~~해서 했는데

    디자인 부터 막혀서
    "교수님 HTML, css 어떻게 해요? 색상 어떻게 줘요? " 이런걸 교수님한테 물어보면 ?

     

    아주 ㅎㅎ 이런건 왜 나한테 물어보냐고 그러시겠죠? 

     

    아주 아주 사소한 작업을 교수님한테 여쭈고 있으니 도와주시지 않으시죠 알아서 하라고

    하지만 대상을 바꾸면 어떻게 될까요?

     

    같이 공부한테 친구에게 물어보면?

    아주 친절하게 알려주고 내가 물어본 요청에 대한 응답이 확실하게 넘어오죠 이것과 마찬가지라고 생각하면 좋을거 같습니다. 


     

     

    💡 그럼 왜 일단 Tomcat이 아니라 Apache Tomcat이지????

     궁금해 졌다.. 

    위에서 언급한 대로 정적 컨텐츠를 처리하는 웹 서버에는 Apache, 동적 컨텐르를 처리하는 Was 서버는 Tomcat을 많이 사용한다고 했는데 Tomcat은 Apache Tomcat이라는 이름으로 많이 사용되고 또 우리가 많이 사용하고 있다.

     

    너무 혼란스러웠다.. 난 뭘 쓰는거지 ㅋㅋㅋ 그래서 알아봤더니!!!

     

    2008년에 릴리즈 된 Tomcat 5.5 버전부터는 정적 컨텐츠를 처리하는 기능이 추가 되었는데, 이 기능이 순수 Apache를 하용한것에 비해 성능적 차이가 전혀 없으며 Tomcat이 Apache의 기능을 포함하고 있어서 Apache Tomcat이라고 부르는 것이였다..

     

    많은 사람들이 궁금해 하지 않는이상 모를거 같아 ㅎ 올려본다! 

     

    역시 개발자는 ?(물음표)를 달고 살아야해 ^^ 

     

     

    참고 자료 

     : https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

     :  http://wiki.hash.kr/index.php/%ED%86%B0%EC%BA%A3

    728x90
    반응형

    댓글