[Spring] WAS란 무엇일까?

1 분 소요

이 게시물은 유튜브에 있는 “10분 테코톡 희봉의 웹서버 vs WAS”가 설명을 아주 잘해놔서 해당 영상을 보고 정리하였습니다.

10분 테코톡 = 희봉의 웹서버 vs WAS

공부를 하다보니 WAS라는 개념이 나오는데, 이 개념이 모호하였다. 찾아보니 유튜브에 아주 잘 정리해놓은 영상이 있어 이를 간단하게 블로그에 정리해 보기로 했다.

먼저 Web과 Serverd의 정확한 개념부터 정리해보자.

Web

  • 인터넷을 기반으로 한, 정보를 공유, 검색할 수 있게 하는 서비스
  • URL(주소), HTTP(통신 규칙), HTML(내용)의 세가지 요소로 이루어져 있다.

Server

  • 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템

WebServer

  • 인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터

클라이언트가 웹서버에게 주소(URL)을 가지고 통신규칙(http)에 맞게 요청하면, 알맞은 내용(html)을 응답받을 수 있다.

그렇게 하면 서버는 클라이언트의 요청을 기다리고, 웹 요청(http)에 대한 데이터를 만들어서 응답해주는데, 이때 데이터는 웹에서 처리할 수 있는 html, css, 이미지 등 정적인 데이터로 한정된다.

태초에 Web이 생겼을때는 이러한 문제 때문에, 만약 우리가 어떤 정보를 web에 올리고 싶다면 일일히 모든 정보를 작성해주어 올려야 했다. 만약 구구단을 web에 올리고싶다면 for문을 사용해서 연산을 통해 출력하는것이 아니라, 일일히 모든 단수를 적어서 올려주어야 했던것이다. 그래서 이러한 정적인 데이터만을 취급하는 webServer의 문제점을 해결하기 위해 나온 것이 바로 WAS (Web Application Server)이다.

WAS

WAS는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크로, 웹 애플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹서버에게 전달함으로써, 원래는 정적인 데이터만을 취급 가능했던 웹서버가 이제는 어플리케이션을 통해 연산한 데이터를 받아 웹서버에 표시하게 됨으로써 동적인 데이터를 사용할 수 있게 된 서버를 말한다.

따라서 WAS는 php, jsp, asp와 같은 언어를 사용해서 동적인 페이지를 생성할 수 있으며, 프로그램 실행 환경과 데이터베이스 접속기능을 제공하고, 이를통해서 비즈니스 로직을 수행 가능하다.

Was는 WebServer와 WebContainer로 구성되는데, 여기서 WebContainer는 jsp나 seevlet과 같은 것들을 실행 시킬 수 있는 소프트웨어로, 웹애플리케이션이 배포되는 공간을 말한다.

따라서 클라이언트에서 Was로 요청을 보내면, 먼저 WebServer에서 이 요청이 정적요청인지, 동적 요청인지를 판별한다. 만약 동적 페이지를 요청한다면, 이 요청을 WebContainer에게 전송해 WebContainer가 이를 받아 동적 컨텐츠를 생성한다. 그렇게 받은 동적 컨텐츠를 Client로 전송하는 방식으로 Was가 동작한다.

따라서 상황에 따라 변하는 정보를 제공할 수 있다면 WAS, 그게 아니라면 WebServer라고 생각하면 간단하게 이 둘을 구분할 수 있다.

카테고리:

업데이트:

댓글남기기