--- kind: CONCEPT slug: adapter-outbound-support-c02 title: FailOpenDependencyLogger는 실패 정책을 정하지 않는다 topic: observability-models project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:adapter-outbound-support-c02 evidenceCapturedOn: 2026-09-01 assets: - key: adapter-outbound-support-c02 file: ../../../final/evidence/rendered/adapter-outbound-support-c02.svg - key: adapter-outbound-support-c02-diagram file: ../../../final/assets/diagrams/adapter-outbound-support-c02.svg evidence: - ../../../final/evidence/raw/adapter-outbound-support-c02.txt source: - 원본 분석 절은 analysis/04-adapter-outbound-support.md#L119 이다. module: adapter-outbound-support --- # FailOpenDependencyLogger는 실패 정책을 정하지 않는다 이 logger는 retry, recovery, fallback을 수행하지 않는다. 실패 정책을 결정하는 주체가 아니라 이미 결정된 fail-open outcome을 관측하는 기술 seam이다. ## 본문 `logSuccess(...)`는 DEBUG로 다음을 기록한다. - dependency_name - dependency_type - operation - outcome=`SUCCESS` - correlation_id `logFailure(...)`는 WARN으로 outcome=`FAILURE`와 error=`: `를 추가한다. README와 javadoc은 WARN을 선택한 이유를 "optional fail-open dependency가 실패해도 core use case 자체는 성공했기 때문"이라고 설명한다. ## 판정과 기록이 갈리는 자리 :::evidence key="adapter-outbound-support-c02-diagram" alt="fail-open 판정에서 use case 결과와 로거로 각각 화살표가 나가고 로거에서 돌아오는 화살표는 없는 구조" caption="판정과 기록의 갈림" zoom="false" ::: 이 logger 자체는 retry, recovery, fallback을 수행하지 않는다. **실패 정책을 결정하는 주체가 아니라 이미 결정된 fail-open outcome을 관측하는 기술 seam**이다. ## FailOpenDependencyLogger 참조 위치 :::evidence key="adapter-outbound-support-c02" alt="코드베이스에서 FailOpenDependencyLogger 를 검색한 출력 34줄. 이 기록이 세는 참조가 그 출력에 그대로 보인다." caption="FailOpenDependencyLogger 코드베이스 검색 — 34줄 · exit 0" zoom="true" ::: ## 실제로 support를 import하는 네 파일 repository-wide production reference scan에서 support package를 직접 import하는 current production files는 네 개뿐이었다 — `MessagingConfig`, `OutboundMessagePublisher`, `NotificationConfig`, `FailOpenNotificationProvider`. 반대로 support README가 "공유 consumer"로 설명하는 `cache-redis`, `httpclient`는 Gradle dependency는 유지하지만 support production type을 직접 참조하지 않는다. 이 차이는 §8에서 별도로 다룬다.