Logocob

cob apply

기존 프로젝트에 feature 브릭 적용

cob apply#

기존 monorepo 프로젝트에 feature 브릭(bricks/feature-{name}/)을 적용합니다. 브릭을 임시 디렉토리에 Mason generate한 뒤 프로젝트의 feature/, backend/ 디렉토리에 병합하고, pubspec.yamlworkspace: 섹션에 패키지 항목을 자동 추가합니다.

신규 feature를 처음부터 생성할 때는 atomic 브릭을 조합하는 cob compose가 권장됩니다. apply는 기존 vertical-slice 브릭(feature-{name})을 그대로 적용할 때 사용합니다.

cob apply --feature <name> [options]

옵션#

옵션약어설명기본값
--feature -f 적용할 단일 feature 이름 (예: home, users) -
--features - 복수 feature 이름 (쉼표 구분, 예: home,users,payment) -
--project-dir-d대상 프로젝트 디렉토리현재 디렉토리
--dry-run-실제 변경 없이 미리보기만 출력false
--force-대상 프로젝트의 기존 파일 덮어쓰기false
--bricks-dir -b bricks/ 디렉토리 경로 자동 탐색
--backend / --no-backend - backend 모듈 포함 여부 true
--primary-entity - 주요 도메인 entity 이름 (PascalCase, 예: Article) 브릭 기본값
--secondary-entity - 보조 도메인 entity 이름 (PascalCase, 예: Reply) 브릭 기본값

--feature--features 중 최소 하나는 지정해야 합니다. 두 옵션을 함께 쓰면 모든 이름이 합쳐져 순차 적용됩니다.

동작 방식#

  1. 대상 프로젝트의 .envrc에서 설정 로드 (PROJECT_NAME, ORG_NAME, ORG_TLD 등)
  2. bricks/ 디렉토리 탐색 — --bricks-dir 미지정 시 프로젝트 디렉토리에서 상위 방향으로 자동 탐색
  3. enable_admin 자동 감지 — feature/console/ 또는 app/{project}_console/ 디렉토리 존재 여부로 판단
  4. bricks/feature-{name}/을 임시 디렉토리에 generate 후 파일 병합
    • frontend: feature/ → 프로젝트 feature/
    • backend: backend/ → 프로젝트 backend/ (--no-backend 시 생략)
  5. pubspec.yaml workspace: 섹션 업데이트
    • feature/application/{name} 추가
    • admin console 감지 시 feature/console/{name}도 추가

기존 파일은 기본적으로 건너뛰며(skipped), --force를 지정해야 덮어씁니다. 브릭이 없으면 cob sync --type feature --name <name> 실행을 안내합니다.

단일 / 복수 feature 적용#

# 단일 feature 적용
cob apply --feature community

# 복수 feature 동시 적용
cob apply --features community,chat,notification

# 다른 프로젝트 디렉토리 지정
cob apply --feature community --project-dir ../my_project

Entity 커스터마이징#

브릭의 기본 entity 이름 대신 도메인에 맞는 이름을 지정할 수 있습니다. Mason 변수 primary_entity, secondary_entity로 전달됩니다.

cob apply --feature community \
  --primary-entity Article \
  --secondary-entity Reply
변수예시설명
primary_entityArticle주요 도메인 entity (PascalCase)
secondary_entityReply보조 도메인 entity (PascalCase)

Console feature 적용#

admin console이 있는 프로젝트(feature/console/ 또는 app/{project}_console/ 존재)는 enable_admin=true로 자동 감지되며, console feature 브릭도 동일하게 적용할 수 있습니다.

cob apply --feature console_dashboard --backend

미리보기 (dry-run)#

--dry-run으로 실제 파일 변경과 pubspec.yaml 업데이트 없이 추가/건너뜀 파일 목록을 미리 확인합니다.

cob apply --feature community --dry-run

커스텀 bricks 경로#

cob apply --feature community --bricks-dir /path/to/bricks

상대 경로도 지원하며, 지정한 디렉토리가 없으면 에러로 종료합니다.

종료 코드#

코드조건
0 (success)모든 feature 적용 성공
64 (usage) feature 미지정 (--feature/--features 둘 다 없음)
66 (noInput)프로젝트/bricks 디렉토리가 존재하지 않음
70 (software)하나 이상의 feature 적용 실패 또는 예기치 못한 오류
74 (ioError)파일 시스템 오류 또는 .envrc 설정 오류