일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오류종류
- R데이터분석
- PostgreSQL
- 개발
- Android
- 다른테이블에속해있습니다
- 파이썬
- 이행은이미다른테이블에속해있습니다
- 장고웹
- 장고프로젝트
- webkitrecognition
- 장고웹프로젝트
- 자바스크립트날짜get
- forof문
- 청소년복지론
- cmd명령어
- speechtoText
- speechAPI
- Python
- 자바스크립트for문
- 자바스크립트날짜형식
- javaScriptError
- 안드로이드
- 자바스크립트날짜
- 장고
- 이행은이미다른
- sqlite
- 자바스크립트forinforof차이
- 사례관리
- 자바스크립트수학
- Today
- Total
EMDI는 지금도 개발중
Spring에서 사용하는 MVC패턴 본문
1. MVC( Model - View - Controller)
MVC는 MVP, MVVM보다 훨씬 전에 나온 모델로, Model, View, Controller 각각에 대한 역할을 구분하여 독립적인 기능을 수행하도록 설계되었다.
간단히 스토리텔링식으로 설명하자면,
1) User가 검색을 요청(Request)한다.
2) Dispatcher가 User의 요청을 받고 그것을 Controller에게 전달
3) 요청(Request)을 받은 Controller는 그것을 Model한다
4) Model을 한 것을 User가 볼 수 있도록 View로 만든다
5) 완성된 View를 User가 본다
이렇게 MVC에서 View는 보여주기 위한 출력형식
모든 이벤트나 제어 가공부분은 Controller에 의해 처리된다.
Controller는 처리해야할 이벤트에 대해 Model을 조작하고 그 변경사항을 표하실 View를 선택한다
View는 항상 Model을 참조해야하기 때문에 View - Model간의 의존성이 생긴다
장점
- 3가지 패턴 중 구현에 있어서 가장 심플하다
단점
- View와 Model 간의 의존성이 있다
- 프로그램이 커질수록 가독성이 떨어지고 유지보수가 힘들어진다
2) MVP( Model - View - Presenter )
그 다음 MVC의 Model과 View간의 의존성 문제를 해결하기 위해 설계된 MVP
MVC패턴에서는 Controller가 이벤트 처리만 하고 View를 업데이트 하는 것에 영향을 미치지 않는 것과 달리,
MVP의 Presenter는 모델을 조작한 결과를 다시 돌려받아서 직접 View를 업데이트 시킨다.
따라서 Model과 View의 연결고리는 Presenter를 통해서만 이루어진다
전에 MVC는 Model과 View 사이에서 작업되었는데 그 사이에 Presenter라는 것이 끼었다고 생각하면 된다
장점
- Model과 View의 의존성이 사라짐
- Model은 Presenter의 요청에만 수행하면 되므로 다른 요소와의 상호작용에 대해 신경쓸 필요가 없다
단점
- Presenter와 View간의 의존성이 크다
- MVC에 비해 필요한 Class 수가 증가
MVP로 인해 Model과 View의 의존성이 완전히 사라졌다고하지만, 그만큼 Presenter와 View간의 의존성이 또 생기게 되는 단점이 있다.
그리고 MVC에 비해 필요한 Class 수가 증가됨으로써 개인적으로 딱히 뭐가 나아졌다는 것인지 이해가 안간다
'IT > 잡다한지식' 카테고리의 다른 글
웹 소켓(WebSocket) (0) | 2020.06.10 |
---|---|
자료 구조 list, set, map의 차이 (0) | 2020.03.27 |
JDBC, MyBatis, log4j, Transaction과 오라클의 관계 (0) | 2020.03.27 |
IT자격증 총정리 - 프로그래밍언어, DB, 네트워크 등 (5) | 2020.03.25 |
IT 개발구조 총정리 - 프론트엔드와 백엔드 (4) | 2020.03.25 |