guricode

[Flutter] Clean Architecture란? 본문

앱/Flutter&Dart

[Flutter] Clean Architecture란?

agentrakugaki 2025. 10. 20. 02:29

 

Clean Architecture는 비즈니스 로직(Domain)을 UI나 데이터 소스와 분리해
의존성이 한 방향으로만 흐르도록 만든 구조다.
Flutter에서는 Presentation–Domain–Data 세 레이어로 나누어
ViewModel이 UseCase를 호출하고, Repository를 통해 Firestore나 API에 접근한다.

[Presentation Layer]   →  UI, ViewModel, Provider 등
[Domain Layer]          →  Entity, UseCase (비즈니스 로직)
[Data Layer]            →  Repository, DataSource (API, DB, Firebase 등)
  • UI(View)는 UseCase만 호출
  • UseCase는 Repository 인터페이스만 알고 있음
  • 실제 구현(Firebase)은 Data Layer에 위치

 

클린 아키텍쳐는

유지보수성(UI,DB,프레임워크가 바뀌어도 비즈니스로직은 그대로 유지),

테스트용이성(Domain로직이 외부 의존성 없이 독립되어 단위테스트 가능),

확장성(Firebase -> restAPI,SQLITE로 쉽게 교체 가능),

의존성 제어(상위 계층은 하위계층 구현을 모르고 인터페이스에만 의존),

팀 협업 효율성(UI담당자와 로직 담당자가 독립적으로 개발 가능)

에 있어서 장점이 있다.