본문 바로가기
Daily Dev Q&A 정리 템플릿

26.01.06 WAS와 웹서버란?

by teg0 2026. 1. 6.

웹서버와 WAS를 알아보기 전에 서버에 대해 간단하게 알아보자.

 

서버란?

서버는 클라이언트에게 네트워크를 통해 정보나 시스템을 제공하는 컴퓨터 시스템이다.

 

우리가 사용하는 스마트폰이나 노트북이 손님이라면, 서버는 그 손님의 주문을 기다렸다가 원하는 정보를 가져다주는 음식점과 같다.

 

  • 손님(Client): "메뉴판(웹페이지) 좀 보여주세요!", "비빔밥(데이터) 주문할게요!"
  • 서버(Server): "네, 여기 메뉴판(HTML) 있습니다.", "주문하신 비빔밥(결과값) 나왔습니다."

 

웹 서버 (Web Server)

웹 서버는 클라이언트(브라우저)로부터 HTTP 요청을 받아, 컴퓨터에 저장된 정적인 파일(HTML, CSS, JS, 이미지 등)을 그대로 전달하는 역할을 합니다.

 

"정적 리소스의 수문장"주요 역할

  • 정적 파일 서빙: 변화가 없는 파일을 빠르게 전송합니다.
  • 리버스 프록시(Reverse Proxy): 클라이언트와 WAS 사이에서 중계역할을 하며 보안을 강화합니다.
  • 로드 밸런싱: 여러 대의 WAS로 요청을 분산합니다.

 

장점

  • 속도와 효율: 단순 파일 전송만 하므로 매우 빠르고 하드웨어 자원을 적게 소모합니다.
  • 안정성: 구조가 단순하여 서버가 다운될 확률이 적습니다.

 

단점

  • 로직 처리 불가: 데이터베이스와 통신하거나 사용자의 상태에 따라 변하는 정보를 처리할 수 없습니다. (예: "로그인한 직원의 연차 계산" 등은 수행 불가)

 

WAS (Web Application Server)

WAS는 웹 서버로부터 요청을 넘겨받아 동적인 처리를 수행합니다. 데이터베이스와 연결되어 데이터를 주고받고, 프로그램 로직을 실행하여 결과를 만들어냅니다.

 

"비즈니스 로직의 두뇌"주요 역할

  • 프로그램 실행: Java, Python 등의 코드를 실행하여 비즈니스 로직을 처리합니다.
  • DB 연동: 데이터베이스에서 직원 정보나 근태 기록을 조회/수정합니다.
  • 트랜잭션 관리: 여러 작업이 동시에 일어날 때 데이터의 일관성을 유지합니다.

장점

  • 유연한 서비스: 사용자마다 다른 맞춤형 정보를 실시간으로 생성할 수 있습니다.
  • 복잡한 연산: HR 인사이트 분석이나 근태 정산 같은 무거운 로직을 처리합니다.

단점

  • 자원 소모: 코드 실행과 DB 연결이 필요하므로 웹 서버보다 메모리와 CPU를 많이 사용합니다.
  • 속도: 정적 파일만 주는 웹 서버보다는 응답 속도가 상대적으로 느릴 수 있습니다.

 

한눈에 비교하기

구분 웹 서버 (Web Server) WAS (Web Application Server)
주요 역할 정적 리소스 제공 (HTML, 이미지) 동적 로직 수행 (데이터베이스 연동, 계산)
비유 서빙 직원, 편의점 (완제품 판매) 주방 요리사, 식당 (주문 즉시 조리)
핵심 목표 빠르고 가벼운 응답 복잡한 비즈니스 로직 처리

 

요즘은 둘 다 사용!

장점 학목 상세 내용
효율성 극대화 정적 파일은 웹 서버가, 복잡한 로직은 WAS가 담당하여 전체 응답 시간을 단축합니다.
보안 강화 WAS가 외부에 직접 노출되지 않도록 웹 서버가 방패막이 역할을 수행합니다.
장애 대응 WAS가 점검 중이거나 에러가 나더라도, 웹 서버가 "점검 중" 페이지를 즉시 보여줄 수 있습니다.

 

흐름

 

 

  1. 사용자 요청 (주문): 사용자가 브라우저에서 요청을 보낸다.
  2. 웹 서버 도착 (안내 직원): 가장 먼저 웹 서버가 요청을 받는다.
    • 웹 서버는 요청을 확인하고 "내가 줄 수 있는 것(정적 리소스)"인지 판단한다.
    • 만약 배경 이미지나 로고 같은 것이라면 웹 서버가 창고에서 꺼내 바로 돌려준다.
  3. WAS로 전달 (주방에 주문 전달): "근태 데이터 계산"처럼 계산이 필요한 동적 요청인 경우, 웹 서버는 이 요청을 WAS에게 넘긴다.
  4. WAS 처리 (요리사): WAS는 요청을 분석한다.
    • DB(냉장고)에 접근해서 사용자의 출퇴근 기록을 가져온다.
    • 가져온 데이터를 바탕으로 지각 횟수, 총 근무 시간 등을 복잡하게 계산(로직 처리)한다.
  5. 응답 생성 (요리 완성): WAS는 계산된 결과를 HTML이나 JSON 형태로 만들어 웹 서버에게 돌려준다.
  6. 최종 응답 (손님에게 서빙): 웹 서버는 WAS가 만든 결과물을 받아 사용자에게 최종적으로 전달한다.

 

이유

1. 기능을 분리하여 서버 부하 방지 (효율성)

  • 웹 서버: 정적인 파일(HTML, CSS, 이미지)만 처리하도록 특화되어 있다. 아주 빠르고 가볍다.
  • WAS: 복잡한 비즈니스 로직(근태 계산, 데이터 분석)에만 집중해야 한다.
  • 결과: 웹 서버가 앞단에서 가벼운 일들을 미리 쳐내줌으로써, WAS가 연산에만 전념할 수 있도록 부하를 줄여준다.

 

2. 보안 강화 (보안성)

  • WAS는 데이터베이스와 연결되어 있어 직접 외부에 노출되면 위험하다.
  • 웹 서버를 앞단에 두면 일종의 방패(Proxy) 역할을 한다. 외부 사용자는 웹 서버하고만 통신하고, 실제 데이터가 처리되는 WAS의 구조나 IP는 숨길 수 있다.

 

3. 여러 대의 WAS 연결 가능 (확장성/로드 밸런싱)

  • 사용자가 갑자기 몰려 요리사(WAS) 한 명으로 부족할 때, 웹 서버는 여러 명의 요리사(WAS 1, WAS 2, WAS 3)에게 주문을 골고루 나눠줄 수 있다.
  • 이를 로드 밸런싱(Load Balancing)이라고 한다.

 

4. 무중단 서비스 운영 (가용성)

  • 요리사(WAS) 한 명이 아파서 잠시 쉬어야 하거나(업데이트/점검), 갑자기 쓰러져도(장애 발생) 웹 서버가 다른 요리사에게 주문을 넣으면 된다.
  • 사용자는 서비스가 멈췄다는 사실을 모른 채 계속 이용할 수 있다.

 

면접 답변식 요약

웹 서버는 정적인 콘텐츠(HTML, 이미지 등)를 처리하는 데 특화되어 있고, WAS는 DB 연동이나 복잡한 로직을 수행하는 동적인 콘텐츠 처리에 특화되어 있습니다. 두 서버를 함께 사용하는 가장 큰 이유는 부하 분산보안, 그리고 서비스의 안정성 때문입니다.