WAS (Web Application Server)

부스트코스 공부 기록 : https://www.edwith.org/boostcourse-web/lecture/16666/

WAS는 일종의 미들웨어이다. 미들웨어는 브라우저와 DBMS 사이에서 동작한다. 예)톰캣

미들웨어가 생긴 배경

DBMS는 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어이다.(MySQL 등) 초기에는 클라이언트에서 바로 접근하였다. 클라이언트의 비즈니스 로직이 많아지면서 클라이언트 관리 비용이 많아지고 보안이 약해졌다. 클라이언트와 DBMS사이에 서버를 두면서 이러한 문제를 해결하였다. 로직이 변경되면, 클라이언트를 다시 배포하지 않고, 미들웨어만 변경하게 되었다.

동작

  1. 클라이언트가 미들웨어에 요청한다.
  2. 미들웨어는 데이터 관련한 요청을 DBMS에 다시 요청하고, 그외 로직을 수행하여 클라이언트에 전달한다.
  3. 클라이언트에서 렌더링한다.

WAS 기능

  1. 프로그램 실행 환경 제공
  2. 데이터베이스 접속 기능 제공
  3. 여러개의 트랜잭션 관리 (* 트랜잭션 : 논리적인 작업 단위)
  4. 비즈니스 로직을 수행

웹서버와 WAS

WAS가 웹서버의 역할을 수행할 수 있지만, 대규모 서비스에서는 서비스를 무중단으로 운영하기 위해서 WAS 웹서버 뒤에 WAS를 놓는 형태가 많다.(장애극복기능)
WAS의 구조가 더 복잡하고, 프로그램이 오작동하여 WAS가 문제가 생길 수 있다. WAS가 재시작 하는 동안에 웹서버가 해당 WAS를 이용하지 못하게 하여 무중단으로 서비스를 운영할 수 있다.


Written by@[owlssi]
프론트 공부 중입니다.

GitHub