--- kind: CONCEPT slug: messaging-core-api-c02 title: 의존이 하나도 없고 나머지 24개 전부가 이것을 의존한다 topic: schema-and-wire-models project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:messaging-core-api-c02 evidenceCapturedOn: 2026-09-01 assets: - key: messaging-core-api-c02 file: ../../../final/evidence/rendered/messaging-core-api-c02.svg evidence: - ../../../final/evidence/raw/messaging-core-api-c02.txt source: - 원본 분석 절은 final/document.md#a19-messaging-core-api#L101 이다. module: messaging-core-api --- # 의존이 하나도 없고 나머지 24개 전부가 이것을 의존한다 들어오는 것: 없음. registry allowed_dependencies: []이고 build.gradle에 선언이 없다. ## 본문 들어오는 것은 없다 — registry `allowed_dependencies: []`이고 `build.gradle`에 선언이 없다. ## 이 기록이 다루는 범위 :::evidence key="messaging-core-api-c02" alt="코드베이스에서 파일 목록을 만든 출력 25줄. 이 기록이 다루는 범위가 그 목록이다." caption="코드베이스 파일 목록 — 25줄 · exit 0" zoom="true" ::: ## 나가는 쪽은 messaging family 전부다 `messaging-schema-api`, `messaging-schema-json`, `messaging-schema-avro`, `messaging-schema-protobuf`, `messaging-cloudevents`, `messaging-policy`, `messaging-transport-spi`, `messaging-runtime-core`, `messaging-observability`, `messaging-security`, `messaging-kafka`, `messaging-kafka-share-experimental`, `messaging-rabbit`, `messaging-reliability-api`, `messaging-outbox-jdbc-postgresql`, `messaging-inbox-jdbc-postgresql`, `messaging-claim-check`, `messaging-admin-api`, `messaging-admin-runtime`, `messaging-pulsar-experimental`, `messaging-nats-experimental`, `messaging-spring-cloud-stream-bridge`, `messaging-spring-boot-starter`, `messaging-testkit` — 나머지 **24개 전부**. ## 편입이 전이로 일어난다 `runtime_memberships: ["app-bootstrap"]`이고, 그 편입은 직접 선언이 아니라 **전이(transitive)**로 일어난다. `src/app-bootstrap/build.gradle:87`이 선언하는 것은 starter 하나이고, starter의 `allowed_dependencies`가 17개 leaf를 끌고 오며 그 closure에 `messaging-core-api`가 있다. 즉 **배포 아티팩트가 이 leaf를 싣는다.** 실행 여부는 별개이고 master switch `app.messaging.enabled`(기본 `false`)가 결정한다(`src/messaging/CLAUDE.md:56-57`). ## 비교할 sibling bean이 없다 이 leaf 자체는 bean을 하나도 만들지 않는다. Spring stereotype·`@Bean`·`@Conditional`·`@Profile` 주석이 leaf 전체에 0개다(`evidence/raw/269` §F, `git grep` exit=1). 따라서 §12.2의 conditional sibling 비교는 이 leaf에 **적용 대상이 없다**.