WAS(Web Application Server)

2026. 4. 29. 22:00·Web

안녕하세요.

오늘은 웹 서비스의 핵심 엔진이자 백엔드 개발자라면 반드시 이해해야 하는 WAS(Web Application Server)에 대해 공부해보겠습니다.

 

 

WAS 의 개념

WAS(Web Application Server)는 클라이언트의 요청을 받아 비즈니스 로직을 수행하고 그 결과를 동적으로 생성하여 반환하는 서버입니다.

단순히 저장된 파일을 보내주는 웹 서버와 달리, 데이터베이스와 연동하여 사용자마다 다른 결과를 실시간으로 만들어내는 역할을 담당합니다.

WAS는 단순한 요청 처리를 넘어 회원가입, 로그인, 결제와 같은 실제 서비스의 핵심 기능이 수행되는 영역이라고 볼 수 있습니다.

 

 

웹 서버 vs WAS 차이

웹 서버와 WAS는 서로 역할을 나누어 협력하는 구조를 가집니다.

웹 서버는 정적인 요청을 빠르게 처리하고 WAS는 동적인 요청을 처리함으로써 전체 시스템의 성능을 최적화합니다.

구분 웹 서버 WAS
주요 역할 HTML, CSS, 이미지와 같은 정적 파일을 클라이언트에게 그대로 전달합니다. 클라이언트 요청을 처리하고 비즈니스 로직을 수행하여 동적인 결과를 생성합니다.
처리 방식 이미 만들어진 결과를 단순히 전달하는 방식으로 동작합니다. 프로그램을 실행하고 DB와 연동하여 새로운 결과를 생성합니다.
핵심 기능 HTTP 요청 처리, 정적 리소스 제공, 로드 밸런싱을 수행합니다. 비즈니스 로직 처리, DB 연동, 트랜잭션 관리 등을 담당합니다.

 

 

웹 서비스 구조

일반적인 웹 서비스는 클라이언트 → 웹 서버 → WAS → 데이터베이스 구조로 동작합니다.

예를 들어 사용자가 로그인 요청을 보내면, 웹 서버는 해당 요청을 WAS로 전달합니다.

이후 WAS는 데이터베이스에서 사용자 정보를 조회하고 비밀번호 검증과 같은 비즈니스 로직을 수행한 뒤, 결과를 다시 클라이언트에게 반환합니다.

 

 

WAS 의 핵심 특징

특징 설명
웹 컨테이너 Servlet, JSP를 실행할 수 있는 환경을 제공하며, 요청(Request)과 응답(Response) 객체의 생명주기를 관리합니다.
스레드 풀 요청마다 새로운 스레드를 생성하지 않고 미리 생성된 스레드를 재사용하여 다수의 요청을 효율적으로 처리합니다.
트랜잭션 관리 DB 작업 중 오류 발생 시 롤백을 수행하여 데이터의 일관성을 유지합니다.

 

 

WAS의 장점

장점 설명
성능 최적화 정적 리소스를 제외한 동적 리소스를 WAS가 처리하여 부담을 줄입니다.
보안 강화 웹 서버를 외부에 두고 WAS를 내부에 위치시켜 외부 공격으로부터 보호합니다.
확장성 여러 WAS를 두어 요청을 분산 처리할 수 있습니다.
통합성 데이터 베이스, 메시지 큐 등 백엔드 시스템과 연동하여 통합하기 용이합니다.

 

 

WAS의 단점

단점 설명
높은 자원 소모 웹 서버에 비해 메모리와 CPU 사용량이 많아 성능상 오버헤드가 발생할 수 있습니다.
정적 파일 처리 효율 저하 이미지나 CSS와 같은 정적 파일 처리는 웹 서버에 비해 성능이 떨어져 처리 효율이 저하합니다.
복잡한 설정 및 유지보수 설치 및 운영 환경이 복잡하여 설치, 설정, 유지보수가 어렵습니다.

 

 

WAS의 종류

종류 설명
Apache Tomcat 가장 널리 사용되는 오픈소스 WAS로, Servlet과 JSP를 실행할 수 있는 경량 컨테이너입니다. Spring 기반 애플리케이션에서 많이 사용됩니다.
JBoss (WildFly) Red Hat에서 제공하는 오픈소스 WAS로, Java EE(현재 Jakarta EE) 기반의 다양한 기능을 지원합니다.
WebLogic Oracle에서 제공하는 상용 WAS로, 대규모 엔터프라이즈 환경에서 안정성과 성능을 위해 사용됩니다.
WebSphere IBM에서 제공하는 상용 WAS로, 금융권과 같은 높은 안정성이 요구되는 환경에서 주로 사용됩니다.

 

 

WAS 보안 관점에서의 역할

WAS는 단순한 로직 처리 서버가 아니라 사용자 인증과 권한 검증을 담당하는 보안의 핵심 영역입니다.

또한 웹 서버와 WAS를 분리하면 외부에서는 웹 서버만 접근 가능하고 WAS는 내부망에 숨길 수 있어 보안성이 더욱 강화됩니다.

보안 요소 설명
인증 사용자가 로그인한 사용자임을 확인하고, 세션이나 JWT를 통해 신원을 검증합니다.
인가 사용자가 특정 기능이나 데이터에 접근할 수 있는 권한이 있는지 검사합니다.
입력값 검증 SQL Injection, XSS 등의 공격을 방지하기 위해 사용자 입력값을 검증합니다.
세션 관리 사용자의 로그인 상태를 유지하고 세션 탈취를 방지합니다.

 

 

마무리 정리

이번 글에서는 WAS의 개념과 역할, 그리고 웹 서버와의 차이에 대해 알아보았습니다.

WAS는 단순한 서버가 아니라 비즈니스 로직과 보안을 담당하는 핵심 엔진입니다.

웹 서버와 역할을 분리함으로써 성능, 보안, 확장성을 모두 확보할 수 있다는 점이 중요합니다.

 

읽어주셔서 감사합니다!

 

 

참조

  • https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
  • https://codechasseur.tistory.com/25
  • https://velog.io/@bky373/Web-%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-WAS
  • https://soso-hyeon.tistory.com/81
  • https://story.pxd.co.kr/1647
  • https://developer.mozilla.org/ko/docs/Learn/Common_questions/Web_server_vs_application_server
저작자표시 비영리 변경금지 (새창열림)

'Web' 카테고리의 다른 글

Nginx  (0) 2026.05.07
Proxy Server  (0) 2026.04.30
JWT(JSON Web Token)  (1) 2026.04.27
'Web' 카테고리의 다른 글
  • Nginx
  • Proxy Server
  • JWT(JSON Web Token)
으노로
으노로
  • 으노로
    study-library
    으노로
  • 전체
    오늘
    어제
    • 분류 전체보기 (42) N
      • Language (16)
        • JAVA (15)
        • JavaScript (1)
      • Framework (4) N
        • Spring (4) N
      • Web (4)
      • Infra (6)
      • Algorithm (10)
        • Programmers (10)
      • Database (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바
    분수의덧셈
    스프링
    programmers
    비동기 통신 방식
    spring
    inmemorydb
    알고리즘
    문자열 정렬하기
    eclipse
    OS
    코딩테스트
    transactional
    문자열정렬하기(2)
    java
    트렌잭션
    @transactional
    spring boot
    스프링부트
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
으노로
WAS(Web Application Server)
상단으로

티스토리툴바