Web Application Server의 약자로, 웹 어플리케이션의 비즈니스 로직을 처리하는 서버입니다. 좀 더 쉽게 말하자면, 사용자의 요청을 받아서 로직을 수행하고 그 결과를 응답으로 만들어주는 서버입니다.
예를 들면, 로그인 요청이 들어오면 아이디/비밀번호를 확인하고, 게시글 작성 요청이 들어오면 DB에 저장하고, 상품 조회 요청이 들어오면 DB에서 가져와서 클라이언트 측으로 반환합니다.
웹 서버(Web Server) 는 정적인 파일을 클라이언트(브라우저)에게 전달하는 역할을 합니다. 여기서 정적 파일이란 HTML,CSS,Javascript,이미지,PDF 등 내용이 고정되어 있고 실행 로직이 없는 파일을 의미합니다. 예를 들어, 사용자가 웹 사이트에 접속했을 때 처음 보게 되는 index.html 같은 페이지나, 스타일을 정의한 CSS 파일, 이미 만들어진 이미지 파일 등은 모두 웹 서버가 바로 찾아서 응답해주는 대상입니다.
웹 서버는 파일을 요청받으면 서버에 저장된 해당 파일을 그대로 클라이언트에게 전달합니다. 요청을 해석하고, 그에 맞는 파일을 찾아주는 정도의 역할만 하기 때문에 구조가 단순하고 빠르며, 처리 속도가 매우 빠릅니다. 대표적인 웹 서버로는 Apache HTTP Server, Nginx 등이 있습니다.
WAS는 웹 애플리케이션 서버(Web Application Server)의 줄임말로, 웹 서버와는 달리 동적인 요청을 처리하는 서버입니다. 동적 요청이란, 사용자마다 다른 결과가 나오는 요청을 말합니다. 예를 들어 로그인, 회원가입, 게시글 작성, 상품 조회처럼 서버가 로직을 실행해야 결과가 달라지는 경우를 말합니다.
이러한 동적 요청은 단순한 정적 파일로 처리할 수 없고, 서버 내부에서 코드가 실행되어야 합니다. 이 코드가 바로 우리가 흔히 말하는 비즈니스 로직입니다. WAS는 이러한 로직을 실행하고, 필요하면 데이터베이스와 통신하며, 결과를 HTML이나 JSON 같은 형태로 만들어서 클라이언트에게 전달합니다.
Java 기반 웹 개발에서는 Tomcat, JBoss, WebLogic 같은 WAS가 자주 사용됩니다. 특히 Spring Framework로 만든 애플리케이션은 대부분 Tomcat 같은 WAS 위에서 동작합니다.
실제 웹사이트에서 사용자가 로그인 버튼을 눌렀다고 가정해보겠습니다.
사용자가 브라우저에서 https://example.com/login에 접속합니다.
이 요청은 먼저 웹 서버(Nginx)가 받습니다.
Nginx는 이 요청이 정적인 파일 요청이 아닌 것을 판단하고, WAS(Tomcat)로 요청을 전달합니다.
WAS는 요청된 정보를 받아 내부에서 로그인 로직을 실행합니다. 사용자가 입력한 아이디와 비밀번호를 데이터베이스에서 확인하고, 그 결과에 따라 응답 데이터를 생성합니다.
생성된 응답은 다시 웹 서버를 거쳐 클라이언트에게 전달됩니다.
이 흐름에서 보면, 웹 서버는 요청을 받고 적절한 처리 대상으로 분배하는 역할을 하고, WAS는 실제 로직을 처리하고 응답을 생성하는 역할을 한다는 점이 뚜렷하게 드러납니다.