[부스트코스 웹프로그래밍] 7. WAS

WAS : Web Application Server



Server: 서비스를 제공
Client : 서비스를 요청하여 결과를 보여주는 것

ex)웹서버 - 웹클라이언트

DBMS(Database Management System)
: 다수의 사용자들이 db내의 데이터를 접근할 수 있도록 해주는 sw
최초의 구현 - Oracle 이후, MySQL MariaDB 등..
데이터 관리가 매우 쉬워졌다

클라이언트 -> DBMS의 직접 접근
= 클라이언트 프로그램의 크기가 너무 커지고 변경사항이 있을 때마다 클라이언트 관리에 많은 비용이 드는 문제가 발생

MiddleWare 등장
: 클라이언트와 dbms 사이에 또 다른 서버를 두는 방식
클라이언트 -> 미들웨어에 요청만 보냄
미들웨어가 대부분의 로직을 수행
데이터 조작은 dbms에 요청,
클라이언트는 복잡한 로직이 없어지고 결과의 출력만 하면 되기 때문에 그 크기가 매우 작아지게 된다.
프로그램 로직이 변경된다고 해도 중앙의 비들웨어만 변경하면 되는 장점을 가짐



WAS
: 최초 웹 브라우저는 정적인 형태만 출력하였으나 웹이 발전하며 웹에서 데이터를 입력하고 조회하는 등 동적인 기능이 필요하게 되었다. 
CGI : 웹서버에서 프로그래밍 기능이 들어가는 방식
단순 프로그래밍에서는 문제가 없었으나 웹은 계속적으로 복잡해져
DBMS와 연관된 경우가 굉장히 많아지게 되었는데
브라우저(client) 와 dbms 사이에서 동작하는 미들에어가 필요 => WAS



WAS의 기본기능
1. 프로그램 실행 환경과 DB 접속 기능의 제공
2. 여러개의 트랜잭션 관리 - 일련의 작업 과정
3. 업무 처리 비즈니스 로직을 처리
+ 웹서버의 기능도 기본적으로 제공하게된다
EX) TomCat

웹서버는 없어도 되는가?
- 웹서버 없이 WAS만 가지고도 동적/ 정적 콘텐츠 제공이 가능하다 .
WAS 등장 초창기에는 Apache+TomCat 모두가 필요했지만
WAS가 발전함에 따라 WAS만 가지고도 충분히 동작하는 경우가 많아졌다.

BUT
웹서버가 있으면 좋은점
: 장애 극복 기능(failover)
- 웹서버는 WAS보다 구조가 간단하게 구성되어있다.
사용자가 굉장히 많은 경우 많은 서버가 동작할 때 ?
WAS로 구현했을 경우 WAS에 문제가 생겼을 때 WAS 자체를 재시작해야 하는 경우가 있는데 웹서버가 WAS 앞단에 있는 경우 사용자가 WAS를 사용하지 못하게 한 후 뒤에서 재시작 하면 무중단으로 서버를 운영할 수 있다. (사용자는 WAS에 문제가 생겼는지 인지하지 못한다.) - 대용량 웹 어플리케이션에서 자주 사용되는 방식

따라서 apache(웹서버)를 따로 설치않아도 구현할 수 있는 것

웹서버 - 정적인 콘텐츠 -전송 -> 웹브라우저
WAS - 동적인 콘텐즈 -전송-> 웹브라우저(프로그램이 동작해서 얻어진 결과도 일컫음)


No comments:

Powered by Blogger.