마케터가 이해하는 WAS(Web Application Server)
WAS(Web Application Server)의 개념과 역할을 알아보고, 비유를 통해 쉽게 이해해볼 수 있습니다.
들어가며…
안녕하세요, 오픈마루입니다.
여러분은 WAS라는 단어 들어보신 적이 있으신가요? 전공자가 아니라면 WAS가 아예 생소한 분들도 있을텐데요. 오늘은 WAS의 개념과 역할에 대해 간단히 알아보고, 비유를 통해 쉽게 이해해보는 시간을 가져보려고 합니다.
WAS와 Web Server
WAS를 알아보기 전에, WAS의 짝꿍과도 같은 Web Server에 대해 먼저 알아보겠습니다.
Web Server란
웹 브라우저 클라이언트로부터 HTTP 프로토콜 기반의 요청을 받아들여 정적 콘텐츠를 제공하는 서버를 뜻합니다.
정적 콘텐츠라고 하면, html이나 jpg, css같은 이미지와 글자 등을 우리 눈에 보일 수 있게 하는 화면 구성 요소들을 뜻합니다.
또 웹서버가 수행할 수 없는 동적 컨텐츠를 WAS에게 요청하고, WAS의 처리 결과를 클라이언트에게 전달합니다.
WAS(Web Application Server)란
그렇다면 WAS는 어떤 단어의 약자인지 감이 오시나요?
WAS는 Web Application Server의 약자로, 웹서버에서 단독으로 처리할 수 없는 다양한 동적컨텐츠를 제공하는 미들웨어를 말합니다.
동적 컨텐츠라고 하면 DB를 조회하거나, 그 요청에 맞는 데이터를 비즈니스 로직에 맞게 그 때마다 결과값을 만드는 것을 뜻합니다.
따라서 IP관리나 세션 처리 등의 요청은 WAS에서 처리하게 됩니다.
단순하게 생각하자면 우리가 어떤 브라우저에서 로그인을 한다고 가정할 때, 웹서버에서는 텍스트, 이미지, UI 등의 로그인 화면을 구성하는 정적인 콘텐츠를 계속해서 보여줍니다.
그리고 우리가 로그인을 위해 입력하는 회원 정보들이 동적 컨텐츠입니다.
우리가 입력한 데이터들을 웹서버가 WAS에게 전달해주면 WAS가 존재하는 DB인지 확인한 뒤, 로그인 처리 결과를 다시 웹서버에 전달해주게 됩니다.
그렇게 우리가 보는 화면에서 로그인 화면이 보이게 되는 것이지요.
Web server와 WAS를 분리하는 이유
모든 웹 브라우저들에는 정적 컨텐츠와 동적 컨텐츠가 공존할 수 밖에 없습니다.
클라이언트에게 브라우저 로그인에 대한 요청을 받았다고 가정해봅시다.
웹서버에서 로그인 페이지를 구성하는 모든 폰트, 이미지, 디자인 값(css)들을 유지하면서도 로그인을 위한 DB 조회와 로직을 전부 처리하게 하면 어떻게 될까요?
당연히 응답 시간도 오래 걸릴 뿐더러 클라이언트가 많아질 수록 서버 부하에 취약해지게 됩니다.
이 둘을 분리함으로써 웹서버에선 정적인 컨텐츠를 계속 띄워주고, WAS가 그 뒷단에서 빠르게 로직을 처리하여 결과값을 가져와 웹서버에 띄울 수 있도록 합니다.
또 데이터를 분리함으로써 보안을 강화할 수 있다는 장점도 있죠. 따라서 웹서버, WAS 어느 하나만 쓴다기보다 둘을 같이 두고 기능을 분리 시키는 것이 서버 부하 방지는 물론 요청 처리의 효율을 개선하는 것이 좋습니다.
WAS는 프론트엔드와 백엔드의 중간에서 값을 처리하고 전달하기때문에, 미들웨어라고 불립니다.
보통 미들웨어에서는 데이터 관리, 메세징, 인증 및 API 관리들을 담당하고 있어 클라우드 네이티브 아키텍처의 기반이 되는 중요한 요소입니다.
비유를 통하여 쉽게 이해하기
WAS를 요리에 비유하여 조금 더 쉽게 이해해볼까요?
개발자는 요리사와 같습니다.
하나의 요리를 만들기 위해 다양한 재료인 개발 라이브러리를 통해 원하는 음식을 만들어냅니다.
요리사인 개발자가 만드는 것이 바로 어플리케이션입니다.
요리사가 열심히 조리하여 솥에서 김치찌개를 다 만들었습니다. 하지만 손님에게 바로 솥채 제공할 수 있을까요?
솥을 손님 상에 가져와 하나씩 떠주려고 하면 시간도 오래 걸리고, 쏟을 위험도 생기니 알맞은 그릇에 담아 제공해야겠죠.
WAS는 김치찌개를 담기 위한 국그릇과 같습니다.
손님이 메뉴판(웹서버)에서 요청한 메뉴를 받아 손님에게 가져다 주기 위해 필요한 것이 바로 그릇(WAS)인 것입니다.
개발자가 완성된 음식, 즉 애플리케이션이 개발되면 그릇을 통해 고객에게 제공되어야합니다.
그래야 처리 시간도 적게 소요되고, 보안도 강화할 수 있게 됩니다.
그릇의 제조사도 정말 다양하죠.
그릇하면 코렐, 포트메리온 등이 바로 떠오릅니다.
WAS도 마찬가지입니다.
WAS라는 미들웨어를 개발하는 여러 회사들이 있습니다.
대표적으로 레드햇, 아파치, 오라클 등이 있습니다.
마치며
이번 글에서는 Web Server와 WAS에 대해서 간략하게 알아보았습니다.
우리가 웹 상에서 무언가 실행하고자 할 때, 뒷단에서는 다양한 요청을 처리하고 있다는 걸 새롭게 알 수 있었습니다.
WAS의 필요성도 비유를 통해 알아보았는데, 여러분은 어떻게 생각하시는지 의견을 나눠보는 것도 좋을 것 같습니다.
또한 오픈마루 블로그에 다양한 IT 컨텐츠들이 있으니, 아래 연관 포스트도 읽어보시는 것을 추천드립니다.
JBoss EAP 설치와 서버 시작: 최적의 방법
/in JBoss, Red Hat, Tech Talk/by 오픈마루 마케팅0JBoss Data Grid 데모 – 빠른 시작 가이드
/in JBoss, Tech Talk/by 오픈마루 마케팅3NoSQL 데이터베이스 분류와 제품들 – SQL 없는 데이터베이스
/in JBoss, Tech Talk/by 오픈마루 마케팅3