Atomic Brick 카탈로그#
cob의 브릭 체계는 vertical-slice feature 브릭(완성된 feature를 통째로 복사)에서 atomic brick(레이어별 부품을 조립) 체계로 전환되었습니다. feature 브릭은 표준 CRUD feature를 한 번에 찍어내는 데는 효율적이지만, 기존 feature에 usecase 하나·bloc 하나만 추가하거나 도메인에 맞게 부품 구성을 바꾸는 데는 유연하지 않았습니다. atomic brick은 entity·usecase·bloc·endpoint 같은
부품 단위 브릭 14종으로 분해되어 있고, cob compose가 feature.yaml 매니페스트를 읽어 필요한 부품만 골라 조립합니다.
SSOT: 이 카탈로그의 단일 소스는 coco-de/bricks 저장소의
bricks/registry.yaml입니다. 이 문서는 그 미러이며, 새 atomic brick 추가·변경은 registry.yaml에 먼저 반영됩니다.
공통 규약#
registry.yaml 헤더에 명시된 규약(Epic #18)으로, 모든 atomic brick이 따릅니다.
| 규약 | 내용 |
|---|---|
| 자기 파일만 생성 | atomic brick은 자기 파일만 생성하고 상위 barrel을 수정하지 않는다 |
| barrel 등록 책임 | barrel 등록은 recipe runner(cob compose/cob add) 또는 개발자가 수행한다 |
| core.dart re-export 금지 | core.dart에 feature를 re-export하지 않는다 (cross-feature는 pubspec 명시 + 직접 import) |
| DI 생성자 주입 전용 | DI는 생성자 주입 전용 — getIt/injectable 미사용 |
이 규약 덕분에 brick 생성은 멱등에 가깝고, barrel·라우터 같은 공유 파일의 변경은 전부 cob 측 책임으로 일원화됩니다.
14종 카탈로그#
App 계열 7종(domain/data/presentation) + Backend 계열 7종(b- 접두사, Serverpod)으로 구성됩니다.
App 계열 (7종)#
| 이름 | 레이어 | 설명 | 상세 |
|---|---|---|---|
entity |
domain | 순수 도메인 엔티티 (Equatable/Freezed/Plain) | 상세 |
failure |
domain | 도메인 Failure sealed class + 메시지 상수 (core Failure 상속) | 상세 |
usecase |
domain | Clean Architecture UseCase (생성자 주입, getIt 미사용) | 상세 |
repository |
data | Repository 인터페이스 + 구현체 + 네트워크별 mixin (생성자 주입) | 상세 |
bloc |
presentation | BLoC (Started/ItemSelected 골격, usecases 선언 시 생성자 주입 와이어링) | 상세 |
page |
presentation | Feature 페이지 위젯 (HookWidget, BlocProvider 선택, page_type 5종) | 상세 |
widget |
presentation | 재사용 UI 위젯 (stateless/stateful/hook 3유형) | 상세 |
Backend 계열 (7종)#
| 이름 | 레이어 | 설명 | 상세 |
|---|---|---|---|
b-entity |
backend | Serverpod spy.yaml 엔티티 (DB 테이블) — 앱-백엔드 계약서 | 상세 |
b-dto |
backend | Serverpod spy.yaml Request/Response DTO — 엔드포인트 입출력 계약 | 상세 |
b-endpoint |
backend | Serverpod 엔드포인트 (app/console/public 3유형, CRUD 또는 커스텀 메서드) | 상세 |
b-service |
backend | Serverpod 백엔드 서비스 — 엔드포인트가 위임하는 비즈니스 로직 | 상세 |
b-exception |
backend | 백엔드 sealed class 예외 계층 (SerializableException — 클라이언트 전파) | 상세 |
b-validator |
backend | 백엔드 입력값 검증 클래스 (id/paging/required_fields 규칙 조합) | 상세 |
b-constant |
backend | 백엔드 상수/캐시 설정/에러 메시지 (페이징·ID·DB작업·필드명 기본 상수 포함) | 상세 |
구 vertical-slice 브릭#
기존 56개 feature 브릭(27 App + 29 Console)은 폐기되지 않았으며, cob apply용으로 그대로 유지됩니다. 완성형 feature를 통째로 가져올 때는 여전히 feature 브릭이 빠른 경로입니다. 전체 목록은
전체 브릭 목록을 참고하세요.
관련 문서#
- App Brick 상세 — 프론트엔드 atomic brick 7종의 변수·산출 파일·배치 경로
- Backend Brick 상세 — Serverpod atomic brick 7종 + spy.yaml 계약
- feature.yaml 스키마 — compose 매니페스트 v1 키 레퍼런스