인프런 커뮤니티 질문&답변

임원기님의 프로필 이미지

작성한 질문수

스프링 부트 - 핵심 원리와 활용

정리

Tomcat에 대해 질문드립니다.

해결된 질문

작성

·

767

1

안녕하세요. 강의를 보고 궁금한 점이 생겨 질문드립니다.

Java 진영에서 말하는 WAS의 정의를 보면

'웹 애플리케이션 서버는 대부분이 자바 기반으로 주로 자바 EE 표준을 수용하고 있으나, 자바 기반이지만 자바 EE 표준을 따르지 않는 제품과 .NET이나 Citrix 기반인 비 자바 계열도 존재한다' 라고 설명되어있습니다.

Tomcat은 아파치 재단에서 만든 웹 컨테이너(서블릿 컨테이너)만 있는 WAS라고 설명하는데

웹 컨테이너만 지원하는 Tomcat을 WAS라고 할 수 있는건지 궁금합니다.

답변 1

9

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 임원기님

원칙적으로 WAS는 웹 애플리케이션 서버라고 불리고 애플리케이션 로직을 수행할 수 있는 웹 서버라는 뜻입니다. 여기서 웹은 HTTP 기반으로 동작하는 서버라고 이해하시면 됩니다.

그런데 자바 진영에서는 이 부분이 Java EE와 함께 섞여서 이야기가 되는 부분이 있습니다.

지금은 Jakarta EE로 불리는 Java EE안에는 다양한 기능이 포함되어 있습니다.

예를 들면 서블릿, JPA로 불리는 Java Persistence, 분산 트랜잭션 기능 등이 포함됩니다.

오래전 과거 자바 진영에서는 이런 기능을 모두 지원하는 값비싼 서버 소프트웨어를 WAS라고 부르기도 했습니다. 대표적으로 IBM 웹스피어, BEA의 웹로직 등이 있었습니다.

그런데 스프링의 등장 이후로 서블릿을 제외한 나머지 부분을 스프링이 대부분 담당하게 되면서 이런 값비싼 서버 소프트웨어 없이 서블릿을 지원하는 톰캣과 스프링의 조합으로 엔터프라이즈 환경에서 동작하는 WAS를 구축할 수 있게 되었습니다.

그래서 지금은 자바 진영에서 사용하는 WAS라는 용어가 꼭 Java EE를 사용하지 않아도, 서블릿 컨테이너를 포함하면서 애플리케이션 로직을 수행할 수 있는 웹 서버라면 WAS라는 용어를 사용합니다. 심지어 더 나아가서 서블릿 컨테이너를 포함하지 않아도 웹 서버 역할을 하면서 애플리케이션 로직을 수행할 수 있다면 WAS라고 합니다.

감사합니다.