Web Application Server (WAS) vs. Web Server

Web ServerApplication Server는 모두 클라이언트 요청을 처리하고 응답을 반환하는 서버이지만, 역할과 기능에서 중요한 차이가 있다. 이 두 서버는 종종 함께 사용되며, 서로 보완적인 관계를 형성한다.

정의 및 주요 역할

  • Web Server
    • 주로 정적 콘텐츠(HTML, CSS, JavaScript, 이미지 등)를 제공하는 서버이다.
    • HTTP 프로토콜을 기반으로 클라이언트 요청에 응답한다.
    • 정적 리소스를 빠르게 처리하며, 동적 요청은 Application Server로 전달하는 역할도 수행한다.
  • Application Server
    • 동적 콘텐츠를 생성하고 비즈니스 로직을 처리하는 서버이다.
    • 데이터베이스와 상호작용하거나 애플리케이션 로직을 실행하여 클라이언트 요청에 따라 맞춤형 데이터를 반환한다.
    • 동적 콘텐츠를 처리하기 때문에 복잡한 트랜잭션 관리 및 비즈니스 로직 수행이 가능하다.

기능

  • Web Server
    • 정적 콘텐츠 제공: HTML, CSS, 이미지 파일 등.
    • 요청 전달: 동적 콘텐츠 요청은 Application Server로 전달.
    • 캐싱 및 로드 밸런싱: 웹사이트 성능 최적화를 위한 기능 제공.
  • Application Server
    • 동적 콘텐츠 생성: 클라이언트 요청에 따라 실시간으로 데이터를 생성.
    • 비즈니스 로직 처리: 데이터베이스와 통신하거나 복잡한 연산 수행.
    • 트랜잭션 관리: 다중 사용자 환경에서 데이터 일관성을 유지.

사용 사례

  • Web Server

    • 회사 홈페이지, 블로그, 뉴스 사이트 등 정적 리소스 중심의 웹사이트.
  • Application Server

    • 전자상거래 플랫폼(쇼핑몰), 인터넷 뱅킹 시스템, 소셜 네트워크 서비스(SNS) 등 동적 콘텐츠 중심의 애플리케이션.

주요 소프트웨어

  • Web Server
    • Apache HTTP Server
    • Nginx
    • Microsoft IIS
  • Application Server
    • Apache Tomcat
    • JBoss/WildFly
    • WebLogic
    • WebSphere

프로토콜

  • Web Server

    • 주로 HTTP/HTTPS 프로토콜 사용.
  • Application Server

    • HTTP 외에도 다양한 프로토콜 지원 (RMI, JMS 등).

협업 방식

웹 서버와 애플리케이션 서버는 함께 작동하여 클라이언트 요청을 처리한다:

  1. 클라이언트가 웹 서버로 요청을 보낸다.
  2. 웹 서버가 정적 콘텐츠를 직접 반환하거나, 동적 콘텐츠 요청을 Application Server로 전달한다.
  3. Application Server는 비즈니스 로직을 처리하고 데이터를 생성하여 웹 서버로 반환한다.
  4. 웹 서버는 최종 응답을 클라이언트에 전달한다.

Web Server vs. Application Server 비교

비교 항목Web Application Server (WAS)Web Server
기본 개념동적 컨텐츠를 처리하고 생성하는 미들웨어로, 애플리케이션의 로직을 실행하고 데이터베이스와 상호작용클라이언트의 HTTP 요청을 처리하고 정적 컨텐츠(HTML, 이미지 등)를 제공하는 서버
주요 기능- 동적 컨텐츠 생성
- 비즈니스 로직 처리
- 데이터베이스 연동
- 트랜잭션 관리
- 세션 관리
- 정적 파일 제공
- 리버스 프록시
- 로드 밸런싱
- 캐싱
- 보안 설정
처리 방식요청을 받아 서버 내부에서 프로그램을 실행하고 결과를 동적으로 생성하여 응답클라이언트 요청에 대해 이미 존재하는 정적 파일을 직접 전송
리소스 사용CPU와 메모리를 많이 사용하며, 동적 처리로 인한 부하가 높음상대적으로 적은 리소스를 사용하며, 정적 파일 처리에 최적화
성능 특성- 동적 처리로 인한 지연 발생
- 복잡한 연산 가능
- 상대적으로 느린 응답 시간
- 빠른 응답 속도
- 높은 동시성 처리
- 단순한 요청 처리에 최적화
확장성- 수직적/수평적 확장 가능
- 로드 밸런싱 필요
- 세션 클러스터링 고려 필요
- 쉬운 수평적 확장
- 단순한 로드 밸런싱
- 상태를 유지하지 않음
보안- 애플리케이션 레벨 보안
- 인증/인가 처리
SQL 인젝션 방어
XSS 방어
- 네트워크 레벨 보안
SSL/TLS 처리
DDoS 방어
IP 기반 접근 제어
대표적 제품- Apache Tomcat
JBoss/WildFly
WebLogic
WebSphere
- Apache HTTP Server
Nginx
IIS
LiteSpeed
사용 사례- 전자상거래 시스템
- 온라인 뱅킹
CRM 시스템
ERP 시스템
- 기업 웹사이트
- 블로그
- 포트폴리오 사이트
- 정적 문서 호스팅
프로그래밍 지원Java, Python, PHP,.NET 등 다양한 프로그래밍 언어와 프레임워크 지원제한된 스크립팅 기능만 제공 (주로 설정 파일을 통한 제어)
세션 관리세션 생성, 유지, 만료 처리 등 복잡한 세션 관리 기능 제공세션 관리 기능 없음
데이터베이스 연동데이터베이스 커넥션 풀 관리 및 트랜잭션 처리데이터베이스 연동 기능 없음
모니터링- 애플리케이션 성능 모니터링
- 메모리 사용량
- 쓰레드 상태
DB 커넥션 상태
- HTTP 요청/응답 모니터링
- 네트워크 트래픽
- 리소스 사용량
장애 대응- 애플리케이션 레벨 장애 복구
- 트랜잭션 롤백
- 세션 복구
- 서버 레벨 장애 복구
- 정적 파일 백업
- 서버 이중화
구성 복잡도복잡한 설정과 최적화 필요상대적으로 단순한 설정
운영 비용높은 하드웨어 요구사항과 관리 비용상대적으로 낮은 운영 비용
캐싱 메커니즘- 동적 컨텐츠 캐싱
- 데이터베이스 쿼리 캐싱
- 세션 데이터 캐싱
- 정적 파일 캐싱
HTTP 응답 캐싱
- 리버스 프록시 캐싱

참고 및 출처