웹 개발을 공부하다 보면 “웹서버”와 “WAS”라는 용어를 자주 접하게 된다. 둘 다 서버라는 점은 같지만, 역할은 명확하게 다르다. 이 개념을 제대로 이해하지 못하면 전체 구조를 이해하기 어렵다.

결론부터 말하면, 웹서버는 정적인 데이터를 처리하고 WAS는 동적인 로직을 처리한다. 이 차이를 기준으로 보면 전체 흐름이 매우 단순해진다.

웹서버란 무엇인가

웹서버는 사용자의 요청을 받아 이미 준비된 데이터를 그대로 전달하는 역할을 한다.

예를 들어 다음과 같은 것들이 있다.

  • HTML 파일
  • CSS 파일
  • 이미지 파일

이처럼 별도의 처리 없이 바로 전달 가능한 데이터는 웹서버가 담당한다. 대표적인 웹서버로는 Apache와 Nginx가 있다.

즉, 웹서버는 요청이 들어오면 “있는 그대로 전달하는 서버”라고 이해하면 된다.

WAS란 무엇인가

WAS는 Web Application Server의 약자로, 사용자의 요청에 따라 데이터를 새롭게 만들어서 응답하는 서버다.

다음과 같은 작업을 처리한다.

  • 로그인 기능
  • 회원가입 처리
  • 게시글 작성 및 수정
  • 데이터 조회

이처럼 요청마다 결과가 달라지는 작업은 WAS가 담당한다. 대표적으로 Tomcat이나 Spring 기반 서버가 여기에 해당한다.

WAS는 단순 전달이 아니라, 내부에서 로직을 실행한 뒤 결과를 만들어낸다는 점이 핵심이다.

웹서버와 WAS의 핵심 차이

두 개념을 가장 간단하게 비교하면 다음과 같다.

  • 웹서버: 정적인 데이터 처리
  • WAS: 동적인 로직 처리

또는 이렇게 이해해도 된다.

  • 웹서버는 파일을 전달하는 역할
  • WAS는 계산과 처리를 담당하는 역할

이 기준만 정확히 기억하면 헷갈릴 일이 없다.

쉽게 이해하는 방법

이 개념은 식당으로 비유하면 직관적으로 이해할 수 있다.

  • 웹서버는 이미 만들어진 음식을 가져다주는 역할
  • WAS는 주문을 받아 요리를 만드는 주방 역할

즉, 바로 제공 가능한 것은 웹서버가 처리하고, 새롭게 만들어야 하는 것은 WAS가 처리한다.

왜 웹서버와 WAS를 나눌까

실제 서비스에서는 두 서버를 분리해서 사용하는 경우가 대부분이다. 이유는 다음과 같다.

첫째, 성능 때문이다. 정적인 데이터는 웹서버가 빠르게 처리하고, 복잡한 로직은 WAS가 담당하면서 전체 효율이 높아진다.

둘째, 안정성 때문이다. WAS에 문제가 발생해도 웹서버는 기본적인 응답을 유지할 수 있다.

셋째, 확장성 때문이다. 트래픽이 증가하면 웹서버와 WAS를 각각 따로 확장할 수 있어 운영이 유리하다.

실제 동작 흐름

사용자가 웹사이트에 접속하면 다음과 같은 흐름으로 동작한다.

  1. 사용자가 요청을 보낸다
  2. 웹서버가 요청을 먼저 받는다
  3. 정적인 파일이면 웹서버가 바로 응답한다
  4. 동적인 요청이면 WAS로 전달한다
  5. WAS가 로직을 처리하고 결과를 만든다
  6. 결과가 다시 웹서버를 통해 사용자에게 전달된다

이 구조가 대부분의 웹 서비스에서 사용되는 기본 구조다.

초보자가 자주 헷갈리는 부분

웹서버와 WAS는 같은 서버가 아니다. 역할이 다르고, 대부분의 서비스에서는 두 개를 함께 사용한다는 점이 중요하다.

또한 모든 요청이 WAS로 가는 것이 아니라, 정적인 요청은 웹서버에서 바로 처리된다는 점도 자주 혼동되는 부분이다.

이 두 가지만 명확하게 구분하면 전체 구조를 이해하는 데 큰 문제가 없다.