... | ... | @@ -24,12 +24,19 @@ Model, View, ViewModel로 구성된 애플리케이션 구조 패턴 |
|
|
|
|
|
### MVVM 패턴을 사용하는 이유
|
|
|
|
|
|
#### 기존 애플리케이션의 패턴과 구조의 문제
|
|
|
1) 기존 코드에 새로운 기능을 추가하거나 버그를 수정하는 것이 어렵다.
|
|
|
2) 유니테스트를 수행하기가 복잡하다.
|
|
|
3) 사용자 인터페이스와 비지니스로직의 긴밀한 관계로 파트간 독립적으로 개발하기가 어렵다.
|
|
|
##### 기존 애플리케이션의 패턴과 구조의 문제
|
|
|
- 기존 코드에 새로운 기능을 추가하거나 버그를 수정하는 것이 어렵다.
|
|
|
- 유니테스트를 수행하기가 복잡하다.
|
|
|
- 사용자 인터페이스와 비지니스로직의 긴밀한 관계로 파트간 독립적으로 개발하기가 어렵다.
|
|
|
- 기존의 패턴들은 메소드의 집합이거나 API를 사용하는 방법뿐, 애플리케이션의 구조를 정의하는 방법이 아니다.
|
|
|
|
|
|
##### MVVM 패턴을 적용하여 해결
|
|
|
- 세가지 다른 계층으로 코드를 분할하고 각 계층 사이의 의존성이 없기 때문에 팀에서 작업하는 경우 애플리케이션을 유지보수하고 확장하는 것이 용이하다.
|
|
|
- 컨트롤이 이벤트 핸들러에 연결되는 방식에서는 유니테스를 위해 이벤트 시뮬레이션(버튼 클릭등)을 직접 해야하는 문제가 있는데, MVVM 패턴은 ViewModel을 분리하여 사용자 인터페이스와 의존성을 끊고, ViewModel을 테스트할 수 있는 코드를 포함할 수 있다.
|
|
|
|
|
|
- 사용자 인터페이스와 비지니스 로직간의 긴밀한 연결이 끊어지기 때문에 모듈 구현시에 모든 내용을 알 필요가 없다.
|
|
|
ViewModel을 쉽게 교체하고 실제 사용되는 데이터를 가짜로 만들어낼 수도 있으며, 이는 각 파트별로 개발하는데 도움이 된다.
|
|
|
|
|
|
기존의 패턴들은 메소드의 집합이거나 API로 사용하는 방법뿐, 애플리케이션의 구조를 정의하는 방법이 아니다.
|
|
|
|
|
|
|
|
|
|
... | ... | |