Files
document-haness/docs/TechLog/final/.techviz/summary-drop-path/spec.json
T

154 lines
4.3 KiB
JSON

{
"version": "1.1",
"id": "summary-drop-path",
"title": "summary가 세 경계에서 사라진 경로",
"question": "계약과 DB에 있던 summary가 공개 relation 목록까지 오지 못한 세 유실 지점은 어디였는가?",
"type": "data-flow",
"direction": "LR",
"audience": [
"프론트엔드 개발자",
"계약 설계자"
],
"summary": "계약에는 summary가 있었지만 flattenRelations가 담지 않았고, ResolvedRelation에는 칸이 없었고, 화면 목록으로 넘길 때 다시 버렸다.",
"alt": "Contract summary에서 flattenRelations, ResolvedRelation, 화면 목록으로 이어지는 흐름. 세 중간 지점에 DROP 1, 칸 없음, DROP 3이 표시되어 있다.",
"long_description": "왼쪽 Contract에는 summary가 있다. flattenRelations가 그 값을 담지 않아 첫 번째로 끊긴다. 다음 ResolvedRelation 계약에는 summary 칸 자체가 없어 두 번째로 막힌다. 그 칸을 추가한 뒤에도 화면 목록으로 넘길 때 값을 버려 세 번째로 끊겼다. 최종 수정에서는 세 경계를 모두 이어 공개 relation 목록까지 summary가 도착하게 했다.",
"source_context": {
"document": "docs/TechLog/final/document.md",
"document_sha256": "c3a7de37b778fff7b6ea555a3ad7338c91c6fb15d685e7734f89472b4924d955",
"anchor": {
"kind": "heading",
"value": "5. 계약에 자리가 없어 값이 경계에서 사라진다",
"line": 516
}
},
"composition": {
"profile": "component-flow",
"diagram_only": true,
"reference_ids": [
"payment-event-flow"
],
"rationale": "본문 자체가 계약에서 화면 목록까지 summary가 지나가는 순서를 네 단계로 적고 세 유실 지점을 명시한다.",
"focus_node": "resolved-relation"
},
"groups": [],
"nodes": [
{
"id": "contract",
"label": "Contract summary",
"kind": "message",
"role": "source",
"details": [
"summary 있음"
],
"evidence": [
{
"start_line": 540,
"end_line": 547
}
],
"assumption": false
},
{
"id": "flatten",
"label": "flattenRelations",
"kind": "component",
"role": "service",
"details": [
"DROP #1"
],
"evidence": [
{
"start_line": 544,
"end_line": 547
}
],
"assumption": false,
"emphasis": "warning"
},
{
"id": "resolved-relation",
"label": "ResolvedRelation",
"kind": "component",
"role": "service",
"details": [
"summary 칸 없음",
"additionalProperties: false"
],
"evidence": [
{
"start_line": 546,
"end_line": 552
}
],
"assumption": false,
"emphasis": "warning"
},
{
"id": "screen-list",
"label": "화면 relation 목록",
"kind": "component",
"role": "sink",
"details": [
"DROP #3"
],
"evidence": [
{
"start_line": 547,
"end_line": 552
}
],
"assumption": false,
"emphasis": "warning"
}
],
"edges": [
{
"id": "to-flatten",
"from": "contract",
"to": "flatten",
"label": "summary",
"kind": "data",
"evidence": [
{
"start_line": 544,
"end_line": 545
}
],
"assumption": false
},
{
"id": "to-model",
"from": "flatten",
"to": "resolved-relation",
"label": "렌더 모델",
"kind": "data",
"evidence": [
{
"start_line": 545,
"end_line": 550
}
],
"assumption": false
},
{
"id": "to-screen",
"from": "resolved-relation",
"to": "screen-list",
"label": "화면 전달",
"kind": "data",
"evidence": [
{
"start_line": 546,
"end_line": 552
}
],
"assumption": false
}
],
"legend": [],
"metadata": {
"rationale": "상위 Concept의 11경계 그림과 겹치지 않도록 이번 사고에서 실제로 summary가 끊긴 세 지점만 그린다.",
"layout_note": "네 경계를 한 줄로 따라가는 사고 경로라 LR을 유지한다. 이 그림은 전체 11경계가 아니라 세 유실 지점만 좁힌다."
}
}