Spring〃스프링 MVC 패턴의 흐름

반응형


스프링 프레임워크 기반으로 게시판을 짜기 위해 MVC(Model / View / Controller) 패턴을 사용할 예정이라 이번글에서 정리해보도록 하겠습니다.


스프링 MVC 패턴은 좀 복잡한 구조를 가지고 있지만, 며칠전에 스프링 모델설계를 정리했던 글을 보고 오시면 이해가 빨리 될거라 생각합니다. 일단 빠른 진행을 위해 저번에 만들었던 사진을 아래에 첨부하겠습니다.


-  SpringFrameWork 모델 설계 사진 -


도움되는글 → 스프링 프레임워크의 MVC 모델 구조


저번글에서 설명했듯이 Controller(서블릿)와 Model(JavaBean) 그리고 View(JSP)가 서로 상호작용하면서 유지보수가 쉽게 원활한 구조를 가지고 있고, 요번글에서는 단지 어려운 용어가 새로 생겨났을뿐이지 흐름은 비슷합니다. 밑에서부터는 정리가 한눈에 들어오도록 영어단어를 한글로 번갈아 가면서 작성하겠습니다.




MVC패턴의 흐름



MVC의 흐름은 위 사진과 같습니다. 딱 사진만 보면은 복잡해 보이지만 순서대로 따라가보면 전혀 어렵지 않은데요. 간단하게 요약해보면 웹브라우저→ 디스패쳐서블릿→ 컨트롤러→ 모델앤뷰→ 컨트롤러→ 디스패쳐서블릿→ 웹브라우저로 절차를 밟게 되고 화면에 출력하기 위해 View와 ViewRewolver가 있다고 생각하면 되겠습니다.


①  웹브라우저에게 정보요청을 받은 디스패쳐서블릿은 어느 컨트롤러에 해당 요청을 전송할지 결정 

② 디스패쳐 서블릿은 핸들러 매핑에 어느 컨트롤러를 사용할건지 물어봄. (URL로 링크)

③ 결정된 컨트롤러는 해당요청을 수행하게 됨

④ 해당요청을 처리한 컨트롤러는 디스패쳐서블릿에 결과를 보냄. 이 과정에서 Model이 생성되어 View(JSP)에서 같이 사용됨 

⑤ ModelAndView는 실제 JSP정보를 갖고 있지 않기 때문에 뷰리졸버가 실제 JSP이름으로 변환하여 해당 view를 검색함.

⑥ 검색한 결과를 View에 전송

⑦ View는 모든 과정에서 처리된 결과를 화면으로 표현함

마지막으로 디스패쳐서블릿이 웹브라우저에 최종결과를 출력


순서에 대한 부분을 자세하게 풀어 써봤는데 이해가 되시나요? 이 복잡한 흐름을 한번에 이해한다는건 제 생각에도 어려운것 같습니다. 저도 몇시간동안 용어검색과 MVC에 대한 흐름에 대해 머리 아프게 공부했거든요. 앞으로 추가적인 설명과 게시판을 만들다 보면 나아질거라 믿고 넘어가도록 하겠습니다.


요 글에 환경설정방법까지 정리하려고 했지만 생각해보니 나눠서 올리는게 좋을것 같아 다음글에 DispatcherServlet과 HandlerMapping의 설정방법에 대해 나눠서 정리하도록 할게요.

반응형