Web Server와 WAS
Web Server와 WAS에 대해 구체적인 차이점이나 장단점, 왜 웹 애플리케이션 서버(WAS)를 쓰면서도 웹 서버를 따로 두는지 명확하게 설명을 하지 못함을 깨닫고 정리해 보려 합니다.
🏷️ Web Server

웹서버는 사용자가 브라우저 주소창에 URL을 입력하여 어떤 페이지를 요청하게 되면 HTTP 요청을 받아들여 HTML 문서와 같은 정적인 콘텐츠를 사용자에게 전달해주는 게 가장 큰 역할입니다.
- 단순히 저장된 웹 리소스들을 클라이언트로 전달하고, 클라이언트로부터 콘텐츠를 전달받아 저장하거나 처리한다.
- 사용자로부터 동적인 요청이 들어왔을 때 해당 요청을 웹서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에게 요청합니다
- 웹서버의 종류 : Apache,Nginx 등
🏷️ Web Application Server (WAS)

WAS 또한 웹서버와 동일하게 HTTP 기반으로 동작합니다. 웹서버가 할 수가 있는 기능 대부분이 WAS에서도 처리가 가능하며 비즈니스 로직을 처리할 수 있어 사용자에게 동적인 콘텐츠를 전달 할 수가 있으며, 주로 데이터베이스 서버와 같이 수행됩니다. 즉 WAS의 주요 임무는 동적인 요청을 받아 처리해주는 서버입니다.
WAS는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크입니다. 인터넷상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)으로 볼 수 있습니다.
- 대표적인 WAS의 종류 : Tomcat, JBoss, Jeus
🏷️ 차이점
기능적으로 동일한 영역이 있으며 WAS가 웹서버 기능의 많은 부분을 포함하여 수행하기도 하지만 사용의 목적이 다릅니다.
- 웹서버는 정적인 데이터를 처리하는 서버로 이미지나 단순 html 같은 정적인 리소스들을 전달하며 WAS만을 이용할 경우보다 빠르고 안정적으로 기능을 수행합니다.
- WAS는 동적인 데이터를 위주로 처리하는 서버로, DB와 연결되어 사용자와 데이터를 주고받고 조작이 필요한 경우 WAS를 활용합니다.
🏷️ 결론
WAS만으로도 서비스는 가능하지만 안정성, 보안, 확장성을 위해 웹 서버를 앞단에 두는 구조가 권장됩니다.
1. 보안성 강화 (Security)
- 웹 서버는 클라이언트와 직접 맞닿는 '최전방'입니다.
- 웹 서버를 앞단에 두어 실제 비즈니스 로직과 DB가 있는 WAS의 IP를 외부에 노출하지 않을 수 있습니다.
- 공격자가 침투하더라도 중요 데이터가 있는 WAS로 직접 접근하는 것을 한 단계 차단하는 방어막 역할을 합니다.
2. 무중단 서비스 운영 (High Availability & Load Balancing)
- 웹 서버 1대에 여러 대의 WAS를 연결할 수 있습니다.
- 특정 WAS에 문제가 생겨도 웹 서버가 다른 WAS로 요청을 넘겨주는 로드 밸런싱(Load Balancing) 기능을 수행하여, 사용자에게는 서비스 중단 없이 안정적인 경험을 제공합니다.
- 배포 시에도 WAS 하나씩 순차적으로 재시작하는 '무중단 배포' 구현이 쉬워집니다.
3. 효율적인 리소스 관리 (Optimization)
- 정적 파일(이미지, CSS, JS)은 웹 서버에서 직접 캐싱하거나 처리하는 것이 훨씬 빠릅니다.
- WAS는 오로지 비즈니스 로직 연산과 DB 통신에만 CPU와 메모리를 집중해서 사용할 수 있게 되어 전체적인 시스템 처리량이 향상됩니다.
📖 Reference
'코딩 공부 > web & Spring' 카테고리의 다른 글
| [Spring] Filter와 Interceptor (0) | 2026.01.02 |
|---|---|
| [Web / JWT / Spring] HttpOnly 쿠키와 보안 (0) | 2025.12.21 |
| [Spring] STOMP + Spring Security에서 principal이 null 값 뜨는 경우 (0) | 2025.12.14 |
| [Spring / JWT] RefreshToken과 적용 (0) | 2025.12.13 |
| [Spring] Pageable (0) | 2025.04.08 |