was란?

김형민·2021년 7월 8일
0
post-custom-banner

WEB vs WAS

WEB

  • 인터넷을 기반으로 한 서비스, 정보공유 검색 등이 가능
  • URL(주소), HTTP(통신규칙), HTML(내용)

SERVER

  • 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터

Web Sever

  • 인터넷을 기반으로 클라리언트에게 웹 서비스를 제공하는 컴퓨터라고 할 수 있다.

웹서버에게 주소(url)을 가지고 통신규칙(http)에 맞게 요청하면
알맞은 내용(html)을 응답 받음

클라이언트의 요청을 기다리고 웹 요청(http)에 대한 데이터를 만들어서 응답
이때 데이터는 웹에서 처리할 수 있는 html, css 이미지 등 정적인 데이터로 한정

html은 프로그래밍 언어가 아니다..!
하지만 JAVA는 프로그래밍 언어이다

WAS(Web Applicatoin Server)

  • 웹 어플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크
  • 웹 어플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달

php, jsp, asp와 같은 언어들을 사용해 동적인 페이지를 생성할 수 있는 서버
프로그램 실행 환경과 데이터베이스 접속 기능 제공
비즈니스 로직 수행가능
웹 서버 + 웹 컨테이너(컨테이너란? jsp, servlet을 실행 시킬 수 있는 소프트웨어)

java 계열에선 웹 어플리케이션 컨테이너라고 부르기도 함

  • 웹 어플리케이션 컨테이너 : 웹 어플리케이션이 배포되는 공간

WebServer와 Was의 차이는?

상황에 따라 변하는 정보를 제공할 수 있는가 라고도 할 수 있다.

web서버는 정적인 컨텐츠를 처리 was는 동적인 컨텐츠를 처리

WebSever와 WAS를 같이 사용하는 이유는?

WAS는 Web server + web container로 구성되어 있다. WAS 자체 Web server로 충분하지만 대용량 트래픽을 처리하는 경우 아래 그림과 같이 여러대의 WAS 앞단에 여러 대의 웹 서버를 두어서 하나의 WAS가 중단되어도 앞단의 웹 서버에서 해당 WAS를 사용하지 않고 다른 WAS를 사용하며, 중단된 WAS가 복구되기를 기다리면 되기에 많이 사용한다. 이러한 기능을 장애 극복(failover)라고 함

WAS가 WebServer를 가지고 있지만 따로 분리해서 사용하는 이유는?

쉽게말하자면 서로가 제일 잘하는 것을 한다고 생각할 수 있다.

정적인 파일들을 처리하는 과정은 굳이 WAS가 할 필요가 없다
Application Server까지 올 필요없이 앞단에서 처리 해줄 수 있다.

정리하자면

  1. 기능을 분리하여 서버의 부하방지 (제공속도 Web Server > WAS)
    WAS는 DB조회 등 페이지를 만들기 위한 다양한 로직을 처리하느라 바쁘다. 단순한 정적 콘텐츠를 WAS에서 제공한다면 다른 작업에 사용하는 리소스들로 인해 지연이 생겨날 수 있다. 그러므로 정적 콘텐츠는 Web Server선에서 빠르게 처리하는게 좋다.

  2. 보안강화

  • SSL에 대한 암복호화 처리에 Web Server를 사용한다
  • 공격에 대해 Web Server를 앞단에 두어 중요한 정보가 담긴 DB나 로직까지(WAS) 전파되지 못하게 한다

WAS 서버는 asp, php, jsp 등 개발 언어를 읽고 처리하여 동적 컨텐츠, 웹 응용 프로그램 서비스를 처리하는 것이다. 처리하는 기능은 나누어져있지만 요새 WAS 서버에는 WEB서버 기능을 내장하고 있다. 현재는 WAS가 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다. 큰 규모라면 웹 서버와 WAS를 분리합니다. 그 이유는 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해서이다. JSP를 배울 때 대체적으로 Apache와 Tomcat을 사용한다.
Apache는 웹서버를 담당하고
Tomcat은 WAS 다.

profile
항해 중인 개발자
post-custom-banner

0개의 댓글