--- kind: CONCEPT slug: adapter-outbound-support-c04 title: 직접 참조 0이지만 broad component scan으로 도달한다 topic: state-machines-and-ownership project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:adapter-outbound-support-c04 evidenceCapturedOn: 2026-09-01 assets: - key: adapter-outbound-support-c04 file: ../../../final/evidence/rendered/adapter-outbound-support-c04.svg evidence: - ../../../final/evidence/raw/adapter-outbound-support-c04.txt source: - 원본 분석 절은 analysis/04-adapter-outbound-support.md#L318 이다. module: adapter-outbound-support --- # 직접 참조 0이지만 broad component scan으로 도달한다 `OutboundSupportConfig`는 `@Configuration`이며 `FailOpenDependencyLogger` bean 하나만 제공한다. support 밖 production Java에서 명시적으로 참조하는 파일은 0개지만 현재 active scanned path다. ## 본문 `OutboundSupportConfig`는 `@Configuration`이며 `FailOpenDependencyLogger` bean 하나만 제공한다. 별도 master property condition은 없다 — support 자체를 optional capability로 취급하지 않고, 실제 provider/client capability의 on/off를 sibling adapter가 소유하게 하려는 구조다. ## OutboundSupportConfig 참조 위치 :::evidence key="adapter-outbound-support-c04" alt="코드베이스에서 OutboundSupportConfig 를 검색한 출력 3줄. 이 기록이 세는 참조가 그 출력에 그대로 보인다." caption="OutboundSupportConfig 코드베이스 검색 — 3줄 · exit 0" zoom="true" ::: ## 참조 0인데도 unwired가 아닌 이유 `OutboundSupportConfig`를 support 밖 production Java에서 명시적으로 참조하는 파일은 0개다. 그러나 실제 composition root `CaSkeletonApplication`은 `dev.caskeleton.adapter`를 broad component scan한다. `AUTO_CONFIGURED_PACKAGES` exclusion에는 messaging/notification/persistence 등은 들어가지만 support package는 포함되지 않으므로 support config는 broad component scan으로 도달한다. registry도 support runtime membership을 `app-bootstrap`으로 선언하고 `app-bootstrap/build.gradle`이 support project를 직접 `implementation`한다. 따라서 이 configuration은 현재 **active scanned path**다. ## master switch 누락으로 판정하지 않은 이유 support config 자체에는 `@ConditionalOnProperty`가 없고 `@ConditionalOnMissingBean`만 있다. support는 provider/client를 생성하지 않고 logger bean 하나만 default로 제공한다. 실제 messaging/notification/httpclient 등은 자기 capability root에서 activation을 소유한다. support README와 config javadoc 모두 이 비대칭을 의도적으로 설명한다.