iOS 아키텍쳐 - boostcampwm2023/iOS05-Village GitHub Wiki
이슈 내용
프로젝트에 도입할 iOS 아키텍처를 선정하고 이유에 대해 기록한다.
선택 사항
- Clean Architecture
- MVC | MVVM | RIBs
- Coordinator
선택
- Clean Architecture
- MVVM
- Coordinator
이유
- MVVM
- 이전 학습에서 MVC에서 View Controller가 비대해지는 것을 경험하여 View Model의 필요성을 느꼈다.
- View Model을 통해 비즈니스 로직에 대한 테스트 코드 작성이 더 수월할 것이라 생각했다.
- RIBs는 상대적으로 학습과 도입의 난이도가 높을 것 같다고 생각했다.
- Clean Architecture
- View의 재사용성을 높이기 위해서 Clean Architecture를 도입하기로 결정했다.
- 내부에서 외부를 모른다는 Clean Architecture의 특성이 계층간의 의존성을 낮춰주기 때문에 유지 보수에 용이하다.
- Coordinator
- View Controller에 의존성 주입을 수월하게 하고 화면 전환 로직 책임을 덜어줄 수 있다.
참고
- [화면 전환을 해결해 준 Coordinator 패턴](https://labs.brandi.co.kr/2020/06/16/kimjh.html)
- [코디네이터 패턴 관련 자료](https://inuplace.tistory.com/1168)
- [요즘 대세 Clean-Architecture](https://blog.toktokhan.dev/%EC%9A%94%EC%A6%98-%EB%8C%80%EC%84%B8-clean-architecture-67b80df66c6)
- [kudoleh/iOS-Clean-Architecture-MVVM](https://github.com/kudoleh/iOS-Clean-Architecture-MVVM)
- [MVVM 아키텍처 패턴](https://gyuwon.github.io/blog/2017/03/05/mvvm-architectural-pattern.html#comment-3)