WAS란

Minkyeong Kim·2021년 10월 14일
0

[boostcourse] Web-Backend

목록 보기
5/55

WAS

  • Web Application Server
  • 데이터 입력/조회 등의 동적 컨텐츠 전달하기 위해서는 프로그래밍 필요
  • 브라우저와 DBMS사이에서 동작하는 미들웨어
  • 기능
    • 프로그램 실행 환경, 데이터베이스 접속 기능 제공
    • 여러 개의 트랜잭션 관리
    • 업무를 처리하는 비즈니스 로직 수행
    • 웹 서버의 역할도 함
    • 프로그램의 동적인 결과를 웹브라우저에 전송
  • 톰캣이 이 WAS에 해당됨

미들웨어

  • dbms에 접속해 동작하는 클라이언트 프로그램의 단점을 극복하기 위해 등장
    • 단점
      📉 클라이언트의 로직 증가, 프로그램 크기 증가
      📉 프로그램 로직 변경 시 클라이언트가 매번 배포되어야 함, 대부분의 로직이 클라이언트에 포함되어 보안 문제 발생
  • 비즈니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록 함
  • 프로그램 로직이 변경되어도 미들웨어만 변경하면 됨

Web Server vs WAS

  • 웹서버: 정적인 콘텐츠를 웹 브라우저에 전송, WAS에 비해 로직이 간단
  • WAS: 동적인 콘텐츠를 웹 브라우저에 전송
  • WAS에서 보통 자체적으로 웹 서버 기능을 내장
  • 현재 WAS가 가지고 있는 웹 서버는 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다
  • 규모가 커질수록 웹 서버와 WAS 분리 -> 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성이 목적
  • 웹서버가 WAS 앞단에 존재하면 장애 극복 기능의 역할을 할 수 있음
    • 여러 대의 서버에서 동작하는 WAS 중 일부가 장애가 발생해 재시작해야 할 때, 웹서버에서 미리 해당 WAS를 이용하지 못하게 한 후 WAS를 재시작함

0개의 댓글