WEB

[WEB]Web Server와 WAS의 차이점?

암낫어로봇 2024. 5. 9. 13:17
반응형

출처: https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

서버 - 클라이언트 구조에서의 서버(Server)?

서버 - 클라이언트 구조에서 서버는 클라이언트가 요청한 웹 페이지를 클라이언트에게 가져다주는 역할을 수행하는 컴퓨터이다. 즉, 이름 그대로 서버(Server)의 역할을 수행하며 수많은 클라이언트(서비스 이용 고객)의 요청을 처리하여 알맞은 데이터를 다시 서빙해준다는 것이다. 이 분류는 컴퓨터를 단순히 역할을 기준으로 해서 크게 나누어 설명한 것이다. 

 

 

Web Server란?

서버 - 클라이언트 구조에서의 서버 컴퓨터가 웹 서비스를 제공할 수 있는 컴퓨터가 될 수 있게 도와주는 소프트웨어이다. 

사용자가 웹 브라우저를 통해 접속하면 만날 수 있는 HTML, CSS, JavaScript로 작성된 정적인 웹 페이지 파일을 서버 컴퓨터의 특정 폴더에 올려놓으면 외부 클라이언트가 해당 폴더의 파일을 열람할 수 있도록 해준다.

대표적인 Web Server에는 Apache와 Nginx가 있다.

 

정적 웹과 동적 웹?

정적인 웹은 회사 소개 페이지처럼 항상 누구에게나 같은 화면이 출력되는 웹 사이트를 말한다. 클라이언트가 누구냐에 따라 별도의 처리를 할 필요 없이 미리 작성되어 있는 웹 사이트 파일을 무작정 제공하기만 하면 되는 것이기 때문에 웹 서버가 빠르게 제공 가능하다.

 

반면에 동적 웹은 클라이언트가 요청한 내용에 대한 별도의 처리를 거친 후에 출력되어야 하는 웹 사이트를 말한다. 즉 요청한 클라이언트가 누구고, 어떤 요청을 했냐에 따라 웹 사이트의 모습이 매번 변경된다. 미리 작성된 파일을 단순 제공하는 단순한 방식과는 다르게 요청을 받은 후에 그에 알맞은 처리 과정이 중요한 아주 복잡한 작업이 필요한 웹 사이트인 것이다. 

 

Web Server는 머리 아픈 작업을 싫어한다. 클라이언트가 보내온 요청 중 머리 아픈 작업, 다시말해 동적인 처리가 필요한 작업을 만나게 된다면 이것은 WAS에게 전달하여 작업을 떠넘긴다. 

 

Web Application Server(WAS)란?

WAS는 Web Server가 전달해 준 동적인 처리가 필요한 웹 페이지들을 데이터베이스와 통신하며 처리한 후에 Web Server에게 전달한다. WAS는 단순히 동적 처리를 수행하는 것뿐만 아니라 직접 완성된 웹 페이지를 클라이언트에게 전달하는 역할도 수행할 수 있으며, 정적인 웹 리소스들을 제공하는 작업 또한 가능하다. 

대표적인 WAS에는 Apache Tomcat, IBM WebSphere, TmaxSoft JEUS가 있다.

 

Web Server를 사용하는 이유?

그렇다면 굳이 Web Server를 사용하지 않고 WAS가 정적 웹과 동적 웹 모두를 처리하도록 하면 되지 않을까? 굳이 왜 Web Server를 사용하는 걸까? 

정적 웹을 제공하는 것 외에도 Web Server는 WAS가 DB와 소통하며 비즈니스 로직을 처리하는 데에만 집중할 수 있도록 여러 역할을 수행한다.

 

1. Reverse Proxy 기능 제공

보안을 위해 클라이언트에게서 서버의 정보를 감추는 역할을 수행한다. 중요한 작업들을 수행하는 WAS의 주소가 모든 클라이언트들에게 노출된다면 누구나 주요 정보에 접근이 가능해질 것이다. 따라서 Web Server가 Proxy 역할을 수행하면서 WAS가 제공하는 서비스를 대신 전달하여 보안을 유지한다.

 

2. 로드밸런싱 기능 제공

서비스 지속성을 위해 여러 개의 톰캣을 돌리는 경우와 같은 상황에서, 각 톰캣 프로세스에 균등하게 작업이 분배될 수 있도록 로드밸런싱 기능을 수행한다.

 

3. 캐싱

일반적으로 생각하는 캐싱의 의미는 사용자가 이전에 전달 받았던 데이터가 사용자와 서버 사이에 있는 프록시 서버에 잠시 저장되어 해당 데이터를 재요청할 시 서버 대신 프록시 서버가 빠르게 해당 데이터를 전달해주는 것을 말한다. 

웹 서버가 수행하는 캐싱 역시 유사하다. 웹 서버에 사용자가 자주 찾았던 데이터를 저장해둠으로써 굳이 WAS까지 요청이 전달될 필요가 없도록 한다. 

 

 

요약

  • Web Server는 동적인 작업보다는 단순히 클라이언트를 응대하며 정적인 리소스들을 즉시 제공하는 역할을 수행한다.
  • Web Server는 단순히 정적 리소스만 제공하는 것이 아닌, 보안적인 역할과 성능을 위한 여러 역할을 수행한다.
  • WAS는 DB와 소통하며 동적인 비즈니스 로직 처리를 빠르게 수행하는 데에 집중하고 그 외의 작업은 Web Server가 수행한다.

참고 자료

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://yozm.wishket.com/magazine/detail/1780/

 

웹 서버와 WAS(Web Application Server) | 요즘IT

웹 서버는 정적인 데이터를 처리하는 서버입니다. 이미지나 단순 html 같은 정적인 리소스들을 전달하며, WAS만을 이용할 때보다 빠르고 안정적으로 기능을 수행합니다. 반면 WAS는 동적인 데이

yozm.wishket.com

https://www.youtube.com/watch?v=Zimhvf2B7Es

반응형