MVC & MVP & MVVM 패턴
Post

MVC & MVP & MVVM 패턴

MVC 패턴

MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)로 이루어진 디자인 패턴이다.

애플리케이션의 구성요소를 세가지로 구분하여 개발 프로세스에서 각 요소에만 집중하여 개발할 수 있다.

재사용성과 확장성이 용이하지만, 애플리케이션이 복잡할수록 모델과 뷰의 관계도 복잡해진다.

모델(model)은 애플리케이션의 데이터인 데이터베이스,상수,변수 등을 뜻한다.

뷰(view)는 input,checkbox,textarea 등의 사용자 인터페이스 요소를 나타낸다. 사용자가 볼 수 있는 화면을 뜻하고, 변경사항이 생길 경우 컨트롤러에게 변경사항을 전달해야한다.

컨트롤러(controller)는 하나 이상의 모델과 하나 이상의 뷰를 연결하고, 이벤트 등의 메인 로직을 담당한다. 모델이나 뷰가 변경되면 각각의 구성요소에 해당사항을 알려준다.

MVC 패턴을 이용한 프레임워크로는 자바언어를 위한 스프링(Spring)이 있다.

MVP 패턴

MVP 패턴은 MVC패턴에서 C에 해당하는 컨트롤러 대신 프레젠터(presenter)가 사용된 패턴이다.

뷰와 프레젠터는 일대일 관계이므로 MVC패턴보다 더 강한 결합을 보여준다.

MVVM 패턴

MVVM 패턴은 MVC의 C에 해당하는 컨트롤러 대신 뷰를 더 추상화한 계층인 뷰모델(view model)이 사용된다.

MVVM패턴은 MVC패턴과 다르게 커맨드(여러 요소의 처리를 하나의 액션으로 처리가능한 기법)와 데이터 바인딩을 가진다.
뷰와 뷰모델 사이의 양방향 데이터 바인딩(뷰모델을 변경하면 뷰도 변경됨)을 지원하고, UI코드를 쉽게 재사용가능하며 단위 테스팅이 용이하다.

MVVM 패턴을 이용한 프레임워크로는 뷰(Vue.js)가 있다. Vue.js는 반응형이 특징인 프런트엔드 프레임워크이다.

정규 표현식

Javascript Tilde(~)연산자