--- 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: - analysis/messaging/messaging-spring-cloud-stream-bridge.md#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. 확인 방법은 그 사이의 창을 보는 것이다.