Flutter

[flutter] Clean Architecture 에서 사용하는 개념 잡고가기

개발짜 2024. 12. 27. 23:19

Clean Architecture 란?

프로그램을 4단계의 계층으로 나누어 의존성 방향을 외부에서 내부로만 향할 수 있도록 구조체를 만들어 개발하는 것이다.

 

영화 정보를 보여주는 프로그램을 예시로 들어 각 개념과 대입을 해보자면

 

Entities

- 비즈니스의 핵심 개념을 나타는 객체

- Movie(영화 정보) class

 

Use Cases

- 프로그램의 특정 기능

- 여러 영화의 정보 확인하기, 영화의 구체적인 정보 확인하기

 

Interface Adapters

- Use Cases 와 Frameworks and Drivers 사이의 중간 역할(=Adapter)

- Repository, ViewModel

 

Frameworks and Drivers

- 시스템의 핵심 업무와는 상관 없는 계층

- DB, 외부 API

 

Flutter 를 위의 Clean Architecture 계층으로 구분하면 다음과 같이 분리할 수 있다.

Presentation Layer

- UI 와 같은 화면 표시 및 사용자 입력 처리 계층

- ViewModel: UI 의 상태를 관리하고 비즈니스 로직 정의

- Widget: 사용자에게 보여지는 View

 

Domain Layer

- 시스템의 비즈니스 로직을 담고있는 계층

- Entity: 데이터 모델 클래스

- UseCase: Entity 로 해야할 일의 정의

 

Data Layer

- 데이터 소스와 관련된 작업을 처리하는 계층

- Repository: 데이터 처리 방식 결정, Entity 전달

- DataSource: 네트워크 통신, 내부 DB와 연동 등을 통해 데이터 CRUD