본문으로 건너뛰기
Advertisement

웹서버와 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로 발전해온 역사를 살펴봅니다.

Advertisement