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