refactor: 문서 개선 중
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,23 +5,28 @@
|
||||
"question": "계약은 앵커 주소를 적어 두었는데 방문자는 왜 404 를 만났는가?",
|
||||
"type": "sequence",
|
||||
"direction": "TB",
|
||||
"audience": ["백엔드 개발자", "프론트엔드 개발자"],
|
||||
"audience": [
|
||||
"백엔드 개발자",
|
||||
"프론트엔드 개발자"
|
||||
],
|
||||
"summary": "만드는 쪽 두 곳이 계약과 다른 슬래시 주소를 만들었고, 그 주소가 게시 시점에 저장돼 방문자에게 그대로 나갔다.",
|
||||
"alt": "계약, 게시 시점 경로 생성, 저장 테이블, 조회 시점 경로 생성, 방문자, 공개 라우트 여섯 참가자 사이에서 주소가 만들어져 저장되고 방문 시 404 로 끝나는 순서도.",
|
||||
"long_description": "위에서 아래로 여섯 번의 이동이 있다. 계약 ProjectDecisionItem 은 공개 주소가 decisions#{slug} 앵커라고 규정한다. 게시 시점의 PublicPaths.forKind 는 그 대신 decisions/{slug} 를 만들어 public_resource_projection 에 저장한다. 조회 시점의 PublicSql.pathOf 가 저장된 주소를 읽고 방문자에게 링크로 내보낸다. 방문자가 그 주소를 요청하면 공개 라우트에는 projects/{slug}/decisions 하나뿐이라 맞는 라우트가 없고 404 가 돌아온다.",
|
||||
"source_context": {
|
||||
"document": "document.md",
|
||||
"document_sha256": "93b9fec4884efa0e6231de07dc27e2b0ac36c9052d3720e28d102d9747ac4f8f",
|
||||
"document": "docs/TechLog/final/document.md",
|
||||
"document_sha256": "c3a7de37b778fff7b6ea555a3ad7338c91c6fb15d685e7734f89472b4924d955",
|
||||
"anchor": {
|
||||
"kind": "marker",
|
||||
"value": "decision-path-404",
|
||||
"line": 673
|
||||
"line": 916
|
||||
}
|
||||
},
|
||||
"composition": {
|
||||
"profile": "sequence",
|
||||
"diagram_only": true,
|
||||
"reference_ids": ["payment-approval-sequence"],
|
||||
"reference_ids": [
|
||||
"payment-approval-sequence"
|
||||
],
|
||||
"rationale": "본문은 주소가 계약에서 규정되고, 게시 시점에 만들어져 저장되고, 조회 시점에 읽혀 방문자에게 나가고, 방문했을 때 404 가 되는 순서를 적는다. 「주소가 게시 시점에 굳는다」가 이 결함의 핵심이라 시점의 순서가 그림의 뼈대여야 한다."
|
||||
},
|
||||
"nodes": [
|
||||
@@ -31,7 +36,12 @@
|
||||
"kind": "participant",
|
||||
"role": "participant",
|
||||
"description": "공개 주소를 앵커로 규정한 OpenAPI 계약.",
|
||||
"evidence": [{ "start_line": 676, "end_line": 678 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 919,
|
||||
"end_line": 921
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -39,10 +49,17 @@
|
||||
"label": "PublicPaths.forKind",
|
||||
"kind": "participant",
|
||||
"role": "participant",
|
||||
"details": ["게시 시점"],
|
||||
"details": [
|
||||
"게시 시점"
|
||||
],
|
||||
"emphasis": "warning",
|
||||
"description": "게시할 때 공개 주소를 만드는 코드.",
|
||||
"evidence": [{ "start_line": 677, "end_line": 678 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 919,
|
||||
"end_line": 921
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -51,7 +68,12 @@
|
||||
"kind": "participant",
|
||||
"role": "participant",
|
||||
"description": "만들어진 주소가 저장되는 투영 테이블.",
|
||||
"evidence": [{ "start_line": 682, "end_line": 683 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 925,
|
||||
"end_line": 926
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -59,10 +81,17 @@
|
||||
"label": "PublicSql.pathOf",
|
||||
"kind": "participant",
|
||||
"role": "participant",
|
||||
"details": ["조회 시점"],
|
||||
"details": [
|
||||
"조회 시점"
|
||||
],
|
||||
"emphasis": "warning",
|
||||
"description": "조회할 때 공개 주소를 만드는 코드.",
|
||||
"evidence": [{ "start_line": 677, "end_line": 678 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 919,
|
||||
"end_line": 921
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -71,7 +100,12 @@
|
||||
"kind": "actor",
|
||||
"role": "participant",
|
||||
"description": "「다음에 읽을 것」 링크를 따라간 사람.",
|
||||
"evidence": [{ "start_line": 670, "end_line": 671 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 913,
|
||||
"end_line": 914
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -79,9 +113,16 @@
|
||||
"label": "공개 라우트",
|
||||
"kind": "participant",
|
||||
"role": "participant",
|
||||
"details": ["/projects/{slug}/decisions 하나뿐"],
|
||||
"details": [
|
||||
"/projects/{slug}/decisions 하나뿐"
|
||||
],
|
||||
"description": "결정에는 상세 화면이 없어 라우트가 하나뿐이다.",
|
||||
"evidence": [{ "start_line": 675, "end_line": 676 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 918,
|
||||
"end_line": 919
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
}
|
||||
],
|
||||
@@ -93,7 +134,12 @@
|
||||
"label": "…/decisions#{slug} 로 규정",
|
||||
"kind": "request",
|
||||
"order": 1,
|
||||
"evidence": [{ "start_line": 676, "end_line": 678 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 919,
|
||||
"end_line": 921
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -104,7 +150,16 @@
|
||||
"kind": "request",
|
||||
"order": 2,
|
||||
"emphasis": "warning",
|
||||
"evidence": [{ "start_line": 675, "end_line": 678 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 919,
|
||||
"end_line": 921
|
||||
},
|
||||
{
|
||||
"start_line": 925,
|
||||
"end_line": 926
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -114,7 +169,12 @@
|
||||
"label": "저장된 주소 조회",
|
||||
"kind": "response",
|
||||
"order": 3,
|
||||
"evidence": [{ "start_line": 682, "end_line": 683 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 919,
|
||||
"end_line": 926
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -124,7 +184,12 @@
|
||||
"label": "같은 형태로 링크 전달",
|
||||
"kind": "response",
|
||||
"order": 4,
|
||||
"evidence": [{ "start_line": 677, "end_line": 678 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 913,
|
||||
"end_line": 921
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -134,7 +199,12 @@
|
||||
"label": "…/decisions/{slug} 요청",
|
||||
"kind": "request",
|
||||
"order": 5,
|
||||
"evidence": [{ "start_line": 670, "end_line": 675 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 913,
|
||||
"end_line": 919
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
},
|
||||
{
|
||||
@@ -145,7 +215,12 @@
|
||||
"kind": "response",
|
||||
"order": 6,
|
||||
"emphasis": "warning",
|
||||
"evidence": [{ "start_line": 670, "end_line": 675 }],
|
||||
"evidence": [
|
||||
{
|
||||
"start_line": 913,
|
||||
"end_line": 919
|
||||
}
|
||||
],
|
||||
"assumption": false
|
||||
}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user