{ "version": "1.1", "id": "messaging-security-f01", "title": "두 검사의 차이", "question": "두 검사는 언제 걸리고 무엇을 던지는가?", "type": "sequence", "direction": "LR", "audience": [ "이 저장소의 구조를 읽는 사람" ], "summary": "검증기는 production 일 때만 걸리고 코드 없는 예외를 던지며 정책은 tls 가 켜지면 언제나 걸리고 안정 코드 예외를 던진다.", "alt": "같은 설정이 MessageSecurityValidator 로 가면 production 일 때만 걸리고 BrokerTlsPolicy 로 가면 tls 가 켜질 때마다 걸리는 순서.", "long_description": "SSOT 는 두 검사의 발화 조건과 예외 형태가 다르다고 적는다. 한쪽은 production 일 때만 코드 없는 예외를, 다른 쪽은 tls 가 켜지면 언제나 안정 코드 예외를 낸다.", "source_context": { "document": "/home/donghyeon/workspace/chat-gpt-container/document-haness/docs/clean-architecture-backend-template/final/document.md", "document_sha256": "8071fe71b3359d9cf60b95909c26c7b50653ce2f22bbc5fcf6988719bb91236d", "anchor": { "kind": "line", "value": 37778, "line": 37778 } }, "composition": { "profile": "sequence", "diagram_only": true, "reference_ids": [ "payment-approval-sequence" ], "rationale": "같은 설정에 두 검사가 다른 조건으로 걸린다는 것이 순서로 드러난다.", "focus_node": "policy" }, "groups": [], "nodes": [ { "id": "cfg", "label": "보안 설정", "kind": "service", "role": "participant", "evidence": [ { "start_line": 37778, "end_line": 37795 } ], "assumption": false }, { "id": "validator", "label": "MessageSecurityValidator", "kind": "service", "role": "participant", "evidence": [ { "start_line": 37778, "end_line": 37795 } ], "assumption": false, "details": [ "production 일 때만", "코드 없는 예외" ] }, { "id": "policy", "label": "BrokerTlsPolicy", "kind": "service", "role": "participant", "evidence": [ { "start_line": 37778, "end_line": 37799 } ], "assumption": false, "emphasis": "primary", "details": [ "tls 켜지면 언제나", "안정 코드 예외" ] } ], "edges": [ { "id": "m1", "from": "cfg", "to": "validator", "label": "검사 요청", "kind": "request", "evidence": [ { "start_line": 37778, "end_line": 37795 } ], "assumption": false, "order": 1 }, { "id": "m2", "from": "validator", "to": "cfg", "label": "조건부 발화", "kind": "response", "evidence": [ { "start_line": 37778, "end_line": 37795 } ], "assumption": false, "order": 2, "style": "dashed" }, { "id": "m3", "from": "cfg", "to": "policy", "label": "같은 설정", "kind": "request", "evidence": [ { "start_line": 37778, "end_line": 37799 } ], "assumption": false, "order": 3 }, { "id": "m4", "from": "policy", "to": "cfg", "label": "상시 발화", "kind": "response", "evidence": [ { "start_line": 37778, "end_line": 37799 } ], "assumption": false, "order": 4, "emphasis": "primary" } ], "legend": [], "metadata": {} }