Files
document-haness/docs/TechLog/final/assets/diagrams/decision-path-404/decision-path-404.alt.md
T

2.1 KiB
Raw Blame History

결정 주소가 게시 시점에 굳어져 방문자가 404 를 만나기까지

Alternative text

계약, 게시 시점 경로 생성, 저장 테이블, 조회 시점 경로 생성, 방문자, 공개 라우트 여섯 참가자 사이에서 주소가 만들어져 저장되고 방문 시 404 로 끝나는 순서도.

Long description

위에서 아래로 여섯 번의 이동이 있다. 계약 ProjectDecisionItem 은 공개 주소가 decisions#{slug} 앵커라고 규정한다. 게시 시점의 PublicPaths.forKind 는 그 대신 decisions/{slug} 를 만들어 public_resource_projection 에 저장한다. 조회 시점의 PublicSql.pathOf 가 저장된 주소를 읽고 방문자에게 링크로 내보낸다. 방문자가 그 주소를 요청하면 공개 라우트에는 projects/{slug}/decisions 하나뿐이라 맞는 라우트가 없고 404 가 돌아온다.

Elements and evidence

  • 계약 ProjectDecisionItem (participant): 공개 주소를 앵커로 규정한 OpenAPI 계약. Evidence: L676L678.
  • PublicPaths.forKind (participant): 게시할 때 공개 주소를 만드는 코드. Evidence: L677L678.
  • public_resource_projection (participant): 만들어진 주소가 저장되는 투영 테이블. Evidence: L682L683.
  • PublicSql.pathOf (participant): 조회할 때 공개 주소를 만드는 코드. Evidence: L677L678.
  • 방문자 (actor): 「다음에 읽을 것」 링크를 따라간 사람. Evidence: L670L671.
  • 공개 라우트 (participant): 결정에는 상세 화면이 없어 라우트가 하나뿐이다. Evidence: L675L676.

Relationships

  • 계약 ProjectDecisionItem → PublicPaths.forKind: …/decisions#{slug} 로 규정. Evidence: L676L678.
  • PublicPaths.forKind → public_resource_projection: …/decisions/{slug} 저장. Evidence: L675L678.
  • public_resource_projection → PublicSql.pathOf: 저장된 주소 조회. Evidence: L682L683.
  • PublicSql.pathOf → 방문자: 같은 형태로 링크 전달. Evidence: L677L678.
  • 방문자 → 공개 라우트: …/decisions/{slug} 요청. Evidence: L670L675.
  • 공개 라우트 → 방문자: 404. Evidence: L670L675.