ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WEB과 WAS
    컴퓨터 기초/네트워크 2020. 10. 22. 12:29

    WEB과 WAS

     

    흔히 우리가 인터넷의 구조에 대해서 배울 때 서버라는 개념을 배웠다.

     

    이때는 유저의 요청에 따라 데이터를 처리하고 보내주는 것을 단순히 서버 또는 웹서버라고 불렀다.

     

    서버에 대해서 아주 간단하게 도식화 하자면 위 그림이 맞다.

     

    실제로 단순히 이미 정형화된 자료만 주고 받는 것은 위와 같이 웹서버 하나로도 가능하다.

     

    하지만 최근에는 사용자의 다양한 동작을 주고 받는 웹 어플리케이션이 많아지면서

     

    서버가 처리해야 할 기능도 늘었다.

     

    그래서 나온 것이 바로 WAS(Web Application Server)다.

    WEB와 WAS의 차이

    위에서 말한대로 WEB과 WAS의 차이는 미리 개발자가 만들어둔 정형화된 페이지를 반환하느냐

     

    고객의 요청에 따라 동적으로 만들어진 페이지를 반환하느냐의 문제다.

     

    조금 더 자세히 살펴보면 다음과 같다.

     

    1. WEB서버 단일 구조

     

     

    위 스크린샷과 같이 과거에 많이 있던 개인 홈페이지는 저런 형태를 가졌다.

     

    일반적으로 사용자가 페이지에 접속해서 링크를 클릭하면 웹서버는 미리 개발자에 의해 만들어진 페이지를 제공하는 형식이다.

     

    DB를 사용하여 사용자 요구에 맞는 복잡한 구성의 페이지를 제공(장바구니 기능, 로그인 기능, 검색 등)하는 것은 힘들었다.

     

    이때 WEB서버가 제공 가능한 페이지는 일반적으로 HTML, CSS, JavaScript로 만들어졌다.

     

    2. WEB - WAS 구조

     

    단일 WEB 서버 구조를 피하기 위해 나온 것이 바로 WEB-WAS 구조다.

     

    WEB 서버만 쓰면 개발자가 미리 만들어진 정보와 페이지만 제공이 가능하다.

     

    하지만 WEB-WAS 구조는 다르다.

     

    사용자가 정보를 요청(request)했을 때 해당 요청이 연산이 필요 없는 정적인 페이지에 관한 것이면 WEB서버는 바로 서버에 저장되있던 정적인 페이지를 사용자에게 전달한다.

     

    반면 사용자의 요청이 동적 페이지에 관련된 것이라면 사용자 요청은 WAS까지 전달된다.

     

    그리고 WAS는 사용자 요청에 맞는 데이터를 가공하여 WEB으로 전달한다.

     

    WEB은 전달받은 데이터를 바탕으로 정적인 페이지를 만들어서 사용자에게 돌려준다.

     

    이러한 과정을 통해 사용자는 본인이 요청한 정보에 맞는 페이지를 받아 볼 수 있다.

     

    WEB 단일 방식에 비해 개발 난이도는 높지만 사용자 만족도가 높고 개발자가 정적인 페이지를 모두 만들 필요가 없기때문에 단순 반복 잡업을 할 필요가 없어진다.

     

    WEB와 WAS는 분리가 가능하기도 하고 한 서버 안에서 기능적으로 나눠서 만들 수도 있다.

     

    그리고 이때는 만들어지는 동적인 페이지는 정적 페이지와 달리 HTML, CSS, 자바스크립트 뿐 아니라 서블릿, jsp 등을 이용해 페이지를 만들게 된다.

     

    3. WEB - WAS - DB 구조

    2단계보다 한 단계 더 나아간 구조다.

     

    WEB - WAS 구조는 DB가 없기때문에 근본적으로 대용량 데이터 처리에 한계가 있다.

     

    이때는 기존 2단계 구조에 DB 즉 데이터 베이스가 달라붙는다.

     

    사용자 요청에 따라 WEB은 정적인 페이지는 본인이 처리하고 처리하지 못하는 데이터는 WAS로 넘긴다.

     

    WAS는 사용자 요청에 따라 데이터가 필요할 경우 DB에서 자료를 가져온다.

     

    이렇게 할 경우 각 단계별로 역할이 나눠져있어 효율적으로 서버 관리가 가능하다.

     

    그리고 현재 우리가 쓰는 어플리케이션이나 홈페이지들은 대부분 이런식으로 구성되있다.

     

    즉 서버가 역할에 맞게 분리되어 관리가 쉽고 편리하고 효율적 이뤄지고 있는 것이다.

     

Designed by Tistory.