ETC

WAS와 WEB의 차이점과 역할 정리

Newbie Developer 2025. 2. 16. 13:37

 

웹 애플리케이션을 개발하고 운영할 때 웹 서버(Web Server, WEB)웹 애플리케이션 서버(Web Application Server, WAS) 를 구분하는 것이 중요합니다.

이 글에서는 WEB과 WAS의 차이점, 역할, 동작 방식, 그리고 실무에서의 구성 예제를 다룹니다.


1. WEB과 WAS의 개념

🔹 WEB (웹 서버, Web Server)

"정적인 HTML, CSS, JavaScript, 이미지 등의 콘텐츠를 클라이언트(브라우저)에게 제공하는 서버"

✅ 정적인 콘텐츠(HTML, CSS, JS, 이미지) 제공
✅ 클라이언트(사용자) 요청을 처리하여 응답 반환
✅ 대표적인 웹 서버: Apache HTTP Server, Nginx, Microsoft IIS

🔹 WAS (웹 애플리케이션 서버, Web Application Server)

"동적인 웹 애플리케이션 로직을 처리하는 서버"

Java, PHP, Python, Ruby 등으로 개발된 동적 웹 애플리케이션 실행
✅ 클라이언트 요청을 받아 비즈니스 로직 수행 후 데이터베이스(DB) 연동
✅ 대표적인 WAS: Tomcat, JBoss, WebLogic, WebSphere


2. WEB과 WAS의 차이점

비교 항목 WEB (웹 서버) WAS (웹 애플리케이션 서버)
역할 정적 리소스 제공 (HTML, CSS, JS, 이미지) 동적 요청 처리 (비즈니스 로직, DB 연동)
처리 방식 클라이언트 요청을 받아 응답 반환 웹 서버로부터 요청을 받아 비즈니스 로직 처리
예제 http://example.com/index.html http://example.com/login
주요 기술 Apache, Nginx, Microsoft IIS Tomcat, JBoss, WebLogic, WebSphere
주요 언어 HTML, CSS, JavaScript Java, PHP, Python, Ruby
DB 연동 ❌ (불가능) ✅ (가능)

WEB은 정적인 콘텐츠 제공, WAS는 동적 웹 애플리케이션 실행이라는 차이가 있습니다.


3. WEB과 WAS의 동작 방식

(1) WEB 서버 단독 사용

클라이언트(사용자)가 웹 페이지를 요청하면 웹 서버가 정적인 HTML, CSS, JS 등을 응답합니다.

웹 서버만 사용 시 예제

사용자 요청: http://example.com/index.html  
↓  
웹 서버 (Apache/Nginx) → HTML 파일 반환  
↓  
브라우저에서 HTML 렌더링

➡ 정적인 페이지 제공이 가능하지만, 로그인/회원가입 같은 동적 기능은 불가능합니다.


(2) WAS 단독 사용

클라이언트 요청을 WAS가 직접 처리하여 응답을 반환합니다.

WAS만 사용 시 예제

사용자 요청: http://example.com/login  
↓  
WAS (Tomcat) → 비즈니스 로직 수행 (DB 조회)  
↓  
HTML 응답 반환

➡ 동적인 기능은 처리 가능하지만, 정적 파일 요청까지 WAS가 처리해야 하므로 성능 저하가 발생할 수 있습니다.


(3) WEB + WAS 조합 (실무 구성)

실제 서비스에서는 WEB과 WAS를 함께 사용하여 성능을 최적화합니다.

웹 서버 역할

  • 정적인 리소스(HTML, CSS, JS, 이미지)를 직접 처리
  • 동적인 요청(API, 데이터 처리)는 WAS로 전달

WAS 역할

  • 웹 서버에서 전달한 요청을 처리하여 데이터베이스 연동 및 응답 생성

실무에서 사용되는 구성

사용자 요청: http://example.com/home.html  →  웹 서버(Apache/Nginx) → HTML 파일 반환  
사용자 요청: http://example.com/login  →  웹 서버(Apache/Nginx) → WAS(Tomcat)로 전달 → DB 조회 후 응답 반환

웹 서버가 정적 리소스를 제공하고, WAS가 비즈니스 로직을 처리하여 성능을 최적화할 수 있습니다.


4. 실제 서비스에서의 WEB + WAS 구성 예제

🔹 Nginx + Tomcat 조합

실무에서 가장 많이 사용되는 조합 중 하나로, Nginx가 정적 리소스를 제공하고, Tomcat이 동적인 요청을 처리합니다.

Nginx 설정 예제 (WAS로 요청 전달)

server {
    listen 80;
    server_name example.com;

    location /static/ {
        root /var/www/html;
    }

    location /api/ {
        proxy_pass http://localhost:8080; # Tomcat으로 요청 전달
    }
}

➡ /static/ 요청은 Nginx가 처리, /api/ 요청은 Tomcat으로 전달

Tomcat (WAS) 역할

  • /api/ 요청을 받아 비즈니스 로직 실행 및 DB 연동
  • 응답을 생성하여 Nginx를 통해 클라이언트에 반환

5. WEB + WAS의 장점

웹 서버가 정적인 요청을 처리하여 속도 최적화
WAS는 동적인 로직만 처리하여 부하 감소
로드 밸런싱 가능 (여러 WAS를 운영하여 확장성 확보)
보안 강화 (WAS를 직접 노출하지 않음)


6. 결론

WEB (웹 서버) : 정적인 콘텐츠 제공 (HTML, CSS, JS, 이미지)
WAS (웹 애플리케이션 서버) : 동적인 요청 처리 (비즈니스 로직 실행, DB 연동)
실무에서는 WEB + WAS 조합을 사용하여 성능과 보안을 최적화

이제 실무에서 WEB과 WAS를 효과적으로 구성하여 성능 좋은 웹 애플리케이션을 개발해 보세요! 🚀