728x90
[ 모델 1 ]
크롬이나 익스플로어같은 브라우저를 사용하여 네이버에게 Request(요청)을 하면 JSP파일안에서 DB와 연동하여 데이터를 가공하고 사용자에게 Response(응답)한다.
- JSP에서 비즈니스 로직(로그인 요청을 했을때, 입력한 아이디와 비밀번호가 DB에 있는지 확인하는 작업 등), View 모두 처리(로그인 이후에 보여지는 화면)
- 구조가 단순하여 익히기 쉬움
- 구현이 익숙하고, 작은 단위의 어플리케이션에 적합
- 출력을 위한 뷰와 로직 처리를 위한 자바 코드가 섞여 있기 때문에 JSP 코드의 복잡성이 증가 -> 스파게티 코드
- 업무 분업이 어려움
JSP가 모든 일을 담당한다.
[ 모델 2 ]
- JSP에서 모든 것을 담당하던 모델1 방식과 달리 뷰를 담당하는 JSP페이지와 비즈니스 로직을 위한 서블릿 클래스로 나누어서 브라우저의 요청을 처리함
- 요청이 들어오면 로직 처리는 모델(서블릿)이 담당하고, 요청 결과를 보여주는 뷰는 JSP 가 담당하고, 이를 위한 흐름 제어를 컨트롤러인 서블릿이 담당하는 구조
- 출력을 위한 뷰와 로직을 위한 자바 코드가 분리되어 View를 담당하는 코드가 복잡하지 않음
- 뷰, 로직처리에 대한 분업이 좋고, 유지보수성이 좋음
- 모델 1에 비하여 설계가 어려움
[ MVC(Model-View-Controller) ]
- SW공학에서 사용되는 디자인 패턴
- 어플리케이션의 역할을 모델, 뷰, 컨트롤러로 구분
- 모델: 정보(데이터)
- 서비스 클래스, 자바빈으로 비즈니스 로직을 처리하는 모든 것들
- 뷰: 텍스트, 체크박스 등과 같은 HTML로 표현되는 사용자 인터페이스
- JSP와 같은 클라이언트에 출력되는 화면
- 컨트롤러: 데이터와 비즈니스 로직 사이의 상호동작
- MVC패턴의 모든 흐름 제어를 맡는다.
- 모델: 정보(데이터)
- MVC 패턴을 웹 개발에 도입한 구조를 Model2라고 한다.
DispatcherServlet(Front Controller)
- 클라이언트의 요청을 수신한다.
Handler Mapping
- 요청된 URL과 맵핑되는 Controller 검색
Handler Adapter
- Handler Mapping이 검색한 컨트롤러에게 DispatcherServlet의 명령을 받아 요청에 대한 처리를 시킨다.(invoke)
Controller
- 처리된 결과를 ModelAndView객체에 담아서 DispatcherServlet에게 반환한다.
ViewResolver
- Controller의 작업 결과를 어떤 View에게 보여줄 것인지를 결정한다.
View
- 결과를 화면에 출력하면서 사용자의 요청에 대한 응답을 한다.
728x90
'BackEnd > Spring' 카테고리의 다른 글
SpringMVC_게시판_기능정리_국비 (0) | 2022.07.15 |
---|---|
SpringLegacyProject_SpringSecurity적용하기 (0) | 2022.07.12 |
Spring_Day5_SpringLifeCycle (0) | 2022.07.11 |
Spring_Transaction_국비_Day89 (0) | 2022.07.08 |
Spring_AOP_국비_Day87 (0) | 2022.07.06 |