원본
How Spring MVC Works Internally
'우체국'에서 시작해서 '우체부'에게 전달되고, 최종적으로 사용자에게 '택배'가 도착하는 과정으로 이해해보기
DispatcherServlet이 그 요청을 받음DispatcherServlet은 '지도'인 HandlerMapper에게 어떤 '우체부'(컨트롤러)가 이 편지(요청)를 배달해야 하는지 물어봄HandlerMapper는 지도를 보고 이 요청을 처리할 '우체부'(컨트롤러)를 찾아 DispatcherServlet에 알려줌DispatcherServlet은 해당 '우체부'(컨트롤러)에게 요청을 전달함/WEB-INF/views/profile.jsp에 위치해 있다고 해도, 컨트롤러에서는 이를 'profile'이라는 논리적 이름으로 참조할 수 있음DispatcherServlet에 반환하고, DispatcherServlet은 ViewResolver를 사용하여 이 논리적 이름에 해당하는 실제 뷰 파일의 경로를 찾아냄ViewResolver는 논리적 이름을 받아 실제 파일 경로로 변환하는 규칙을 가지고 있음'profile'이라면, ViewResolver는 이를 /WEB-INF/views/profile.jsp로 변환할 수 있음ViewResolver의 설정만 업데이트하면 되므로 애플리케이션의 유연성과 유지보수성이 향상DispatcherServlet은 '포장 직원'(ViewResolver)에게 '포장지'의 종류(뷰의 논리적 이름)를 알려주고, 실제로 사용할 '포장지'(뷰 파일)를 결정하도록 함. '포장 직원'는 이 논리적 이름을 바탕으로 애플리케이션에서 사용할 실제 '포장지'(뷰 파일)를 찾아 '우체부'에게 제공함DispatcherServlet에게 알려줌DispatcherServlet은 정보(모델)와 '상자'(뷰)를 '포장대'(View)로 보냄DispatcherServlet은 포장된 '택배'(HTML 응답)를 브라우저로 보내고, 브라우저는 그 '택배'를 열어 사용자에게 보여줌