[10분 테코톡] 조이의 Activity를 쪼개며 배운 구조 설계
- 안드로이드 Activity가 View, Controller, 데이터 처리 등 너무 많은 역할을 수행하여 테스트 및 유지보수가 어려워지는 문제점을 제기합니다. 🤯
- 단일 책임 원칙(SRP)을 적용하여 Activity의 역할을 View에 집중시키고, MVP/MVVM 패턴을 통해 비즈니스 로직과 상태 관리를 분리하는 구조 설계를 시도합니다. 🧩
- 객체 분리 후, 각 구성 요소 간의 의존성을 어떻게 설계하고 관리할 것인지에 대한 중요성을 강조합니다. 🤝
- 특히 외부 API와 ViewModel의 직접적인 결합은 ViewModel의 비대화와 잦은 수정으로 이어질 수 있는 문제점을 지적합니다. ⚠️
- 데이터 접근 방식을 추상화하기 위해 DataSource와 Repository 패턴을 도입하여 ViewModel이 데이터의 출처를 알지 못하게 합니다. 🛡️
- DataSource는 네트워크나 로컬 DB 등 실제 데이터를 가져오고 API 스펙 변경을 처리하며, Repository는 ViewModel과 API 사이의 중간 계층 역할을 수행합니다. 🏗️
- 이러한 구조는 테스트 코드 작성을 용이하게 하고, 외부 API 변경에 유연하게 대응할 수 있는 시스템을 구축하는 데 기여합니다. ✨
- 구조 분리와 의존성 설계는 더 좋은 코드를 만들기 위한 도구이며, 이러한 도구들을 활용하여 끊임없이 고민하고 적용하는 과정이 가장 중요함을 강조합니다. 💡