refactor: 문서 개선 중

This commit is contained in:
donghyeon-ka
2026-09-21 14:30:55 +09:00
parent c93cdea150
commit 805a18f486
1497 changed files with 525837 additions and 59152 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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에서 재확인한다."
}
}