--- kind: CONCEPT slug: messaging-runtime-core-c07 title: 이 리프는 통째로 하나의 수정이다 topic: composition-and-lifecycle-models project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:messaging-runtime-core-c07 evidenceCapturedOn: 2026-09-01 assets: - key: messaging-runtime-core-c07 file: ../../../final/evidence/rendered/messaging-runtime-core-c07.svg evidence: - ../../../final/evidence/raw/messaging-runtime-core-c07.txt source: - 원본 분석 절은 final/document.md#a19-messaging-runtime-core#L631 이다. module: messaging-runtime-core --- # 이 리프는 통째로 하나의 수정이다 MSG-INT-003이라는 식별자가 세 파일의 javadoc에 나온다. 이 리프가 채운 것은 기능이 아니라 조립의 빈칸이다. ## 관계 - **만들어 두고 흘리지 않는 진단값은 진단이 아니다** 같은 분석 리프에서 끌어낸 규칙이다. - **증가한다고 문서화한 값이 리터럴이면 그 사실을 적는다** 같은 분석 리프에서 끌어낸 규칙이다. - **안정 코드는 운영자의 행동이 갈리는 지점마다 나눈다** 같은 분석 리프에서 끌어낸 규칙이다. - **`CompletionStage`를 반환하는 메서드는 동기적으로 던지지 않는다** 같은 분석 리프에서 끌어낸 규칙이다. ## 본문 이 leaf는 **통째로 하나의 수정**이다. MSG-INT-003이라는 식별자가 세 파일의 javadoc에 나온다(`DeclaredDestinationAccess`, `TransportMessagingRuntime`, `MessagingCoreAutoConfiguration:461`). | 위치 | 이전 상태 | 그것이 만든 실패 | |---|---|---| | `build.gradle` 주석 | `MessagePublisher` 구현 없음 | 자동설정이 없는 bean 위에 DLQ·facade bean을 쌓음 | | `TransportMessagingRuntime` javadoc | `MessagingRuntime` 구현 없음 | registry가 빈 채로 만들어져 모든 발행이 `PUBLISH_RUNTIME_UNAVAILABLE` — 목적지 해석·접근 확인·인코딩을 **전부 마친 뒤에** | | `DestinationProfileRegistry` javadoc | 논리 이름→프로파일 해석 없음 | 어댑터는 해석된 프로파일을 받는데 그것을 만들 publisher가 없었음 | | `DefaultDeliveryProcessor` javadoc | `HandleResult`→정산 연결 없음 | 각 어댑터가 retry/dead-letter의 뜻을 각자 결정 | | `withDeadline` javadoc | transport가 마감을 무시 | 확인이 오지 않는 Rabbit publish에 마감이 없어 호출자 스레드가 완료 불가능한 stage에 묶임 | ## DeclaredDestinationAccess 참조 위치 :::evidence key="messaging-runtime-core-c07" alt="코드베이스에서 DeclaredDestinationAccess 를 검색한 출력 3줄. 이 기록이 세는 참조가 그 출력에 그대로 보인다." caption="DeclaredDestinationAccess 코드베이스 검색 — 3줄 · exit 0" zoom="true" ::: ## 가짜로 빈칸을 채우면 안 되는 이유 `build.gradle` 주석의 마지막 문장이 이 leaf 전체의 교훈이다 — "A starter that filled the gap with an application-supplied fake would pass a context test while running none of them."