Skip to content
K024_박치윤 edited this page Nov 30, 2021 · 2 revisions

그물잠🐟 은 프로젝트 아키텍처 패턴으로 MVVM 을 사용했습니다.

🤷‍♂️ Why Architecture?

아키텍처를 적용한 가장 큰 이유는 관심사의 분리를 하기 위해서 입니다.

코드를 관심사 단위로 나누게 되면 변경의 여파를 줄일 수 있고, 유지 보수가 용이하다는 장점이 있습니다.

협업을 하기 위해 프로젝트에서 아키텍처는 반드시 필요하다고 생각했습니다.

🤷‍♂️ Why MVVM?

프로젝트 시작 단계에서 고민했던 아키텍처 패턴은 MVP 와 MVVM 이었습니다.

MVP

  • Presenter에서 화면 관련 서비스 로직을 처리하여 View 가 방대해지는 것을 막을 수 있음
  • View와 Presenter가 서로 참조(둘사이의 강한 의존성)
  • 화면마다 Contract를 통해 View 와 Presenter 가 1 대 1로 대응 되는 구조를 가짐
  • 위의 이유로 다소 보일러 플레이트 코드가 발생

MVVM

MVVM

  • ViewModel에서 대부분의 View 관련 비즈니스 로직을 처리, View에서 비즈니스 로직 처리의 최소화
  • View는 ViewModel을 참조하지만 ViewModel은 View를 참조하지 않음
  • DataBinding을 함께 활용하면 View와 ViewModel 간의 의존성을 낮추고 View에서 처리하는 로직을 감소시킬 수 있음
  • ViewModel 의 테스트 작성 용이
  • 반면에 규모가 작은 프로젝트에서는 MVVM 아키텍처 적용에 의한 오버헤드가 더 클 수 있음