디자인 패턴 (MVC, MVP, MVVM 패턴)
⭐디자인 패턴이란?
프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록
하나의 '규약' 형태로 만들어 놓은 것을 의미
8. MVC 패턴(Model - View - Controller)이란?
애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발
장점
각각의 구성 요소에만 집중해서 개발 가능
재사용성과 확장성이 용이
단점
애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해짐
모델 ( Model )
애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻함
뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신
뷰 ( View )
모델을 기반으로 사용자가 볼 수 있는 화면
ex ) inputbox, checkbox, textarea 등 사용자 인터페이스 요소
모델이 가지고 있는 정보를 따로 저장하지 않아야 하며 ,화면에 표시하는 정보만 가지고 있어야 함
변경이 일어나면 컨트롤러에 전달
컨트롤러 ( Controller )
하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할
이벤트 등 메인 로직 담당
모델과 뷰의 생명주기 관리
모델이나 뷰의 변경 통지를 받으면 이를 해석하여 각각의 구성 요소에 해당 내용에 대해 알려줌
9. MVP 패턴(Model - View - Presenter)이란?
MVC 패턴에서 파생, 컨트롤러가 프레젠터로 교체된 패턴
뷰와 프레젠터가 일대일 관계를 가져 MVC 패턴보다 강한 결합을 가짐
10. MVVM 패턴(Model - View - View Model)이란?
컨트롤러가 뷰모델( View Model )로 교체된 패턴
뷰 모델 : 뷰를 더 추상화한 계층
MVC와 다르게 커맨드(여러 가지 요소에 대한 처리를 하나의 액션으로 처리할 수 있게 하는 기법)와 데이터 바인딩(화면에 보이는 데이터와 웹 브라우저의 메모리 데이터를 일치시키는 기법, 뷰모델을 변경하면 뷰가 변경됨)을 가지는 것이 특징
뷰와 뷰 모델 사이의 양방향 데이터 바인딩을 지원
장점
단위 테스팅이 쉬움
UI를 별도의 코드 수정 없이 재사용할 수 있음