😺 톰캣(WAS)
- Java Servlet, JavaServer Pages(JSP), Java Expression Language(EL)과 같은 Java 기술을 사용하여 동적인 웹 페이지를 생성하고,웹 어플리케이션을 실행
- 가볍고 빠르며, 모듈화된 아키텍처를 통해 필요한 기능만 선택하여 사용할 수 있습니다.
- 톰캣은 다양한 운영체제와 플랫폼에서 실행할 수 있다.
🤔 톰캣을 왜 사용할까 ?
- JSP 컴파일러 : 톰캣은 JSP 컴파일러인 Jasper를 내장하고 있어, JSP 페이지를 빠르고 효율적으로 실행할 수 있습니다.
- 서블릿 컨테이너 : 톰캣은 서블릿 컨테이너를 포함하고 있어, 웹 어플리케이션에서 서블릿을 실행하고 관리할 수 있습니다. 이를 통해, 동적인 웹 어플리케이션 개발이 용이해집니다.
서블릿
- 자바 언어로 작성된 서버 사이드 웹 어플리케이션의 구성 요소 중 하나로, HTTP 요청에 대한 동적인 처리를 담당
- 서블릿은 HTTP 요청에 대한 처리를 위한
doGet()
, doPost()
, doPut()
등의 메소드를 제공하며, 필요한 경우에는 init()
과 destroy()
등의 메소드를 오버라이딩하여 서블릿의 생명 주기를 관리할 수 있습니다.
서블릿 컨테이너
- 클라이언트로부터 요청을 받아, 해당 요청을 처리하는 서블릿을 호출하고, 서블릿의 실행 결과를 클라이언트에게 반환합니다.
- 서블릿의 생명 주기를 관리하고, HTTP 요청 및 응답 처리, 멀티 스레드 처리, 세션 관리, 보안 등 다양한 기능을 제공
- 서블릿 컨테이너로는 Apache Tomcat, Jetty, JBoss 등이 있습니다.
Coyote
- Tomcat의 HTTP 커넥터(클라이언트와 서버 간에 HTTP 요청과 응답을 주고받는 역할) 구현체
Catalina
- Tomcat의 서블릿 컨테이너 구현체
- 웹 어플리케이션의 시작과 종료, HTTP 요청 및 응답 처리, 세션 관리, JSP 컴파일 등을 수행
Jasper
- Tomcat의 JSP(JavaServer Pages / HTML과 Java 코드를 혼합하여 동적인 웹 페이지를 생성하는 기술) 컴파일러
- JSP 파일을 컴파일하여 서블릿 클래스로 변환하고, 그 결과를 서블릿 컨테이너(예: Tomcat의 Catalina)에 전달
📎 참고영상