Framework/Spring

MVC 패턴

  • -
반응형
MVC(Model View Controller)

MVC 패턴은 모델1모델2로 나누어진다.

MVC는 사용자에게 보여지는 화면과 데이터를 처리하는 부분이 나누어져 있는 것을 의미한다.

 

Model : 데이터 처리 담당(DB와 연동하는 로직)

View : 화면 담당(디자인)

Controller : Model과 View사이의 통신 역할

 

모델1은 웹 브라우저의 요청을 뷰 단에서 받아 Jsp 단독으로 처리하는 방식이다.

간단히 말해 웹 브라우저의 요청을 처리하는 비즈니스 로직이 Jsp 페이지에 섞여있는 것이 모델1 구조이다.

모델2는 클라이언트의 요청과 처리를 담당하는 뷰 단과 비즈니스 로직을 처리하는 모델이 분리되어 있는 구조이다.

 

모델1은 구조가 단순하기 때문에 간단한 웹 페이지의 경우 효율적인 사용이 가능하다. 

반면에 흔히 얘기하는 백엔드, 프론트엔드의 개념이 사라져 분업이 힘든 단점이 있다.

 

모델2는 범위가 큰 프로젝트의 경우 사용하는 것이 좋다. 이유는 작업처리의 분리로 유지보수와 확장이 용이하기 때문이다. 하지만 설계와 구조가 복잡한 단점이 있다. 때문에 프로젝트의 규모와 성격을 고려해 적절하게 사용하는 것이 좋다.

 

간단한 설명은 이정도로 마치고 MVC 모델2의 구조를 알아보자.

 

< 기타 이미지 : google >

 

 

①웹 브라우저의 요청(Request)을 받는다.

②요청을 받은 Controller가 Model에게 요청처리를 한다.

③처리된 내용을 Controller에게 보낸다.

④View에게 처리결과를 보낸다.

⑤처리결과를 받은 View는 결과값(=응답, Response)을 웹에 뿌려준다.

 

조금 더 자세히 알아보면,

 

MVC는 프론트 컨트롤러와 함께 사용된다.

프론트 컨트롤러는 서버로부터 오는 모든 요청을 받아 처리한다.

스프링에서는 DispatcherServlet이라는 프론트 컨트롤러를 제공한다.

아래 그림의 순서를 따라가며 이해해 보자.

 

 

< 기타 이미지 : google >

 

 

①클라이언트(사용자)로부터 요청(Request)을 받는다.(URL 접근)

②해당 URL과 매핑이 되는 Controller를 검색한다.

③결정된 Controller에게 처리요청을 한다.

④해당요청을 처리한 Controller는 DispatcherServlet으로 결과를 보여줄 View의 이름을 리턴한다.

⑤Controller에서 보내온 View의 이름을 보내 해당 View를 검색한다.(ModelAndView는 실제 Jsp정보를 갖고 있지 않기 때문에 ViewResolver가 실제 Jsp이름으로 변환하여 해당 뷰를 검색한다)

⑥검색 결과를 View로 보낸다.

⑦처리된 결과를 화면으로 표현한다.

결과값(=응답, Response)을 웹에 뿌려준다.

 


+피드백은 언제나 환영입니다 :)

 

 

반응형
Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.