톰캣에 대해서 설명해주세요.
분야: 백엔드
Tomcat
웹 서버와 웹 컨테이너의 결합한 형태입니다. 현재 가장 일반적이고 많이 사용되는 WAS입니다. 컨테이너, 웹 컨테이너, 서블릿 컨테이너라고도 부릅니다. JSP와 서블릿 처리, 서블릿의 수명 주기 관리, 요청 URL을 서블릿 코드로 매핑, HTTP 요청 수신 및 응답, 필터 체인 관리 등을 처리해줍니다.
서블릿이 무엇인가요? 🤔
서블릿은 자바를 이용해 웹 서비스를 만들기 위한 스펙입니다. 클라이언트가 프로그램으로 요청을 보내면 그 요청에 대한 결과를 응답해주기 위해서 사용됩니다. 서블릿은 다음과 같이 동작합니다.
- 사용자가 URL을 입력하면 사용자의 요청이 서블릿 컨테이너로 전송됩니다.
- 요청을 받은 컨테이너는 HttpServletRequest, HttpServletResponse를 생성합니다.
- 서블릿 매핑 정보를 이용해 사용자가 요청한 경로를 처리할 수 있는 서블릿을 찾습니다.
- 서블릿의 service 메서드를 호출하고 HTTP 메서드 여부에 따라서 doGet(), doPost()를 호출합니다.
- 각 메서드는 요청을 처리하고 HttpServletResponse 객체를 이용해 응답을 처리합니다.
서블릿의 생명주기는 어떻게 되나요? 🤓
사용자의 요청이 들어오면 서블릿 컨테이너가 서블릿이 존재하는지 확인하고 없는 경우 init() 메서드를 호출하여 생성합니다. 이후 요청은 service() 메서드를 실행합니다. 만약 서블릿에 종료 요청이 들어오는 경우에는 destroy() 메서드를 호출합니다.