MVC 패턴이란?
MVC (model-view-controller) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다.
* 디자인 패턴 : 프로그래밍 문제를 해결하는 접근법
모델 : 데이터와 비즈니스 로직을 관리한다
뷰 : 레이아웃과 화면을 처리한다
컨트롤러: 모델과 뷰로 명령을 전달한다
모델
-
앱이 포함해야할 데이터가 무엇인지를 정의
-
데이터의 상태가 변경되면, 모델을 뷰나 컨트롤러에게 알림
-
규칙: 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야함 (뷰나 컨트롤러를 참조하는 내부 속성값을 가지면 안 된다는 의미)
ex) Database
뷰
- 앱의 데이터를 보여주는 방식을 정의
- 표시할 데이터를 모델로부터 받음
- 사용자가 발생시킨 이벤트를 처리 (컨트롤러로 전달)
- 규칙: 모델의 정보를 따로 저장해서는 안됨, 뷰 역시 모델과 컨트롤러의 동작을 몰라야 함
ex) HTML, CSS
컨트롤러
- 앱의 사용자로부터의 입력에 대한 응답으로 모델 및 뷰를 업데이트하는 로직을 포함
- 버튼 클릭, 엔터 등과 같은 사용자 액션으로 인한 입력이 컨트롤러에게 전송되고, 컨트롤러는 입력에 맞게 모델을 적당히 처리한 다음, 업데이트된 데이터를 뷰로 전송
- 역할에 따라 서로 격리되어 있는 모델과 뷰를 연결하고 움직이는 주체
- 규칙: 모델이나 뷰에 대해서 알고 있어야 하며, 각각의 변경을 모니터링해야함
MVC 패턴을 사용해야하는 이유
- 비즈니스 로직과 UI 로직을 분리하여 유지보수를 독립적으로 수행가능
- Model과 View가 다른 컴포넌트들에 종속되지 않아 애플리케이션의 확장성, 유연성에 유리함
- 중복 코딩의 문제점 제거 (코드의 재사용)
출처
mdn web docs (https://developer.mozilla.org/ko/docs/Glossary/MVC)
snippet 블로그 (http://bsnippet.tistory.com/13)