- analysis/·source-index·state.json 을 final/document.md 제2부·제3부로 접었다. SSOT 는 하나다 - 파일럿 — commit-ambiguity-as-a-result 를 새 기준으로 재선별. 후보 14 → 글감 5 (PROMOTE 5 · MERGE_INTO 3 · KEEP_IN_SSOT 4 · 보류 2). 기록 5건을 다시 썼고 그림 1개를 techviz 로 만들었다 - 재선별이 잡은 것: 제1부 §6.2·§11.1 이 자기 §13.2 와 어긋나 있었다(레인을 안 돌렸다 vs 돌렸다) — 정정. 이미 답이 나와 있던 Question 을 HEAD 재실행 질문으로 다시 세웠다. Concept 이 인용한 코드가 SSOT 에 없어 뺐다 - candidateScope·sourceRepository 기록. 나머지 43개 주제는 재선별 대기(PENDING 905) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
---
|
|
kind: REFERENCE
|
|
slug: messaging-spring-cloud-stream-bridge-f04
|
|
title: 함께 읽히는 두 맵은 한 값으로 묶는다
|
|
topic: state-ownership-and-concurrency
|
|
project: clean-architecture-backend-template
|
|
status: 게시 전
|
|
sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
|
|
rootTreeNode: reference:messaging-spring-cloud-stream-bridge-f04
|
|
verifiedOn: # 이 기록은 이번 회차에 실행 확인을 하지 않았다
|
|
source:
|
|
- final/document.md#a19-messaging-spring-cloud-stream-bridge#L579
|
|
---
|
|
|
|
# 함께 읽히는 두 맵은 한 값으로 묶는다
|
|
|
|
## 목적
|
|
|
|
두 put 사이에 dispatch 가 들어오면 destination == null 이 되어 NO_BRIDGED_HANDLER 가 난다. 방향은 안전하다 — 잘못된 목적지로 전달하지는 않는다. 틀리는 것은 에러 코드다. 핸들러가 없다고 말하는데 실제로는 핸들러가 있고 목적지가 아직 없다.
|
|
|
|
## 규칙
|
|
|
|
1. 한 논리 등록이 몇 번의 put 으로 나뉘는지 센다
|
|
SpringCloudStreamConsumerBridge.register 가 handlers.put(...) 후 destinations.put(...) 을 한다. 같은 형태가 publisher 의 두 맵에도 있고 그쪽은 키가 각각 독립이다.
|
|
|
|
2. 그 사이에 읽는 경로가 있는지 본다
|
|
dispatch 가 그 창에 들어온다.
|
|
|
|
3. 두 값을 한 record 로 묶어 한 번에 넣는다
|
|
창 자체가 사라진다.
|
|
|
|
## 적용 조건
|
|
|
|
한 등록·한 전이가 두 개 이상의 맵 갱신으로 표현되고, 그 맵들을 함께 읽는 경로가 있는 자리.
|
|
|
|
## 예외
|
|
|
|
두 맵의 키가 독립이고 읽는 쪽이 둘을 함께 보지 않으면 대상이 아니다. publisher 쪽이 그 경우에 가깝다.
|
|
|
|
## 예시
|
|
|
|
SpringCloudStreamConsumerBridge.java:38-39 의 두 put. 확인 방법은 그 사이의 창을 보는 것이다.
|
|
|