Spring

[Spring] MVC 8편 - 프론트 컨트롤러 v4

dev-nadan 2025. 8. 12. 21:26

1. v3의 한계

  • 컨트롤러가 ModelView 객체를 매번 직접 생성해야 함 → 약간 번거롭다.

2. 개선 아이디어

  • 모델은 파라미터로 전달, 컨트롤러는 단순히 논리 뷰 이름만 반환.
  • 프론트 컨트롤러가 모델 객체를 미리 생성 후 컨트롤러에 전달.

3. 핵심 구조

public interface ControllerV4 {
    String process(Map<String, String> paramMap, Map<String, Object> model);
}

 

  • 반환값: 뷰 이름(String)
  • model 파라미터: 프론트 컨트롤러가 미리 생성해서 제공.

4. 실행 흐름

  1. 프론트 컨트롤러가 model을 생성 후 컨트롤러에 넘김.
  2. 컨트롤러는 model에 데이터 추가 후 뷰 이름 반환.
  3. 프론트 컨트롤러가 뷰 리졸버 → MyView로 렌더링.

5. 회고

v3보다 훨씬 개발자가 작성하기 편리했다.

뷰 이름만 리턴하면 되고, 모델 객체도 그냥 받아서 쓰면 된다.

프레임워크가 ‘귀찮은 일’을 대신해주니 개발자는 핵심 비즈니스 로직에만 집중 가능하다.