포도가게의 개발일지
[Spring] MVC 패턴 본문
반응형
View Templates engine?
- 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어(또는 소프트웨어 컴포넌트)를 말한다.
why?
- 각각의 유저마다 입력 자료를 합성하여 서로 다른 결과 문서를 출력해 주어야 하기 때문에
- 많은 코드를 줄일 수 있다
- 재사용성이 높다(웹페이지 혹은 웹앱을 만들 때 똑같은 디자인의 페이지에 보이는 데이터만 바뀌는 경우가 굉장히 많다.)
- 유지보수에 용이하다
MVC?
- 모델 - 뷰 - 컨트롤러(Model - View - Controller, MVC)는 소프트웨어공학에서 사용되는 아키텍쳐 패턴으로 MVC 패턴의 주 목적은 Business logic과 Presentation logic을 분리하기 위함이다.
why?
- MVC패턴을 사용하면, 사용자 인터페이스로부터 비지니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비지니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있음
-> 대부분 기능별로 코드를 분할하여 코드 수정에도 서로 영향을 주지않고 쉽게 유지보수하기위해 개선되는 방향으로 가는 것 같다.
Model
- 데이터 저장소와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 일을 함
- DAO클래스 Service 클래스에 해당
- 여러 개의 데이터 변경작업(추가, 변경, 삭제)을 하나의 작업으로 묵는 트랜잭션을 다루는 일도 함
View
- 모델이 처리한 데이터나 그 작업 결과를 받아와 사용자에게 출력할 화면을 만드는 일을 함
- HTML과 JSP를 사용하여 작성할 수 있음
Controller
- 클라이언트의 요청을 받았을 때 그 요청에 대해 실제 업무를 수행하는 모델 컴포넌트를 호출하는 일을 함
- 클라이언트가 보낸 데이터가 있다면, 모델을 호출할 때 전달하기 쉽게 데이터를 적절히 가공하는 일을 함
- 모델이 업무 수행을 완료하면, 그 결과를 가지고 화면을 생성하도록 뷰에게 데이터를 전달
- Servlet과 JSP를 사용하여 작성할 수 있음
- 클라이언트의 요청이 Dispatcher Servlet에게 전달된다.
- DIspatcheServlet은 HandlerMapping을 사용하여 클라이언트의 요청을 처리할 Controller를 획득한다.
- DispatcherServlet은 Controller 객체를 이용하여 클라이언트의 요청을 처리한다.
- Controller는 클라이언트 요청 처리 결과와 View페이지 정보를 담은 ModelAndView 객체를 반환한다.
- DispatcherServlet은 ViewResolver로부터 응답 결과를 생성할 View 객체를 구한다.
- 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