회사의 서비스 설명중 상사가 WAS와 war에 대해서 얘기했다. 원래는 정적 페이지와 동적 페이지를 분리하는 게 맞지만 우리 서비스는 현재 WAR에 한 번에 말려있다고 했다. 그리고 그 중간중간에 WAS에 대해서 말하기도 했는데 무슨 말인지 이해할 수가 없었다.
WAS에 대해서 검색을 해보니 Web Server와 WAS가 계속 같이 나온다. Web Server와 WAS는 서로 공생하는 관계인가 보다.
Web Server란 정적인 컨텐츠를 제공하고 동적인 콘텐츠의 제공을 위해 WAS에 전달을 하는 서버이다.
아파치, Nginx, IIS가 있다.
WAS란 Web Application Server의 약자로 DB조회나 다양한 로직 처리를 요구하는 동적인 콘텐츠를 제공하기 위해 만들어진 Application Server이다.
톰캣, JEUS, Web Sphere이 있다.
아래의 이미지처럼 클라이언트의 요청을 Web Server이란 응접실에서 받고 Web Server가 처리할 수 있는 정적 콘텐츠는 알아서 처리하고 Web Server가 처리하기 힘든 동적 콘텐츠는 WAS에게 요청하게 된다.
그렇다면 Web Server는 동적 컨텐츠를 전혀 처리하지 못할까?
WAS는 정적 컨텐츠를 처리하지 못할까?
예전에는 정적 리소스 제공시 시간이 오래걸린다는 말이 있었는데 이재는 톰캣의 정적 리소스 제공도 빨라져서 의미있는 차이는 없다고 한다.
1. 보안
예) reverse proxy: 클라이언트에게 서버를 숨긴다.
2. 로드밸런싱
지속성을 위해 WAS 서버를 여러개 둘 수 있는데 한개의 WAS서버에서 업데이트 중이라고 할때 Web Server가 다른 WAS서버에 요청을 보내어 분산처리를 한다.
3. 캐싱
reverse proxy에서의 캐싱는 서버단에서의 캐시이다. 서버에 반복적으로 들어올만한 요청들을 web server에 두었다가 바로 응답하는것이다.
4. 모듈
수많은 모듈들을 활용해 뒷단의 WAS들이 정상동작하는지 주기적으로 헬스체크를 하는 등 서비스를 안정적이고 안전하게 돌리기 위한 다양한 기능들을 제공한다.
참고
우아한 Tech: https://www.youtube.com/watch?v=F_vBAbjj4Pk
우아한 Tech: https://www.youtube.com/watch?v=NyhbNtOq0Bc&t=339s
얄팍한 코딩사전: https://www.youtube.com/watch?v=Zimhvf2B7Es&t=633s
'CS(Computer Science)' 카테고리의 다른 글
데이터 파싱문제 (0) | 2022.08.22 |
---|