Files
DongHyeonkaandClaude Opus 5 193da20d09 docs(TechLog): Reference 15편의 규칙 표기를 게시된 기록에 맞추고 주제 6 을 다시 쓴다
게시된 Reference 15편이 전부 규칙을 `### N. 제목` 으로 쓰고 적용 조건·예외·예시를 항목으로
쓴다. 내 15편은 규칙을 `**굵게**` 로, 나머지 셋을 문단으로 쓰고 있었다 — Studio 의
rules[]·applyWhen[]·exceptions[]·examples[] 는 배열이라 문단으로 두면 항목이 하나로 접힌다.

  규칙 68개를 `### N. 제목` 으로 바꿨다 (편당 3~7개, 게시된 것은 4~10개)
  적용 조건·예외·예시를 항목으로 갈랐다. 한 항목뿐이던 아홉 편은 조건을 나눠 적었다

주제 6 은 본문을 다시 썼다 — location = 이 정확히 일치하는 경로만 잡아 27개가 얼어붙은
구조, 여덟 곳이 우는 시점을 셋으로 가른 표, digest 를 다시 계산할 때 옛 값을 먼저
재현하는 이유.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 19:01:44 +09:00

5.3 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

우는 시점이 다르다

여덟이 같은 시점에 울면 한 번에 고치면 된다. 시점이 갈리므로 다섯 검사를 다 통과한 뒤에도 남는 것이 있다.

언제 우나 무엇이
빌드 매니페스트 단계 vite chunk 이름 표
배포 직전 CI 아티팩트 개수 상수 · 수동 접근성 증거 개수 · 게이트 집합의 sha256
배포 뒤 nginx 서빙 패턴

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

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

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

접근성 게이트는 설치된 라우트마다 수동 증거를 하나씩 요구하고, 그 집합이 정확히 일치하지 않으면 거절한다. 빠뜨림이 통과가 되지 않게 하려고 정확한 일치를 요구하는 것이고, 그래서 라우트를 더할 때마다 상수 셋이 함께 움직인다.

커밋 라우트 아티팩트 기준선 증거 개수 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 에서 옛 상수를 먼저 재현해 계산 방법이 맞는지 확인한 뒤 새 파일을 해싱했다.

그렇게 하지 않으면 「계산이 달라졌는데 새 값이 나왔다」와 「파일이 바뀌어서 새 값이 나왔다」를 구분할 수 없다. 둘 다 새 값이 나오고 둘 다 게이트를 통과시킨다.

확인하지 못한 것

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

주제 화면 셋을 더할 때 이 목록을 또 빠뜨렸고, 게이트가 빨간 채로 여러 커밋을 지나갔다.