refactor: 문서 개선 중
This commit is contained in:
@@ -0,0 +1,198 @@
|
||||
{
|
||||
"version": "1.1",
|
||||
"id": "route-fanout",
|
||||
"title": "라우트 하나가 건드리는 손 목록과 검출 시점",
|
||||
"question": "새 라우트 하나가 어디까지 퍼지고, 빠뜨린 항목은 어느 시점에 처음 드러나는가?",
|
||||
"type": "dependency",
|
||||
"direction": "LR",
|
||||
"audience": [
|
||||
"프론트엔드 개발자",
|
||||
"배포 파이프라인 유지보수자"
|
||||
],
|
||||
"summary": "Route Contract에서 런타임·빌드·CI·nginx 쪽 손 목록으로 갈라지고, 누락은 빌드 매니페스트·배포 직전·배포 뒤 서로 다른 시점에 드러난다.",
|
||||
"alt": "새 Route가 Route Contract를 거쳐 Runtime 계약, 배포 전 검사, Edge 서빙 세 묶음으로 갈라지는 팬아웃 그림. 각 묶음에는 누락이 처음 드러나는 시점이 적혀 있다.",
|
||||
"long_description": "왼쪽의 새 Route가 Route Contract로 들어간 뒤 세 갈래로 퍼진다. Runtime 계약에는 runtime 등록과 메시지 카탈로그가 있다. 배포 전 검사에는 vite chunk 이름 표와 접근성 증거·아티팩트 기준선·gate digest가 묶여 있고 누락은 빌드 매니페스트 또는 배포 직전에 드러난다. Edge 서빙 규칙 누락은 하드 로드나 새로고침 때 배포 뒤 404로 드러난다.",
|
||||
"source_context": {
|
||||
"document": "docs/TechLog/final/document.md",
|
||||
"document_sha256": "c3a7de37b778fff7b6ea555a3ad7338c91c6fb15d685e7734f89472b4924d955",
|
||||
"anchor": {
|
||||
"kind": "heading",
|
||||
"value": "8. 라우트를 하나 더하면 함께 울리는 손 목록",
|
||||
"line": 814
|
||||
}
|
||||
},
|
||||
"composition": {
|
||||
"profile": "query-fanout",
|
||||
"diagram_only": true,
|
||||
"reference_ids": [
|
||||
"metrics-query-fanout"
|
||||
],
|
||||
"rationale": "본문의 핵심은 새 Route 하나가 여러 손 목록으로 퍼지는 fan-out이다. 정확한 여덟 위치는 표가 맡고, 그림은 네 소유 묶음과 검출 시점 차이를 보여 준다.",
|
||||
"focus_node": "route-contract"
|
||||
},
|
||||
"groups": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "route",
|
||||
"label": "새 Route",
|
||||
"kind": "request",
|
||||
"role": "query",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 816,
|
||||
"end_line": 821
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
"id": "route-contract",
|
||||
"label": "Route Contract",
|
||||
"kind": "component",
|
||||
"role": "router",
|
||||
"details": [
|
||||
"tech-log-route-contract.ts"
|
||||
],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 819,
|
||||
"end_line": 831
|
||||
}
|
||||
],
|
||||
"assumption": false,
|
||||
"emphasis": "primary"
|
||||
},
|
||||
{
|
||||
"id": "runtime",
|
||||
"label": "Runtime 계약",
|
||||
"kind": "component",
|
||||
"role": "store",
|
||||
"details": [
|
||||
"route-runtime-contract",
|
||||
"메시지 카탈로그",
|
||||
"검출: 실행 경로"
|
||||
],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 824,
|
||||
"end_line": 826
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
"id": "predeploy",
|
||||
"label": "배포 전 검사",
|
||||
"kind": "component",
|
||||
"role": "store",
|
||||
"details": [
|
||||
"vite chunk 표 · 빌드 매니페스트",
|
||||
"접근성 증거 · 아티팩트 기준선 · gate digest",
|
||||
"검출: 빌드 / 배포 직전"
|
||||
],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 828,
|
||||
"end_line": 831
|
||||
},
|
||||
{
|
||||
"start_line": 854,
|
||||
"end_line": 877
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
"id": "nginx",
|
||||
"label": "Edge serving",
|
||||
"kind": "component",
|
||||
"role": "store",
|
||||
"details": [
|
||||
"nginx serving contract",
|
||||
"검출: 배포 뒤 404"
|
||||
],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 827,
|
||||
"end_line": 827
|
||||
},
|
||||
{
|
||||
"start_line": 834,
|
||||
"end_line": 852
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"id": "register",
|
||||
"from": "route",
|
||||
"to": "route-contract",
|
||||
"label": "등록",
|
||||
"kind": "request",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 819,
|
||||
"end_line": 831
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
"id": "runtime-edge",
|
||||
"from": "route-contract",
|
||||
"to": "runtime",
|
||||
"label": "반영",
|
||||
"kind": "data",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 824,
|
||||
"end_line": 826
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
"id": "predeploy-edge",
|
||||
"from": "route-contract",
|
||||
"to": "predeploy",
|
||||
"label": "대조",
|
||||
"kind": "data",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 828,
|
||||
"end_line": 831
|
||||
},
|
||||
{
|
||||
"start_line": 854,
|
||||
"end_line": 877
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
"id": "nginx-edge",
|
||||
"from": "route-contract",
|
||||
"to": "nginx",
|
||||
"label": "서빙 패턴",
|
||||
"kind": "data",
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 827,
|
||||
"end_line": 827
|
||||
},
|
||||
{
|
||||
"start_line": 834,
|
||||
"end_line": 852
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
}
|
||||
],
|
||||
"legend": [],
|
||||
"metadata": {
|
||||
"rationale": "8개 항목을 같은 카드로 반복하지 않고, 독자가 먼저 알아야 할 fan-out과 검출 시점만 묶었다. 정확한 항목 수와 커밋별 수치는 본문 표에 남긴다.",
|
||||
"layout_note": "세 fan-out 가지를 한 화면에 유지한다. 9px shared-edge-run advisory가 남더라도 의미상 간선이 다른 노드를 통과하지 않는지 overlap 검사와 PNG preview에서 재확인한다."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user