{ "version": "1.1", "id": "adapter-outbound-cache-redis-c13", "title": "등록과 실행의 분리", "question": "스크립트는 어떻게 실행되는가?", "type": "sequence", "direction": "LR", "audience": [ "이 저장소의 구조를 읽는 사람" ], "summary": "배포 시 등록된 스크립트만 digest 를 가지므로 검토된 것만 실행된다는 성질이 관례가 아니라 구조가 된다.", "alt": "배포 시 스크립트를 등록하고 digest 를 대조한 뒤 EVALSHA 로 실행하는 순서.", "long_description": "SSOT 는 등록되지 않은 스크립트가 digest 가 없어 서버에 닿을 방법이 없다고 적는다.", "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": 13245, "line": 13245 } }, "composition": { "profile": "sequence", "diagram_only": true, "reference_ids": [ "payment-approval-sequence" ], "rationale": "등록이 실행의 전제라는 순서가 논지다.", "focus_node": "digest" }, "groups": [], "nodes": [ { "id": "reg", "label": "배포 시 스크립트 등록", "kind": "service", "role": "participant", "evidence": [ { "start_line": 13241, "end_line": 13251 } ], "assumption": false, "details": [ "등록본 저장" ] }, { "id": "digest", "label": "digest 대조", "kind": "service", "role": "participant", "evidence": [ { "start_line": 13241, "end_line": 13251 } ], "assumption": false, "emphasis": "primary", "details": [ "본문 일치" ] }, { "id": "eval", "label": "EVALSHA 실행", "kind": "service", "role": "participant", "evidence": [ { "start_line": 13241, "end_line": 13254 } ], "assumption": false } ], "edges": [ { "id": "m1", "from": "reg", "to": "digest", "label": "등록 결과", "kind": "request", "evidence": [ { "start_line": 13241, "end_line": 13251 } ], "assumption": false, "order": 1 }, { "id": "m2", "from": "digest", "to": "eval", "label": "일치 확인", "kind": "request", "evidence": [ { "start_line": 13241, "end_line": 13254 } ], "assumption": false, "order": 2, "emphasis": "primary" } ], "legend": [], "metadata": {} }