반응형
MVC(Model-View-Controller) 패턴의 개념
Model - View - Controller, MVC 는 소프트웨어 공학에서 사용되는 아키텍처 패턴으로 MVC 패턴의 주 목적은 Business logic과 Presentation logic을 분리하기 위함이다.
MVC 패턴을 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있음.
- Model : 애플리케이션의 정보(데이터, Busniness Logic 포함)
- View : 사용자에게 제공할 화면 (Presentation Logic)
- Controller : Model과 View 사이의 상호 작용을 관리

컨트롤러(Controller)
- 클라이언트의 요청을 받았을 때 그 요청에 대해 실제 업무르 수행하는 모델 컴포넌트를 호출하는 일을 함(=service객체)
- 클라이언트가 보낸 데이터가 있다면 모델을 호출할 때 전달하기 쉽게 데이터를 적절히 가공하는 일을 함
- 모델이 업무 수행을 완료하면, 그 결과를 가지고 화면을 생성하도록 뷰에게 전달(데이터 형태)
- Servlet과 JSP를 사용하여 작성할 수 있음
뷰(View)
- (SPA) 주로 Json 형태로 가져와서 HTML/CSS/JS 로 바인딩 하는 형태이다.
- HTML과 JSP를 사용하여 작성
모델(Model)
- 주로 데이터 처리를 담당한다.(DB에서 데이터를 가져온다), DAO클래스, Service 클래스에 해당, VO(Domain객체)
Front Controller 패턴 아키텍처
: 미리 내장 되어 있는 로직, Front Controller가 미리 Controller를 공통 내용을 미리 작성해주므로 편리하다.

- Front Controller는 클라이언트가 보낸 요청을 받아서 공통적인 작업을 먼저 수행
- Front Controller는 적절한 세부 Controller에게 작업을 위임
- 각각의 애플리케이션 Controller는 클라이언트에게 보낼 뷰를 선택해서 최종 결과를 생성하는 작업
- Front Controller 패턴은 인증이나 권한 체크처럼 모든 요청에 대하여 공통적으로 처리해야 하는 로직이 있을 경우 전체적으로 클라이언트의 요청을 중앙 집중적으로 관리하고자 할 경우에 사용

Spring MVC의 특징
- Spring은 DI나 APO 같은 기능뿐만 아니라, 서블릿 기반의 웹 개발을 위한 MVC 프레임워크를 제공
- Spring MVC는 모델2 아키텍처와 Front Controller 패턴을 프레임워크 차원에서 제공 (=내장)
- DispatcherServlet이라는 클래스를 계층의 맨 앞단에 놓고, 서버로 들어오는 모든 요청을 받아서 처리하도록 구성
- 예외 발생했을때 처리하는 것도 Front Controller이다.
- Spring MVC 프레임워크는 Spring을 기반으로 하고 있기 때문에 Spring이 제공하는 트랜잭션처리나 DI 및 AOP등을 손쉽게 사용
Spring MVC의 주요 구성 요소


*3번 Controller가 개발자가 개발해야할 부분.




반응형
'Spring > [강의] Spring FrameWork' 카테고리의 다른 글
[Spring 9강] HTTP 파라미터 처리 (0) | 2021.02.18 |
---|---|
[Spring 8강] @Controller (0) | 2021.02.17 |
[Spring 6강] - Layered Architechture (0) | 2021.02.16 |
[Spring 강의 5장] - Dependency Injection (0) | 2021.02.16 |
[Spring 4강] IoC(Inversion of Control) (0) | 2021.02.15 |