프로젝트 경험 기반
저는 MVVM 패턴을 선호합니다. 안드로이드 프로젝트에서 ViewModel을 통해 UI와 비즈니스 로직을 분리하면서, 테스트 코드 작성이 훨씬 쉬워진다는 걸 경험했습니다. 특히 화면 회전이나 상태 변화에서 ViewModel이 데이터를 유지해주는 구조가 안정적이었습니다. MVI는 단방향 데이터 흐름이 명확해서 상태 관리가 예측 가능하지만, 작은 규모의 프로젝트에서는 보일러플레이트가 많아지는 단점이 느껴졌습니다. MVVM이 학습 비용과 생산성 사이의 균형이 좋다고 생각해서, 기본 선택지로 먼저 고려합니다.
패턴 선택은 프로젝트 규모와 팀 상황에 따라 달라지고, 어떤 패턴이든 그 이유를 설명할 수 있는 상태가 더 중요하다고 생각합니다. 팀 코드 리뷰에서 아키텍처 기준을 공유하면 일관성이 유지되고, 협업 비용이 줄어든다는 걸 프로젝트에서 배웠습니다.