--- kind: CONCEPT slug: messaging-runtime-core-c04 title: 전송이 없으면 조용히 반환하는 설치 경로 topic: state-machines-and-ownership project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:messaging-runtime-core-c04 evidenceCapturedOn: 2026-09-01 assets: - key: messaging-runtime-core-c04 file: ../../../final/evidence/rendered/messaging-runtime-core-c04.svg evidence: - ../../../final/evidence/raw/messaging-runtime-core-c04.txt source: - 원본 분석 절은 final/document.md#a19-messaging-runtime-core#L387 이다. module: messaging-runtime-core --- # 전송이 없으면 조용히 반환하는 설치 경로 발행 경로는 조립돼 있고 소비 경로는 조립되지 않았다. 세대 설치는 전송이 없으면 조용히 반환한다. ## 관계 - **만들어 두고 흘리지 않는 진단값은 진단이 아니다** 같은 분석 리프에서 끌어낸 규칙이다. - **증가한다고 문서화한 값이 리터럴이면 그 사실을 적는다** 같은 분석 리프에서 끌어낸 규칙이다. - **안정 코드는 운영자의 행동이 갈리는 지점마다 나눈다** 같은 분석 리프에서 끌어낸 규칙이다. - **`CompletionStage`를 반환하는 메서드는 동기적으로 던지지 않는다** 같은 분석 리프에서 끌어낸 규칙이다. ## 본문 **발행(조립됨)** — §4.1의 8단계. **소비(미조립)** — `TransportDelivery` → `handler.apply(envelope)` → `HandleResult` 4분기 → `OneShotSettlement`로 정확히 한 번 정산. ## TransportDelivery 참조 위치 :::evidence key="messaging-runtime-core-c04" alt="코드베이스에서 TransportDelivery 를 검색한 출력 6줄. 이 기록이 세는 참조가 그 출력에 그대로 보인다." caption="TransportDelivery 코드베이스 검색 — 6줄 · exit 0" zoom="true" ::: ## 세대 설치가 조용히 반환하는 지점 **세대 설치(조립됨)** — `InitializingBean` → `transport.getIfAvailable()` → null이면 조용히 반환(이유가 주석에 있음) → `new TransportMessagingRuntime(brokerName, 1L, transport)` → `runtimes.install(...)`.