--- kind: REFERENCE slug: messaging-transport-spi-f03 title: 같은 개념의 sentinel은 계층을 넘어 하나로 정한다 topic: transport-and-provider-semantics project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: reference:messaging-transport-spi-f03 verifiedOn: # 이 기록은 이번 회차에 실행 확인을 하지 않았다 source: - final/document.md#a19-messaging-transport-spi#L677 --- # 같은 개념의 sentinel은 계층을 넘어 하나로 정한다 ## 관계 - **드레인 마감 30초가 세 곳에서 독립적으로 결정된다** 이 규칙의 근거는 같은 분석 리프의 판정이 소유한다. ## 목적 PauseResumeController 가 소비자 0 이라 오늘 충돌하지 않는다. 그것을 배선하는 사람이 변환을 넣어야 하고, 빠뜨리면 "" 가 이름이 "" 인 파티션을 가리킨다 — 실패하지 않고 아무것도 일시정지하지 않는다. ## 규칙 1. 같은 개념의 전체 지정자가 계층마다 무엇인지 모은다 TransportConsumerRegistration.pause 는 빈 문자열이 전체, PauseResumeController.pause 는 "*" 가 전체다. 2. 변환 지점이 코드에 있는지 확인한다 지금은 두 계층을 잇는 코드 자체가 없다. 3. sentinel 을 통일하거나 타입으로 바꾼다 Optional 이면 sentinel 자체가 사라진다. ## 적용 조건 "전체" · "없음" · "기본" 같은 특수 의미를 문자열 값에 실어 계층을 넘기는 모든 API. ## 예외 두 계층이 절대 만나지 않는다면 대상이 아니다. 이 둘은 만나도록 설계된 상하 계층이다. ## 예시 두 javadoc 의 sentinel 정의. 확인 방법은 그 둘을 대조하는 것이다.