25.02.24 TIL WAS와 WS

신성훈·2025년 2월 24일

TIL

목록 보기
137/162

1. WAS와 WS란?

웹 애플리케이션을 실행하는 환경에서 웹 서버웹 애플리케이션 서버는 각각 다른 역할을 수행합니다.

  • WS(Web Server): 정적인 콘텐츠(HTML, CSS, JS, 이미지 등)를 제공
  • WAS(Web Application Server): 동적인 웹 애플리케이션을 실행하고 클라이언트 요청을 처리

2. 웹 서버(Web Server, WS)

웹 서버는 클라이언트(브라우저)의 요청을 받아 정적인 리소스를 제공하는 서버입니다.
대표적인 웹 서버로는 Apache HTTP Server, Nginx 등이 있습니다.

웹 서버의 역할

  • 정적인 HTML, CSS, JavaScript, 이미지, 동영상 파일 제공
  • 클라이언트의 요청을 받아 응답 반환
  • 리버스 프록시(Reverse Proxy) 역할 수행 가능 (요청을 WAS로 전달)
  • 부하 분산(Load Balancing) 기능 수행 가능

웹 서버 동작 예제

클라이언트가 index.html을 요청하면 웹 서버가 해당 파일을 반환합니다.

GET /index.html HTTP/1.1
Host: example.com
  • 웹 서버는 단순히 정적인 리소스를 반환하는 역할을 수행

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

WAS는 사용자의 요청을 받아 동적인 웹 애플리케이션을 실행하는 서버입니다.
대표적인 WAS로는 Tomcat, JBoss, WebLogic, WebSphere 등이 있습니다.

WAS의 역할

  • 클라이언트의 요청을 받아 비즈니스 로직을 수행
  • 데이터베이스와 연동하여 동적인 응답 생성
  • 웹 서버와 통신하며 동적인 콘텐츠 제공
  • 보안 및 세션 관리 수행

WAS 동작 예제

사용자가 /login을 요청하면 WAS가 DB에서 사용자 정보를 조회하고 응답을 반환합니다.

POST /login HTTP/1.1
Host: example.com
Content-Type: application/json
{
    "username": "user",
    "password": "1234"
}
  • WAS는 동적인 요청을 처리하고 DB와 연동하여 응답을 생성

4. WS와 WAS의 차이점

구분웹 서버(WS)웹 애플리케이션 서버(WAS)
주요 역할정적인 콘텐츠 제공동적인 웹 애플리케이션 실행
처리 방식HTML, CSS, JS, 이미지 파일 반환비즈니스 로직 수행, DB 연동
예시Nginx, Apache HTTP ServerTomcat, JBoss, WebLogic
부하 분산클라이언트 요청을 WAS로 분배내부에서 요청 처리 및 DB 연동
실행 방식HTTP 요청을 처리하여 파일 반환Java, PHP, Python 등의 애플리케이션 실행

5. 웹 서버 + WAS 조합 아키텍처

웹 서비스에서는 웹 서버와 WAS를 함께 사용하는 구조가 일반적입니다.

  • 웹 서버(Nginx, Apache) → WAS(Tomcat, JBoss) → DB(MySQL, PostgreSQL)

요청 흐름

  1. 사용자가 브라우저에서 https://example.com/login을 요청
  2. 웹 서버(WS)가 요청을 받아 정적 리소스(index.html)를 제공
    • 동적인 요청(/login)일 경우 WAS로 전달
  3. WAS가 요청을 받아 비즈니스 로직 수행 및 데이터베이스 조회
  4. 처리된 데이터를 웹 서버를 통해 클라이언트에게 응답

6. 마무리

웹 서버는 정적 리소스를 제공하며 부하 분산 역할을 수행하고 WAS는 비즈니스 로직을 처리하고 동적인 응답을 생성 합니다.
실무에서는 Nginx(Apache) + Tomcat 조합을 자주 사용하며 트래픽이 많을 경우 웹 서버에서 부하 분산(Load Balancing)을 수행하는 것이 중요하다는 점을 다시 한번 느꼈습니다.

profile
조급해하지 말고, 흐름을 만들고, 기록하면서 쌓아가자.

0개의 댓글