
아키텍처
Flutter 클린 아키텍처: 작은 앱부터 대규모 프로젝트까지 맞춤 설계
두줄요약
Flutter 앱을 단계적으로 확장하며 클린 아키텍처로 발전시키는 과정을 소개했습니다. 작은 프로젝트에서는 과할 수 있지만 대규모 프로젝트에서는 유지보수와 테스트에 유리했습니다.
핵심 내용
- Flutter 앱 구조를 작은 단계부터 클린 아키텍처로 확장해 가는 과정 정리
- View-ViewModel-Repository-UseCase-Entity로 역할을 분리하며 중복, 동기화, 테스트 문제를 완화
- 작은 프로젝트에는 과도할 수 있으나 대형 프로젝트에서는 변경 용이성과 테스트성 향상에 유리
구조와 흐름
- 초기에는 View가 서버 요청과 화면 구성을 함께 담당해 책임이 과도하게 집중
- View와 ViewModel 분리 후 Repository 추가로 데이터 중앙 관리와 화면 동기화 개선
- Repository 인터페이스 분리, Model과 Entity 분리, UseCase 도입으로 의존성 정리
선택 이유
- 화면 추가와 즐겨찾기 같은 공통 기능에서 코드 중복과 상태 동기화 문제 해소
- 서버 모델 변경이나 테스트용 목 구현체 교체에 유연하게 대응
- 여러 Repository와 복합 비즈니스 로직을 한 곳에서 관리하기 위한 흐름 정리
주의할 점
- 규모가 작은 프로젝트에서는 오히려 복잡도만 높아질 수 있음
- 4단계 이후부터는 인터페이스 수가 늘어 구조의 필요성을 체감하기 어려울 수 있음
- 프로젝트 규모와 인원 수를 고려한 단계적 도입이 중요함