Web 과 Was 란?

김zunyange·2024년 2월 21일
0

우리가 보는 웹 페이지라 하면, 웹 서버는 주소(url) 를 가지고 통신 규칙(http)에 맞게 요청하면, 알맞은 내용(html)을 응답 받는다. 즉, 웹 서버란 클라이언트가 웹 브라우저에서 어떠한 페이지 요청을 하면 웹 서버에서 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. *정적 컨텐츠 : HTML, CSS, 이미지 등

하지만 단순한 클라이언트(웹 브라우저)와 웹 서버로는 정적인 페이지밖에 처리하지 못하는 한계가 있다. 이러한 정적인 html 의 한계를 극복하고, 동적인 페이지를 제공하고자 하는 목적, 더 나아가 보안 강화와 장애 극복을 가능하게 한 것이 WAS (Web Application Server) 이다. WEB은 웹 서버가 동적 컨텐츠를 요청 받으면 WAS 에게 해당 요청을 넘겨주고, WAS 에서 처리한 결과를 클라이언트에게 전달해주는 역할도 한다.

WAS, Web Application Server

WAS, Web Application Server

위의 사진과 같이 WAS 는 Web Server와 Web Container 로 이루어져 있다. Web Server 는 Container 를 가지지 않는 차이점이 있고, (웹 컨테이너 추가 설명할 것.) WAS는 html 과 같은 정적인 페이지에서 처리할 수 없는 비즈니스 로직 처리나 DB 조회 같은 동적인 콘텐츠를 제공한다. 또한, 웹 어플리케이션의 실행 환경을 제공하며, 다른 서버와의 통신을 통해 필요한 데이터를 가져와 동적인 응답을 생성한다.

WAS 의 주요 기능

  • 프로그램 실행 환경 및 DB 접속 기능 제공
  • 여러 트랙잭션 관리 기능
  • 업무 처리하는 비즈니르 로직 수행
  • 보안, 스레드 처리, 분산 트랙잭션 등 분산 환경에서 사용됨 (주로 DB서버와 함께 사용)

이처럼, WEB 서버와 WAS 서버는 각각 다른 역할과 기능을 가지고 있다. 웹 서버는 정적인 파일 제공에 특화되어 있고, WAS 서버는 동적인 콘텐츠 생성과 데이터 처리에 특화되어 있다. 때문에, 웹 애플리케이션을 구성할 때는 웹 서버와 WAS 서버를 함께 사용하여 역할을 분담하고 최적의 성능을 내도록 하는 것이 일반적이다.


둘을 구분하는 이유

(1) Web Server가 필요한 이유

웹 서버에서는 정적 컨텐츠만 처리하도록 기능 분배를 해서 서버 부담을 줄인다.

html 문서 같은 웹 문서가 클라이언트로 보내질 때, 정적 파일은 함께 보내지지 않는다. 먼저 html 문서를 받고, 이에 필요한 이미지 파일들을 다시 서버로 요청해서 받아오는 것이다. 따라서, 웹 서버를 통해서 정적인 파일을 애플리케이션 서버까지 가지 않고 앞단에 빠르게 보낼 수 있다.

(2) WAS 가 필요한 이유

WAS를 통해 요청에 맞는 데이터를 DB에서 가져와 비즈니스 로직에 맞게 그때마다 결과를 만들고 제공하면서 자원을 효율적으로 사용할 수 있다.

웹 서버만으로는 사용자가 원하는 요청에 대한 결과값을 모두 미리 만들어놓고 서비스하기에는 자원이 절대적으로 부족하다. 따라서 WAS 를 통해 요청이 들어올 때마다 DB 와 비즈니스 로직을 통해 결과물을 만들어 제공한다.

🤔 그렇다면, WAS 로 웹 서버 역할까지 다 처리할 수 있는 것 같지만 ?

WAS 는 DB 조회 및 다양한 로직을 처리하는 데에 집중을 해야한다. 따라서 단순한 정적 컨텐츠는 웹 서버에게 맡기며 기능을 분리시켜 서버 부하를 방지하는 것이다. 만약 WAS 가 정적 컨텐츠 요청까지 처리하게 되면, 부하가 커지고 동적 컨텐츠 처리가 지연되면서 수행 속도가 느려진다. 즉, 페이지 노출 시간이 늘어나는 문제가 발생하여 효율성이 크게 떨어진다. 다시 말하자면, 가장 효율적인 방법은 웹 서버를 WAS 앞에 두고, 필요한 WAS 들을 웹 서버에 플러그인 형태로 설정하면 효율적인 분산 처리가 가능하다.


그 외, WEB과 WAS의 차이점

  • 언어와 환경 : 웹 서버는 다양한 언어와 환경에서 실행될 수 있다.WAS는 대부분 자바(Java) 기반으로 작성되며, 자바 EE(Java Enterprise Edition) 플랫폼의 스펙을 준수한다.

  • 성능 : 웹 서버는 정적인 콘텐츠를 처리하기 때문에 빠른 속도와 낮은 리소스 사용량을 가진다.WAS는 동적인 콘텐츠를 처리하므로 웹 서버보다 느릴 수 있지만 WAS는 애플리케이션에 맞는 스레드 풀, 데이터베이스 커넥션 풀링 등을 사용하여 성능을 최적화할 수 있다.

  • 배포 방식 : 웹 서버는 파일 기반으로 배포된다. WAS는 자바 웹 애플리케이션 (.war) 형식으로 배포된다.

profile
배움은 즐거워 ~(*ૂ❛ᴗ❛*ૂ)

0개의 댓글