참치코더의 꿈 메모장

스프링 MVC 패턴, 프론트 컨트롤러 패턴 미니정리 본문

Spring

스프링 MVC 패턴, 프론트 컨트롤러 패턴 미니정리

참치깡 2025. 9. 7. 15:16
728x90

1. 스프링 MVC 패턴이란?

 

- 웹 요청을 처리하는데 사용하는 MVC 아키텍처를 스프링이 편리하게 지원해 주는 것

 

- Model(모델) -> 데이터, 비즈니스 로직

- View(뷰) -> 화면(UI)

- Controller(컨트롤러) -> 요청을 받아서 모델을 호출하고, 결과를 뷰에 전달

 

프론트 컨트롤러 패턴

 

- 스프링 웹, 스프링 부트 포함해서 근본은 프론트 컨트롤러 패턴이다.

 

요청 처리 전체 흐름

 

- 브라우저 -> @RequestMapping("접속하고자 하는 url"), 빈 등록 -> DispatcherServlet

 -> 핸들러 매핑(RequestMappingHandlerMapping) -> 핸들러 어댑터 호출(RequestMappingHandlerAdapter)

->  (인자 바인딩) 컨트롤러 실행 -> (반환값 처리) Model & View 생성 -> 뷰 리졸버 -> 뷰 렌더링(JSP forward)

-> 응답 완료

 

 

브라우저 요청
      │
      ▼
+---------------------+
| DispatcherServlet   |  ← 프론트 컨트롤러
+---------------------+
      │
      ▼
+---------------------+
HandlerMapping      |  ← 어떤 컨트롤러 호출할지 결정
+---------------------+ 
      │
      ▼
+---------------------+
HandlerAdapter      |  ← 호출 준비 (파라미터 바인딩 등)
+---------------------+
      │
      ▼
+---------------------+
Controller          |  ← 비즈니스 로직 처리
+---------------------+
      │
      ▼
ModelAndView 반환
(뷰 이름 + 데이터)
      │
      ▼
+---------------------+
ViewResolver        |  ← 뷰 이름 → 실제 JSP 파일 경로
+---------------------+
      │
      ▼
+---------------------+
View (JSP) 렌더링  |  ← 모델 데이터를 사용해 HTML 생성
+---------------------+
      │
      ▼
브라우저 응답

 

 

아리송한 부분 정리

 

** mv.addObject("member", member);

- 스프링이 제공하는 ModelAndView를 통해 Model 데이터를 추가 할때는 addObject( )를 사용하면 된다.

- 이 데이터는 이후 뷰를 렌더링 할 때 사용된다.

 

** return new ModelAndView("new-form");

- new-form으로 이름을 등록하면 뷰 리졸버가 해당 이름으로 관련 뷰를 찾아서 할당 해준다.

 

728x90
Comments