✅ Front Controller란?

클라이언트의 모든 요청을 한 곳에서 먼저 받아서,

처리 흐름을 공통으로 관리하고 → 실제 처리할 컨트롤러로 전달하는 방식


📦 MVC 구조에서의 위치

[사용자 브라우저]
      ↓
[Front Controller]  ← 바로 이게 핵심!
      ↓
[핸들러 매핑 → 컨트롤러 찾기]
      ↓
[컨트롤러 실행 → 서비스 → DAO]
      ↓
[Model + View 리턴]
      ↓
[ViewResolver → JSP 렌더링]
      ↓
[HTML 응답]

✅ Spring MVC의 Front Controller = DispatcherServlet

스프링에서는 DispatcherServlet이 Front Controller 역할을 함!


🧠 예시로 이해해보기

1. 사용자가 URL 요청함

GET /members/list

2. DispatcherServlet이 먼저 받음

→ web.xml (전통 방식) 또는 SpringBoot 자동 설정
→ 모든 요청을 DispatcherServlet이 받도록 설정됨

3. DispatcherServlet의 처리 흐름

순서 처리 역할
1 HandlerMapping에게 "어떤 컨트롤러가 처리해야 하냐?" 물어봄
2 해당 컨트롤러 메서드 호출
3 컨트롤러가 ModelAndView 리턴
4 ViewResolver가 view 이름을 JSP 경로 등으로 변환
5 최종적으로 HTML 렌더링해서 응답 반환