사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴. 더 나은 업무의 분리와 향상된 관리를 제공한다.
데이터와 비즈니스 로직을 관리
정보들의 가공을 책임지는 담당. 포함해야할 데이터를 정의한다.
상태가 변경되면 뷰에게 알리며 가끔은 컨트롤러에게 알리기도 한다.
쇼핑리스트에 포함해야하는 데이터 품목, 가격 등 항목이 무엇인지 지정.
레이아웃과 화면을 처리
데이터를 보여주는 방식을 정의. 사용자에게 보여지는 화면이다.
표시할 데이터를 모델로 부터 받는다
명령을 모델과 뷰 부분으로 라우팅(데이터 보내기)
사용자로부터 입력에 대한 응답으로 모델, 뷰를 업데이트하는 로직을 포함한다.
쇼핑 리스트의 항목을 추가하거나 제거 할 수 있는 로직을 처리한 다음, 업데이트된 데이터를 뷰로 전송한다.
- 비즈니스 로직과 UI로직을 분리하여 유지 보수에 편하다
- 중복된 코드를 하나로 사용 가능하다.
- model과 view가 다른 컴포넌트들에 종속되지 않아 어플리케이션의 확장성, 유연성에 유리하다.
출처
mvc 용어 정리 :https://developer.mozilla.org/ko/docs/Glossary/MVC
mvc 패턴을 사용해야하는 이유 : https://cocoon1787.tistory.com/733
MVC 패턴이 지켜지는 5가지 규칙 :
https://hyeon9mak.github.io/5-rules-for-MVC-pattern/