Spring〃스프링 MVC 패턴의 흐름

2018.01.23 14:35

졸리운_곰 조회 수:138

Spring〃스프링 MVC 패턴의 흐름

 

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

 

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

 

-  SpringFrameWork 모델 설계 사진 -

 

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

 

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

 

 

 

MVC패턴의 흐름

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

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

 

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

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

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

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

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

⑥ 검색한 결과를 View에 전송

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

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

 

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

 

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



출처: http://hunit.tistory.com/189 [HunIT Blog]

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
86 Spring Form데이터 컨트롤러에서 처리 file 졸리운_곰 2018.01.24 65
» Spring〃스프링 MVC 패턴의 흐름 file 졸리운_곰 2018.01.23 138
84 Spring 태그 <form:form> <form:select> 졸리운_곰 2018.01.23 51
83 JSTL substring 문자열 자르기 졸리운_곰 2018.01.19 178
82 forEach를 이용해서 JSTL로 출력하기 졸리운_곰 2018.01.18 562
81 JSP JSTL Map 사용 하기 졸리운_곰 2018.01.18 50
80 Jsp〃[EL]과 [JSTL] 한방에 정리 + Core file 졸리운_곰 2018.01.18 87
79 [Oracle] java.sql.SQLSyntaxErrorException: ORA-00911: 문자가 부적합합니다 졸리운_곰 2018.01.18 50
78 스프링(Spring) 개발 - (18) 페이징 (jQuery와 Ajax) file 졸리운_곰 2018.01.17 176
77 스프링(Spring) 개발 - (17) 페이징 (전자정부 프레임워크 이용) file 졸리운_곰 2018.01.17 455
76 스프링(Spring) 개발 - (16) AOP 설정하기 (부제: Controller에도 AOP 적용하기) file 졸리운_곰 2018.01.17 80
75 스프링(Spring) 개발 - (15) 파일 업로드 & 다운로드 (3/3) file 졸리운_곰 2018.01.17 239
74 스프링(Spring) 개발 - (14) 파일 업로드 & 다운로드 (2/3) file 졸리운_곰 2018.01.17 198
73 스프링(Spring) 개발 - (13) 파일 업로드 & 다운로드 (1/3) file 졸리운_곰 2018.01.17 219
72 스프링(Spring) 개발 - (12) 게시판을 만들자! - 게시판 상세 및 등록 file 졸리운_곰 2018.01.17 173
71 스프링(Spring) 개발 - (11) HandlerMethodArgumentResolver 적용 file 졸리운_곰 2018.01.17 42
70 스프링(Spring) 개발 - (10) 게시판을 만들자! - 게시판 목록 file 졸리운_곰 2018.01.17 114
69 스프링(Spring) 개발 - (9) Mybatis (마이바티스) 연동하기 file 졸리운_곰 2018.01.17 59
68 스프링(Spring) 개발 - (8) 로그 (Log4j) 및 인터셉터 (Interceptor) 설정 file 졸리운_곰 2018.01.17 76
67 스프링(Spring) 개발 - (7) Spring MVC 구조 및 설정파일 file 졸리운_곰 2018.01.17 168
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED