[64일차] WAS란?

저요·2022년 11월 25일

2022 100th day challenge

목록 보기
64/97

서론

WAS를 듣자마자 바로 무엇인지 떠올릴 수 있는가? 난 WAS라고 하면 미들웨어이고 Web Application Server라는 대략적인 정의정도를 떠올릴 수 있다. 하지만, 이 정도로는 어떤 것인지 바로 이해하기는 힘들다. 오늘은 그 개념을 더 쉽게 이해할 수 있도록 더 자세하게, 쉽게 설명하기 위해 글을 쓰게 되었다.

본론

WAS란?

WAS란 Web Application Server의 약자로, 웹 어플리케이션과 서버 환경을 만들어 동작시키는 소프트웨어 프레임워크이다. 동적 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구분된다. 대부분이 Java기반으로 자바 EE 표준을 수용하고 있으나, 자바 기반이지만 자바 EE 표준을 따르지 않는 제품이나 .NEt, Citrix 기반인 비 자바 계열도 존재한다.
(출처 : https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98_%EC%84%9C%EB%B2%84)

WAS라는 단어는 세 가지 단어로 구성되어 있다. Web, Application, Server이렇게 세 가지 말이다. 그렇다면 이 세 가지 Web, Application, Server란 무엇인가? 이 단어들을 세세하게 하나하나 뜯어보면, WAS에 대해 이해하기 쉬울 것이다.

Web, Server, Application

  • Web
    인터넷을 기반으로 한 서비스 중 하나이다. 정보 공유, 검색이 가능하다. url, http, html로 구성되어있다.
  • server
    클라이언트에게 웹 서비스를 제공하는 컴퓨터 시스템이다.
  • Web Server
    인터넷을 기반으로 클라이언트에게 서비스를 컴퓨터.

(이미지 출처 : https://en.wikipedia.org/wiki/Web_server)

위의 그림은 정적인 콘텐츠만을 제공하는 웹 서버의 동작을 다이어그램으로 표시한 것이다. 클라이언트와 웹 서버는 그림과 같이 네트워크를 통해 통신한다. 먼저 클라이언트가 Http에 맞게 서비스를 서버에 요청한다. 그럼 웹 서버에서는 파일 시스템에서 그에 맞는 html을 제공하는 형식으로 우리는 웹 서비스를 이용할 수 있다. 하지만, 이 때 사용할 수 있는건 웹이 처리할 수 있는 html, css, image 정도 뿐이다. html은 프로그래밍 언어가 아니다. DB에 저장된 데이터를 사용자에 맞춰 가공된 데이터를 보여주는건 불가능하다.

이러한 점을 극복하기 위해 Web Server에 Application기능을 더한것이 Web Application Server인 WAS이다.

  • Web Application
    html의 한계를 극복한, Web에서 실행되는 응용 프로그램을 말한다.
  • Web Application Server
    Web Application과 Server환경을 만들어서 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다.

WAS에는 웹 서버와 웹 컨테이너 이렇게 두 가지가 합쳐진 것이다. Server와의 가장 큰 차이점으로는 jsp나 servelet을 실행시킬 수 있는 소프트웨어인 웹 컨테이너가 그냥 Web Server에는 존재하지 않고, WAS에는 존재한다는 것이다. 따라서 Web Server에서는 정적인 페이지만 만들 수 있고, WAS에서는 동적인 페이지까지 생성이 가능하다. Web Application Server가 작동하는 방식은 다음과 같다. 클라이언트가 WAS에 요청을하고 이 요청이 정적인 페이지를 요청하는 것인지, 동적인 페이지를 요청하는 것인지 확인한다. 그 이후 동적인 페이지를 요청하는 것이라면 WAS안에서의 웹 컨테이너로 전송되어 필요한 기능을 실행 한 뒤에 그 결과를 다시 웹 서버로 보내준다. 이런 식으로 중간에서 페이지를 작업하고 다시 돌려주는 역할을 하기 때문에 미들웨어라고 할 수 있다.

Web Server와 WAS의 사용 프로그램

마지막으로 이 두 시스템에서 사용하는 프로그램에 대해 간단하게 소개하고 마무리 지으려고 한다.

Web Server

  • apache, iis, engineX

WAS

  • tomcat, jeus, ibm, webSphere

참고

https://youtu.be/NyhbNtOq0Bc

profile
웹개발

0개의 댓글