본문 바로가기

Web

[Web] WAS (1) - 미들웨어와 WAS

1. DBMS와 클라이언트

가장 초기에는, 클라이언트가 데이터를 조작하기 위해 직접 DBMS에 접근해 데이터를 조작하는 로직을 작성해야 했다.

하지만, 클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리로 인해 비용이 많이 발생하는 문제가 생겼다.

따라서, 미들웨어라는 것이 등장했다.

 

2. 미들웨어

미들웨어는 클라이언트와 DBMS 사이에 존재하는 서버로서, 비즈니스 로직을 담당하는 곳이라고 생각하면 된다.

즉, 미들웨어가 DBMS를 사용하는 비즈니스 로직을 담당하게 된 것이다.

 

이로써, 클라이언트는 입력, 출력만을 담당하게 되었다.

즉, 클라이언트는 사용자부터 입력을 받아 미들웨어에게 요청하고, 화면에 해당 결과만을 보여주면 되는 것이다.

 

=> 프로그램의 로직이 변경되더라도 미들웨어의 코드만 변경하면 된다는 장점 등장.

 

3. 웹서버

프로그램의 정적인 결과를 웹 브라우저에게 전송하는 역할을 담당한다.

 

4. WAS

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

프로그램의 동적인 결과를 웹 브라우저에게 전송하는 역할을 담당한다.

 

[기능 3가지]

1. 프로그램 실행 환경 제공, 데이터베이스 접속 기능 제공

2. 여러 개의 트랜잭션을 관리한다

3. 비즈니스 로직을 수행한다

 

5. 웹 서버 vs WAS

  • WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있습니다.
  • 현재는 WAS가 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없습니다.
  • 규모가 커질수록 웹 서버와 WAS를 분리합니다.

[웹 서버가 WAS 앞 단에 있으면 좋은 이유]

  • 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 웹서버와 WAS를 대체로 분리합니다.
    • 장애 극복 : 개발자가 만든 프로그램이 WAS에서 동작하게 되는데, 이때 장애가 발생할 수 있다. 그런 경우 WAS를 종료 후 재시작 해야 하는 상황이 발생한다. 이때, 앞 단의 웹 서버에서 해당 WAS로 연결하지 못하도록 설정하고 WAS를 재시작한다면, 사용자는 WAS가 문제가 발생했는지 모르고 사용할 수 있다. 이는 대용량 웹 어플리케이션에서는 무중단으로 운영하기 위해 상당히 중요한 기능이다. 따라서, 웹 서버가 WAS 앞 단에 있는 구조로 서버를 설계하게 된다.

'Web' 카테고리의 다른 글

[Web] WAS (2) - Web Server와 WAS(Web Application Server)  (0) 2022.09.25