Spring MVC에서의 WAS

이건우·2025년 3월 15일

웹 프로그래밍

목록 보기
22/43

Spring MVC에서 WAS의 역할

WAS == Servlet 기반의 웹 애플리케이션 프레임워크를 실행하고,
클라이언트 요청을 처리하는 핵심 요소

DispatcherServlet을 중심으로 동작하는 Spring MVC 에서,
WAS는 이 서블릿을 실행하는 환경을 제공한다.

Spring MVC 요청 처리 과정 (WAS 관점)

  1. 사용자가 웹 브라우저에서 http 요청
  2. 웹 서버(Apache, Nginx) 가 요청을 WAS(Tomcat, JBoss 등) 로 전달
  3. WAS 내부의 서블릿 컨테이너가 DispatcherServlet을 실행
  4. DispatcherServlet이 요청을 HandlerMapping을 통해 적절한 컨트롤러로 전달
  5. 컨트롤러 에서 여러 계층을 거쳐(혹은 직접) DB를 조회
  6. 조회된 데이터를 ModelAndView 또는 JSON 형태로 반환
  7. WAS가 최종적으로 클라이언트에게 응답을 전송

결론

WAS는 DispatcherServlet을 실행하는 서블릿 컨테이너 역할을 하며,
요청을 적절한 컨트롤러로 연결하는 핵심 기능을 수행한다.

Spring MVC 기반 WAS의 주요 역할

역할설명
서블릿 컨테이너 제공DispatcherServlet, Filter, Listener 실행 환경 제공
HTTP 요청 처리클라이언트 요청을 받고 적절한 컨트롤러로 전달
세션 관리사용자 로그인 유지 및 세션 쿠키 관리
보안 처리Spring Security 등과 연동하여 인증 및 인가 처리
멀티스레딩다수의 요청을 처리하기 위해 여러 개의 스레드 실행
로드 밸런싱여러 WAS 서버를 운영하여 트래픽을 분산 처리
데이터 소스 관리Connection Pool(JDBC, HikariCP) 등을 통해 DB 연결 관리

Spring MVC + WAS 아키텍처

Spring MVC 어플리케이션과 WAS가 함께 동작하는 구조
[클라이언트]
↓ (HTTP 요청)
[웹 서버: Nginx, Apache]
↓ (정적 리소스 처리, WAS 전달)
[WAS: Tomcat, JBoss, WebLogic]
↓ (DispatcherServlet 실행)
[Spring MVC 컨트롤러]
↓ (Service -> Repository)
[DB]

  • 웹 서버(Nginx, Apache): 정적 리소스(CSS, JS, 이미지) 제공 및 요청을 WAS로 전달
  • WAS(Tomcat, JBoss, WebLogic): Spring MVC 기반의 웹 애플리케이션 실행
  • Spring MVC 컨트롤러: 비즈니스 로직 수행 후 응답 반환
  • DB(MySQL, MariaDB): 데이터를 저장 및 조회

정리

  • Spring MVC에서 WAS는 DispatcherServlet을 실행하는
    서블릿 컨테이너 역할을 수행한다.
  • Spring MVC 요청 처리 순서 : 웹 서버(Nginx) → WAS(Tomcat) → 컨트롤러 → DB
profile
새싹개발자

0개의 댓글