WAS
일반적인 웹 서버(Web Server)에 대해서는 다들 자세히 정의할 순 없지만 어렴풋이 이게 무엇인가에 대해서는 알고 있을 것이다. 웹 서버라는게 무엇인가에 대해 한 문장으로 설명하자면, '요청받은 내용을 처리하고 되돌려주는 기능을 하는 서버' 라고 할 수 있겠다.
중요한 점은, 웹 서버는 정적인 데이터들을 처리하는 기능을 한다는 점이다.
그러면, 정적인 데이터는 웹 서버가 처리한다고 치고, 동적인 데이터는 어떻게 처리하지?
...라는 생각을 하기 전에, 웹에서 정적인 데이터와 동적인 데이터가 무엇인지 한 번 생각해봐야한다.
정적 데이터(Static Data)는 일반적으로 HTML이나 이미지, js, css파일 등을 말한다. 스프링부트 프로젝트를 사용해본 사람들이라면 익히 알고 있을 'static' 폴더에 들어있는 자료들을 처리하는 역할을 하는 서버가 웹 서버라고 생각하면 될 것이다.
동적 데이터(Dynamic Data)는 정적인 데이터가 아닌, 입력받은 값을 내부적인 로직에 따라 처리해 만들어낸 결과값을 의미한다. 기존의 웹 서버로는 해낼 수 없는 역할이다.
동적 데이터는 웹 서버가 해결해줄 수 없다. 그렇기 때문에 이 동적 데이터를 처리해줄 역할이 필요했고, 그래서 등장한게 바로 WAS(Web Application Server)다.

WAS는 보통 웹 서버의 뒤에 붙어있는 개념으로 해석한다. 웹 서버의 가장 큰 장점은 속도가 빠르다는 것이다. 내부 로직을 한 차례 더 거쳐야 하는 WAS와 비교했을때 당연한 일이다. 그렇기 때문에 일반적으로 서비스를 설계할 때 정적인 데이터는 웹 서버에게, 웹 서버가 해결할 수 없는 동적인 데이터는 WAS에게 처리하도록 업무를 분담시킨다.

이러한 방식으로 설계했을 때 얻을 수 있는 장점은 다음과 같다.
1) 기능별 분담으로 인한 서버 부하 분담
2) 물리적 분리로 인한 보안 증대
3) 필요에 따라 WAS를 증설함으로써 로드밸런싱 및 장애 극복능력 향상 기대 가능
현대 웹은 WAS 없이는 너무 밋밋한 시대가 됐다. 카페에 댓글 하나 달아도 화면이 새로고침 되던 시절이 얻그제같은데, 이제는 부드럽게 댓글이 추가가 된다. 어마어마한 수준의 고도화가 진행된 것이다. 이런 것이 기술의 진보라는 것일 것이다. 멋있는 일이다.
'내가 배운 것들 > 기타' 카테고리의 다른 글
| Youtube Data API v3의 검색 기능 매개변수들 (0) | 2021.12.17 |
|---|---|
| 변수는 반복문 안에서 선언하는게 좋을까? 밖에서 하는게 좋을까? (0) | 2021.12.10 |
| DB에서 쓰는 관계(Relation)가 뭘까? (0) | 2021.12.03 |
| REST API가 뭘까? (0) | 2021.11.29 |
| ORM이 뭘까? (0) | 2021.11.28 |
댓글