Files
document-haness/docs/TechLog/tech-log-studio/one-route-many-hand-kept-lists/case/case-eight-places-a-single-route-touches.md
T
DongHyeonkaandClaude Opus 5 f6c825e858 docs(TechLog): 글감 56개를 기록으로 쓴다
주제 13개 · Case 28 · Concept 5 · Reference 15 · Question 4 · Decision 4.
계약의 노드마다 종류가 요구하는 칸을 채우고, 본문이 있는 두 종류에는 SSOT 가 이미
그려 둔 도식 셋(value-boundaries · decision-path-404 · topic-variant-model)을
tech-log-studio/ 로 옮겨 붙였다. 새로 그린 그림은 없다.

검사 셋 전부 통과한다.
  check_body.mjs      56 편 중 본문이 있는 33 편 PASS
  check_prose.mjs     56 편 error 0
  check_evidence.mjs  --repo 포함 문제 없음
  verify-tech-log-tree.py  프로젝트 5 · error 0 · warn 0

인용한 코드블록은 전부 SSOT 에서 찾아 대조했다. check_evidence.mjs 가 본문의 각 줄과
source 앵커와 계약 제목을 다시 확인한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 15:29:33 +09:00

4.5 KiB

kind, slug, title, topic, topicName, project, status, lastVerifiedOn, sourceRevision, source
kind slug title topic topicName project status lastVerifiedOn sourceRevision source
CASE eight-places-a-single-route-touches 라우트 하나가 건드리는 여덟 자리와, 그것들이 우는 시점 one-route-many-hand-kept-lists 라우트 하나가 울리는 손 목록 TechLog 게시 전 2026-09-04 tech-log@2026-09-02
final/document.md#§8.1
final/document.md#§8.3
final/document.md#§8.4

라우트 하나가 건드리는 여덟 자리와, 그것들이 우는 시점

라우트를 하나 더하면 여덟 곳이 함께 울린다. 어떤 것은 빌드 직전에, 어떤 것은 배포 직전에, 어떤 것은 배포 뒤에 운다. 개념 라우트를 더한 커밋이 그 목록을 남겼다.

관계

  • nginx 가 모르는 라우트는 새로고침에서 404 다 이 목록에서 배포 뒤에 우는 항목의 사건이다.
  • 라우트에 딸린 목록은 라우트 계약에서 유도하고, 유도할 수 없는 것은 대조 검사를 둔다 이 목록을 다루는 기준이다.
  • 가드는 작동했는데 제가 그것을 돌리지 않아 두 번 새어 나갔다 이 목록을 빠뜨린 뒤 게이트가 빨간 채로 지나간 사건이다.

문제

라우트 하나를 더하면 그 라우트를 아는 곳이 여덟이다. 어느 하나를 빠뜨리면 우는 시점이 제각각이라, 빠뜨린 것을 알아채는 시점도 제각각이다.

결론

여덟 곳과 우는 시점이 갈린다.

빌드 매니페스트 단계 : vite chunk 이름 표 배포 직전 CI : 아티팩트 개수 상수 · 수동 접근성 증거 개수 · 게이트 집합의 sha256 배포 뒤 : nginx 서빙 패턴 그 밖 : 라우트 계약 · 런타임 등록 · 메시지 카탈로그

청크 이름 표는 다섯 검사 안에서 대조하게 했다. 게이트 기준값 셋은 여전히 손으로 움직이고, 옛 값을 먼저 재현해 계산 방법을 확인한 뒤 갱신한다.

검증 환경

tech-log-frontend : 048c1b2 · 197db74 · fe6b56a CI : FE-GATE-009 — 라우트마다 수동 접근성 증거 1개 확인 방식 : 라우트를 더한 커밋 넷에서 기준값이 어떻게 움직였는지 대조

재현 조건

  1. 라우트를 하나 더하고 vite chunk 이름 표에는 넣지 않는다
  2. 빌드한다 — 번들은 만들어지고 매니페스트 단계에서 멈춘다
  3. 표에 넣고 CI 기준값은 그대로 둔다 — 게이트가 거절한다

본문

여덟 곳

라우트 계약          tech-log-route-contract.ts
런타임 등록          route-runtime-contract
메시지 카탈로그       화면 제목·설명
nginx 서빙 패턴       tech-log-serving-contract.json → 생성된 nginx conf
코드 분할 청크         vite.config.ts 의 chunk 이름 표
CI 게이트 FE-GATE-009 라우트마다 수동 접근성 증거 1개
CI 게이트 아티팩트 기준선 정확한 개수를 고정
CI 게이트 형상 digest  게이트 집합의 sha256

우는 시점이 다르다

주제 편집 화면을 더하고 청크 이름 표를 빠뜨렸더니 번들은 만들어지는데 빌드 매니페스트 단계에서 Missing built route chunk: TECH_LOG_STUDIO_TOPIC_EDIT 로 멈췄다. 다섯 개의 검사를 다 통과한 뒤 배포 직전에야 드러난다는 뜻이다.

이 표도 손으로 나열한 목록이므로 다섯 검사 안에서 대조하게 했다.

게이트 기준값 셋이 함께 움직인다

FE-GATE-009 는 설치된 라우트마다 수동 접근성 증거를 하나씩 요구하고, 그 집합이 정확히 일치하지 않으면 거절한다.

커밋 라우트 아티팩트 기준선 증거 개수 digest
16e5b9f /studio/projects/:id 132 → 133 111 → 112 187dbd96… 재계산
84d72c4 /studio/releases/:id 133 → 134 112 → 113 f9e7e521… 재계산
048c1b2 /concepts/:slug +1 +1 fb138e7c… 재계산
fe6b56a /topics, /topics/:s/:v, /studio/topics/:id 135 → 138 114 → 117 87a22f68… 재계산

digest 를 다시 계산할 때는 매번 이전 gates.json 에서 옛 상수를 먼저 재현해 계산 방법이 맞는지 확인한 뒤 새 파일을 해싱했다. 그렇게 하지 않으면 「계산이 달라졌는데 새 값이 나왔다」와 「파일이 바뀌어서 새 값이 나왔다」를 구분할 수 없다.

확인하지 못한 것

게이트 기준값 셋은 여전히 손으로 움직인다. 옛 값을 먼저 재현하는 절차는 사람이 기억해야 하고 검사가 강제하지 않는다.