멍두의 개발새발

[스프링] WAS WebApplicationServer란? 본문

Programming/Spring

[스프링] WAS WebApplicationServer란?

멍두 2024. 4. 10. 21:38
반응형

스프링을 공부하다보면 정말 많이 나오는 단어가 WAS이다.

 

🙄 음 뭔가 서블릿이 저기서 뭐가 되는것같은데.. 뭔가 동적인것같고 음..그래서 WAS가 뭐지?

WAS Web Application Server

WAS를 알기전에 알아 둬야 할 단어들에 대해 먼저 설명하겠다.

 

1. Client

  • 주로 웹 브라우저 (크롬, 사파리, 엣지 등등)
    • 웹 서버로부터 웹 페이지(HTML, 파일 등)를 가져오기 위해 대부분 HTTP로 통신

2. Web Server

  • Client(웹브라우저)로부터 HTTP요청을 받아 정적 컨텐츠를 제공해주는 컴퓨터 프로그램 (apache, IIS, nginx 등)
  • 정적 컨텐츠를 제공해주므로 빠르다

3. Web Container

  • 서블릿 컨테이너 라고도 불리며 자바 서블릿과 상호작용하여 서블릿, JSP 등에 대한 요청 처리 (Tomcat 등)
    • 자바 서블릿 : 자바를 이용하여 웹페이지를 동적으로 생성하는 프로그램

🥺 그래서 WAS가 뭔데!! 🥺

 

WAS 

동적 컨텐츠를 수행해주며 주로 데이터베이스 서버와 함께 실행이 됨
  • 정적 컨텐츠를 제공해주는 web server와의 차이점이자 이 was의 목적이라고 할 수 있음
  • 대표적인 기능 세가지
    1. 프로그램의 실행 환경, 데이터베이스 접속 기능 제공
    2. 여러개의 트랜잭션 관리
    3. 업무를 처리하는 비지니스 로직 수행
  • 동적 컨텐츠를 제공해주므로 webserver에 비해 느리다

 

스프링에서 자주 나오는 용어인 톰캣과 아파치에 대한 차이도 한번 알아보자

Tomcat vs Apache

  • Apache HTTP 서버 : 웹 서버 소프트웨어로 WebServer임 (80포트)
  • Tomcat : 아파치에서 개발한 웹 컨테이너만 있는 WAS임 (8080포트)

🤔 : Tomcat안에 Apache서버가 있는거아닌가요?

 

  • 엄밀히 말하자면 아니다
  • Tomcat만으로도 웹 시스템을 구성할수 있지만 대규모 시스템을 만드려면 아파치 서버와 연동하여 만들어야함
  • 따라서 기본적으로 Apache (webserver) <-> tomcat (was) 이런식으로 구성이됨
  • 통상적으로 그냥 저걸 아파치톰캣으로 부른다
  • 포트가 다르지만 결국 아파치를 통해 tomcat으로 이동하므로 알아서 8080포트로 연결해줌

결론

WAS란 동적 컨텐츠를 제공해주는 프로그램이다.
이때 webContainer가 서블릿 컨테이너라고도 불리며 동적컨텐츠를 제공해주고(톰캣) 이를 다시 WebServer가 Client로 전달해준다.
정적 페이지는 미리 만들어놓고 빨리 제공해줄 수 있으므로 모든 요청을 WAS가 처리하기보단 WebServer가 처리할수있는건 처리하고 동적으로 생성해야 하는 것만 WAS가 처리하는 것이 좋다.

 

출처 : Wikipedia

반응형