ssausand-sunny / cs-study

면접.. 붙으려면 CS 공부 해야겠지?
0 stars 0 forks source link

Dispatcher Servlet에 대해 설명해주세요. #65

Open Hunnibs opened 1 month ago

Hunnibs commented 1 month ago

Dispatcher Sevlet에 대해 설명해주세요.

예상 꼬리 질문 - 동작 과정에 대해서 설명해주세요.

들어가야 할 키워드 정리

Hunnibs commented 1 month ago
질문 답변

디스패처 서블릿이란 프론트 컨트롤러 패턴을 적용하기 위해 사용하는 서블릿으로 요청을 받아 요청을 처리하기 위한 컨트롤러에 매핑하는 역할을 수행합니다.

꼬리 질문

클라이언트에서 요청을 보냈을 때 필터를 거친 이후 스프링 컨테이너 내 디스패처 서블릿에서 요청을 받습니다. 디스패처 서블릿은 요청을 처리하기 위한 핸들러매핑을 이용해 적절한 컨트롤러를 찾아서 매핑시키고 요청을 실행하기 위해 적절한 핸들러 어댑터를 찾아 전달합니다. 컨트롤러 내에서 비즈니스 로직을 통해 요청을 처리한 이후 다시 디스패처 서블릿이 받아 클라이언트에게 요청 결과를 내려주면서 처리가 종료됩니다. 이 때 핸들러어댑터가 동작하는 사이에 인터셉터가 동작해서 데이터 변환이나 로깅 작업을 수행할 수 있습니다.

kgh2120 commented 1 month ago
예상 답변 Dispatcher Servlet이란 스프링 프레임워크에서 모든 요청을 받아 공통 작업을 처리한 후 요청에 대한 상세한 처리를 다른 클래스에게 위임을 해주는 프론트 컨트롤러 패턴의 구현체로 스프링 프레임워크의 유지보수성과 재사용성을 향상시켜주는 클래스입니다.
예상 꼬리 질문 답변 Dispatcher Servlet은 우선, Servlet Filter에 의해서 처리된 요청을 받아 인코딩, 국제화 등의 작업을 거친 후, Handler Mapping을 통해 요청을 처리할 컨트롤러 객체를 찾습니다. 이후 등록된 인터셉터의 로직을 처리한 후, 컨트롤러에게 요청을 전달하고, 그 결과에 대한 응답을 클라이언트에게 전달합니다. 이 과정에서 응답이 @Response body가 아니라면 view resolver를 통해 ModelAndView 객체를 만들어 리턴해줍니다.