포도가게의 개발일지

[Spring] MVC 패턴 본문

Spring boot

[Spring] MVC 패턴

grape.store 2022. 1. 4. 17:24
반응형

View Templates engine?

- 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어(또는 소프트웨어 컴포넌트)를 말한다.

why?

- 각각의 유저마다 입력 자료를 합성하여 서로 다른 결과 문서를 출력해 주어야 하기 때문에

- 많은 코드를 줄일 수 있다
- 재사용성이 높다(웹페이지 혹은 웹앱을 만들 때 똑같은 디자인의 페이지에 보이는 데이터만 바뀌는 경우가 굉장히 많다.)
- 유지보수에 용이하다

 

https://www.youtube.com/watch?v=Y_gkH0nLMY8&list=PLyebPLlVYXCiYdYaWRKgCqvnCFrLEANXt&index=4

 

MVC?

- 모델 - 뷰 - 컨트롤러(Model - View - Controller, MVC)는 소프트웨어공학에서 사용되는 아키텍쳐 패턴으로 MVC 패턴의 주 목적은 Business logic과 Presentation logic을 분리하기 위함이다.

why?

- MVC패턴을 사용하면, 사용자 인터페이스로부터 비지니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비지니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있음
-> 대부분 기능별로 코드를 분할하여 코드 수정에도 서로 영향을 주지않고 쉽게 유지보수하기위해 개선되는 방향으로 가는 것 같다.

Model

  • 데이터 저장소와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 일을 함
  • DAO클래스 Service 클래스에 해당
  • 여러 개의 데이터 변경작업(추가, 변경, 삭제)을 하나의 작업으로 묵는 트랜잭션을 다루는 일도 함

View

  • 모델이 처리한 데이터나 그 작업 결과를 받아와 사용자에게 출력할 화면을 만드는 일을 함
  • HTML과 JSP를 사용하여 작성할 수 있음

Controller

  • 클라이언트의 요청을 받았을 때 그 요청에 대해 실제 업무를 수행하는 모델 컴포넌트를 호출하는 일을 함
  • 클라이언트가 보낸 데이터가 있다면, 모델을 호출할 때 전달하기 쉽게 데이터를 적절히 가공하는 일을 함
  • 모델이 업무 수행을 완료하면, 그 결과를 가지고 화면을 생성하도록 뷰에게 데이터를 전달
  • Servlet과 JSP를 사용하여 작성할 수 있음

MVC 패턴
spring mvc 처리 과정

 

  1.  클라이언트의 요청이 Dispatcher Servlet에게 전달된다.
  2.  DIspatcheServlet은 HandlerMapping을 사용하여 클라이언트의 요청을 처리할 Controller를 획득한다.
  3.  DispatcherServlet은 Controller 객체를 이용하여 클라이언트의 요청을 처리한다.
  4.  Controller는 클라이언트 요청 처리 결과와 View페이지 정보를 담은 ModelAndView 객체를 반환한다.
  5.  DispatcherServlet은  ViewResolver로부터 응답 결과를 생성할 View 객체를 구한다.
  6.  View는 클라이언트에게 전송할 응당을 생성산다.

 

'Spring boot' 카테고리의 다른 글

[Spring] 생성자주입? 필드주입? 세터주입?  (0) 2022.01.05
[Java] Java 원시타입 vs 참조타입  (0) 2022.01.05
[Spring] CRUD  (0) 2022.01.05
spring boot 시작하기  (0) 2022.01.03
Spring boot?  (0) 2022.01.03
Comments