웹서버의 동작 및 WAS, Middleware

고라니·2021년 8월 19일
0

boostcourse

목록 보기
3/4

Web Server

웹 서버는 소프트웨어(Software)를 보통 말하지만, 웹 서버 소프트웨어가 동작하는 컴퓨터를 말함.
웹 서버의 가장 중요한 기능은 클라이언트(Client)가 요청하는 HTML 문서나 각종 리소스(Resource)를 전달하는 것이다.
웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적(static)인 데이터이거나 동적인 결과가 될 수 있다.
정적인 데이터란 보통 이미지, HTML 파일, CSS 파일, JavaScript 파일과 같이 컴퓨터에 저장되어 있는 파일들을 의미함.
동적인 결과란 보통 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물을 말한다.

웹 크롤러: 네이버나 구글 같은 검색 사이트에서 다른 웹사이트 정보를 읽어갈 때 사용하는 software를말함

가장 많이 사용하는 웹 서버는 Apache, Nginx, Microsoft IIS

Apache웹 서버는 오픈소스 소프트웨어(Open-source Software)이며, 거의 대부분 운영체제에서 설치 및 사용을 할 수 있다.
Nginx는 차세대 웹서버로 불리며 더 적은 자원으로 더 빠르게 데이터를 서비스하는 것을 목적으로 만들어진 서버이며 Apache웹 서버와 마찬가지로 오픈소스 소프트웨어다.

DBMS (DataBase Management System)

다수의 사용자가 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어

Middleware

클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리(배포 등)로 인해 비용이 많이 발생하는 문제가 있음.
비즈니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록 함.

(+네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해 주는 소프트웨어를 말한다.
3계층 클라이언트/서버 구조에서 미들웨어가 존재한다.
웹 브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에 미들웨어가 존재하게 된다.
출처-위키백과)

출처 : boostcourse

WAS ( Web Application Server)

WAS는 일종의 미들웨어로 웹 클라이언트(보통 웹 브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가진다.

WAS의 역할

  1. 프로그램 실행 환경과 데이터베이스 접속 기능을 제공
  2. 여러 개의 트랜잭션(논리적인 작업단위)을 관리
  3. 업무를 처리하는 비즈니스 로직을 수행
  4. 프로그램의 동적인 결과를 웹 브라우저에게 전달하는 역할

Web Server vs WAS

초기와 달리, 현재는 WAS가 기본적으로 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다.

그러나 대용량 웹 어플리케이션에서는 웹서버를 WAS 앞단에서 동작하도록 설계하는 경우가 많음.

이유, Why?

웹 서버는 상대적으로 WAS보다 간단한 구조로 만들어져 있고, 이에 따라
사람들이 많이 접속하는 대용량 웹 애플리케이션의 경우에는 서버의 수가 여러 대일수 있다.

만약 WAS 자체에 문제가 발생하면, 재시작해야 되는 경우가 있다.
문제가 있는 WAS를 재시작할 때, 앞단의 웹 서버에서 먼저 해당 WAS를 이용하지 못하도록 하고, 재시작을 진행한다면 사용자는 오류가 있다는 사실을 모를 것이다.

이러한 기능을 장애 극복 기능 이라고 하는데,

대용량 웹 애플리케이션에는 무중단으로 운영하기 위해서 상당히 중요하며, 이러한 기능 때문에 보통 웹 서버가 WAS 앞단에서 동작하도록 하는 경우가 많은 것이다.

profile
공부를 열심히 하는 학부생

0개의 댓글