본문으로 건너뛰기

웹서버와 WAS란 무엇인가

웹 서비스를 운영하다 보면 "웹서버(Web Server)"와 "WAS(Web Application Server)"라는 두 개념을 반드시 마주치게 됩니다. 처음에는 둘 다 "서버"라는 단어가 붙어 있어 혼란스럽지만, 역할과 탄생 배경이 전혀 다릅니다. 이 둘을 명확히 구분하고 왜 함께 사용하는지 이해하는 것이 서버 연동 학습의 첫걸음입니다.


웹서버(Web Server)란?​

웹서버 는 클라이언트(브라우저)로부터 HTTP 요청을 받아 정적(static) 콘텐츠 를 반환하는 소프트웨어입니다.

정적 콘텐츠란 서버에 미리 저장된 파일을 그대로 전달하는 것을 말합니다.

  • HTML 파일 (index.html)
  • CSS 파일 (style.css)
  • JavaScript 파일 (app.js)
  • 이미지 (logo.png, photo.jpg)
  • 폰트, PDF, 동영상 등 바이너리 파일

웹서버는 이런 파일들을 디스크에서 읽어 클라이언트에게 전송하기만 합니다. 별도의 프로그램 실행이나 데이터베이스 조회 없이 빠르고 가볍게 처리할 수 있습니다.

대표적인 웹서버​

이름개발사특징
NginxIgor Sysoev비동기 이벤트 기반, 고성능, 리버스 프록시·로드밸런서 역할 겸용
Apache HTTPDApache 재단모듈 기반 확장성, 오랜 역사, .htaccess 등 유연한 설정
CaddyCaddyserver자동 HTTPS, 간결한 설정 문법
IISMicrosoftWindows 환경에 최적화

WAS(Web Application Server)란?​

WAS 는 웹서버의 기능에 더해 동적(dynamic) 콘텐츠 를 생성할 수 있는 애플리케이션 실행 환경을 제공하는 서버입니다.

동적 콘텐츠란 요청이 들어올 때마다 프로그램을 실행하여 그 시점에 생성 되는 응답입니다.

  • 로그인 후 사용자 이름이 포함된 HTML
  • 데이터베이스에서 조회한 상품 목록
  • 결제 처리 후 생성된 주문 번호
  • 실시간 검색 결과

WAS는 이런 처리를 위해 Java EE 컨테이너(Servlet·JSP) 나 Python WSGI, Node.js 등의 런타임을 내장하고 있습니다.

대표적인 WAS​

이름개발사특징
Apache TomcatApache 재단Servlet·JSP 컨테이너, 경량, 오픈소스
JBoss / WildFlyRed HatJava EE 전체 스펙 지원, 엔터프라이즈
WebLogicOracle엔터프라이즈 유료, 고가용성
WebSphereIBM대형 금융·공공 엔터프라이즈 환경
JettyEclipse 재단경량 임베디드 WAS

왜 웹서버와 WAS를 분리하는가?​

처음 웹을 배우는 분들은 "Tomcat만 있으면 웹 서비스 가능한데 Nginx는 왜 필요해?" 라고 묻습니다. 실제로 Tomcat만으로도 HTTP 요청을 받고 응답을 줄 수 있습니다. 그런데 실무 운영 환경에서는 반드시 둘을 분리합니다. 이유는 다음과 같습니다.

1. 역할 전문화로 성능 향상​

웹서버(Nginx)는 정적 파일을 처리하는 데 최적화되어 있습니다. Nginx는 비동기 이벤트 기반 구조로 수만 개의 정적 파일 요청을 동시에 처리할 수 있습니다. 반면 Tomcat이 직접 정적 파일을 서빙하면 JVM 위에서 돌아가기 때문에 불필요한 오버헤드가 생깁니다.

역할 전문화로 성능 향상

2. WAS 보호 (보안)​

WAS를 인터넷에 직접 노출하면 여러 보안 위험이 있습니다. 웹서버를 앞에 두면:

  • WAS의 포트(8080, 8009)를 외부에서 접근 불가능하게 막을 수 있습니다.
  • 웹서버에서 악성 요청, DDoS를 1차 필터링합니다.
  • SSL/TLS 종료를 웹서버에서 처리하여 WAS는 HTTP만 받으면 됩니다.

3. 무중단 배포와 운영 편의성​

웹서버를 앞에 두면 WAS를 교체하거나 재시작할 때 사용자가 에러 페이지를 보지 않도록 트래픽을 다른 WAS 인스턴스로 우회할 수 있습니다.

4. 로드밸런싱 (수평 확장)​

트래픽이 늘어날 때 WAS를 여러 대 띄우고 웹서버가 요청을 분산하는 로드밸런싱을 적용할 수 있습니다.

로드밸런싱 (수평 확장)


HTTP 요청 처리 흐름​

웹서버와 WAS가 함께 동작할 때의 전체 요청 흐름을 살펴봅니다.

웹 애플리케이션 요청 흐름 (HTTPS)


웹서버 단독 vs WAS 단독 vs 연동 비교​

구성장점단점적합한 상황
웹서버 단독빠름, 단순함동적 처리 불가정적 사이트, CDN
WAS 단독구성 단순보안 취약, 정적 파일 비효율개발·테스트 환경
웹서버 + WAS성능, 보안, 확장성 우수설정 복잡도 증가실무 운영 환경 표준

실무에서는 웹서버(Nginx 또는 Apache) + WAS(Tomcat) 연동 구성이 사실상 표준입니다.


정리​

  • 웹서버(Nginx·Apache): 정적 파일 서빙, 리버스 프록시, SSL 처리, 로드밸런싱 전문
  • WAS(Tomcat): 동적 콘텐츠 생성, 비즈니스 로직 실행, DB 연동 전문
  • 분리하는 이유: 성능 최적화, 보안 강화, 무중단 배포, 수평 확장
  • 요청 흐름: 브라우저 → 웹서버(정적 처리 or 프록시) → WAS(동적 처리) → 응답

다음 장에서는 정적 콘텐츠와 동적 콘텐츠의 차이를 더 깊이 파고들고, CGI에서 서블릿·WAS로 발전해온 역사를 살펴봅니다.