Web Application Server란 무엇인가

구기성·2024년 4월 17일
0

서버

목록 보기
2/5
post-thumbnail
post-custom-banner

개념

Web Application Server(WAS)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다. 간단하게 이야기 하자면 Web Client(웹 브라우저)로부터 Web Server가 요청을 받으면 애플리케이션에 대한 로직을 실행하여 Web Server로 다시 반환해주는 소프트웨어이다. Web Server와 Database 사이에서 동작하는 미들웨어이다.

Web Server와 Web Application Server의 차이

  • Web Server는 간단한 요청에 대한 응답을 주지만, Web Application Server는 애플리케이션에 대한 서비스 및 Database에 연결해서 동적인 컨텐츠를 만드는 비지니스 로직 처리할 수 있다.
  • Web Server는 정적인 콘텐츠인 HTML, 이미지, 파일과 같은 데이터를 주지만, Web Application Server는 애플리케이션의 서비스에 특화된 동적 데이터를 준다.

작동원리

Web Application Server는 아래와 같은 작동 원리를 갖는다.
1. Web Server는 Web Client(웹 브라우저)로부터 받은 request를 Web Application Server에 전달한다.
2. request를 전달받은 Web Application Server는 비지니스 로직을 처리를 하고, 필요하다면 Database에서 데이터를 가져온다.
3. Web Application Server에서 비지니스 로직을 모두 수행한다면, Web Server에게 response를 전달한다.
4. response를 전달받은 Web Server는 Web Client(웹 브라우저)에게 전달한다.


위 사진을 보면서 작동 원리에 대해서 설명을 하겠다.

  • [작동원리1] Web Server는 정적인 데이터에 대해서 처리가 가능하므로 동적인 데이터 요청을 받은 경우 request를 Web Application Server에 전달한다.
  • [작동원리2] Web Application Server는 전달받은 request를 토대로 비지니스 로직을 처리한다. Database의 데이터를 가져오거나 변경하는 경우 Database를 사용한다.
  • [작동원리3] Web Application Server에서 비지니스 로직을 모두 완료한다면, response를 만들어서 Web Server에 전달한다.
  • [작동원리4] Web Server에서 response를 전달을 받아서 그대로 Web Client(웹 브라우저)에 전달한다.

Web Server와 Web Application Server를 같이 사용하면 좋은 이유

사실 Web Application Server만 사용해서 Web Server의 역할을 동시에 수행할 수 있다. 그러나 통상적으로 Web Server와 Web Application Server를 따로 구성해서 Server를 셋팅하는 것이 좋다.

간단한 이유는 Web Server와 Web Application Server의 차이인 정적 컨텐츠를 다루는지, 동적 컨텐츠를 다루는지다. 부하가 많은 서비스인데 정적 컨텐츠를 Web Application Server에서 다루게 된다면 불필요하기 때문에, 정적인 컨텐츠는 Web Server에 위임을 한다.

Web Application Server는 Database와 연결이 되어있고, ssl 보안 적용이 어렵다. Web Server의 대표적인 nginx의 설정파일에서 ssl 보안을 적용할 수 있다. 그래서 보안적으로 더 안전하다.

Web Server에 여러대의 Web Application Server를 연결해서 사용할 수 있다. 실제 nginx server 블록에서 여러 대의 Web Application Server를 연결할 수 있다. 그래서 로드 밸런싱 역할을 수행할 수 있다.

종류

Web Application Server는 다양한 종류들이 있다.

  • apache tomcat
  • Jetty
  • Jeus

Spring boot

Spring boot는 대표적인 서버 프레임워크이다. Spring boot는 Web Application Server를 따로 설정하지 않아도 된다. 그 이유는 tomcat 서버가 내장되어 있다. 그래서 Web Application Server에 대해서 전혀 신경을 쓰지 않아도 된다. Spring boot 산출물은 jar 파일인데, 이 안에 tomcat 서버가 내장되어 있다.

마무리

Web Application Server에 대해서 연구를 해보았다. 다음에는 DBMS에 대해서 포스팅을 할 예정이다.

참고자료

post-custom-banner

0개의 댓글