Clean Architecture#
모든 feature 브릭은 Clean Architecture (Vertical Slice) 패턴을 따릅니다.
레이어 구조#
┌─────────────────────────────────────┐
│ Presentation Layer │
│ BLoC (Event/State) → Page/Widget │
├─────────────────────────────────────┤
│ Domain Layer │
│ Entity → UseCase → Repository I/F │
├─────────────────────────────────────┤
│ Data Layer │
│ Repository Impl → API/DB/Cache │
└─────────────────────────────────────┘
Domain Layer#
- Entity: Freezed immutable 데이터 모델
- UseCase: 단일 비즈니스 로직 (Either<Failure, T> 반환)
- Repository Interface: 데이터 접근 추상화
Data Layer#
- Repository: 인터페이스 구현체
- OpenAPI Mixin: REST API 연동
- Mock Factory: 테스트용 Mock 데이터
- Cache: Cache-First 전략
Presentation Layer#
- BLoC: Event-driven 상태 관리
- Page: 화면 컴포넌트
- Widget: 재사용 가능한 UI 요소
Backend Layer#
- Endpoint: Serverpod CRUD API
- Service: 비즈니스 로직
- Model: .spy.yaml Entity/DTO 정의
- Validation: 입력 검증