※ 네이버 부스트코스 웹 프로그래밍(풀스택) > 7) WAS를 공부하며 정리한 내용입니다.
DBMS
- 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어
- ORACLE, MySQL, MariaDB 등이 있음.
- 보통 서버 형태로 서비스를 제공하기에 클라이언트 로직이 많아지고, 클라이언트 프로그램 크기가 커지는 문제가 발생함.
- 이는 프로그램 로직이 변경되면 클라이언트가 매번 배포되어야 하고, 대부분의 로직이 클라이언트에 포함되어 배포되기 때문에 보안이 나쁘다는 단점이 존재함.
미들웨어(MiddleWare)

- DBMS의 문제점을 해결하기 위해 등장
- 클라이언트와 DBMS 사이에 또다른 서버를 두는 방식
- 클라이언트는 서버에 요청만 보내고, 미들웨어에서 대부분의 로직 수행.
- 클라이언트는 복잡한 로직이 사라지고, 화면에 결과만 보여주면 되기에 사용자에게 입력만 받으면 됨 => 크기가 매우 작아짐.
WAS(Web Application Server)
- WAS는 일종의 미들웨어로 웹 클라이언트 요청 중 웹 애플리케이션이 동작하도록 지원
- 웹서버의 기능도 기본적으로 제공함.
기본 기능
- 프로그램 실행 환경과 데이터베이스 접속 기능 제공
- 여러 개의 트랜잭션 관리
- 업무를 처리하는 비즈니스 로직 수행
웹 서버 vs WAS
- 웹서버는 보통 정적인 콘텐츠를 웹 브라우저에게 전송하는 역할. 상대적으로 간단한 구조로 이루어져 있음.
- WAS는 프로그램의 동적인 결과를 웹 브라우저에게 전송하는 역할
- WAS는 보통 자체적으로 웹 서버 기능을 내장하고 있지만, 어플리케이션 규모가 커질수록 웹서버와 WAS를 분리한다.(장애 극복 기능 목적 - 대용량 웹 애플리케이션의 무중단 배포를 위해 웹 서버가 WAS 앞단에서 동작하도록 함.)