Files
document-haness/docs/TechLog/tech-log-studio/one-route-many-hand-kept-lists/reference/reference-derive-the-route-lists-from-the-route-contract.md
T

4.2 KiB

kind, slug, title, topic, topicName, project, status, verifiedOn, sourceRevision, source
kind slug title topic topicName project status verifiedOn sourceRevision source
REFERENCE derive-the-route-lists-from-the-route-contract 라우트에 딸린 목록은 라우트 계약에서 유도하고, 유도할 수 없는 것은 대조 검사를 둔다 one-route-many-hand-kept-lists 라우트 하나가 울리는 손 목록 TechLog 게시 전 2026-09-04 tech-log@2026-09-02
final/document.md#§8.3
final/document.md#§8.2

라우트에 딸린 목록은 라우트 계약에서 유도하고, 유도할 수 없는 것은 대조 검사를 둔다

라우트를 하나 더하면 서빙 패턴·청크 이름·게이트 기준값이 함께 움직인다. 손으로 유지하는 목록은 같은 방식으로 두 번 실패했다. 유도할 수 있는 것은 라우트 계약에서 유도하고, 유도할 수 없는 상수는 옛 값을 재현한 뒤에 갱신한다.

관계

  • nginx 가 모르는 라우트는 새로고침에서 404 다 이 기준의 근거 사건이다.
  • 라우트 하나가 건드리는 여덟 곳과, 그것들이 우는 시점 유도할 수 있는 것과 없는 것이 그 기록에 갈려 있다.
  • 종류를 나열하는 곳은 컴파일러나 계약 대조 검사가 세게 만든다 같은 병을 다른 유한 집합에서 다루는 기준이다.

목적

라우트를 더할 때 함께 움직여야 하는 목록이 빠지는 것을 막는다.

이 부류는 우는 시점이 제각각이다. 어떤 것은 빌드 매니페스트 단계에서, 어떤 것은 배포 직전 CI 에서, 어떤 것은 배포한 뒤 방문자가 먼저 만난다.

규칙

1. 서빙 패턴은 라우트 계약에서 유도한다

등록된 Public 라우트마다 정규식 하나를 만든다. 파라미터는 한 세그먼트만 잡고 슬래시는 잡지 않는다 — 그래야 잘못된 주소가 404 로 남아 감사에 잡힌다.

2. 빌드가 아는 목록을 서빙 계약의 근거로 쓰지 않는다

번들된 픽스처에 우연히 들어 있던 경로를 열거하면 그 목록이 빌드 시점에 얼어붙는다. location = 은 정확히 일치하는 경로만 잡으므로, 빌드 이후에 게시된 기록은 SPA 에 묻기도 전에 엣지에서 404 가 된다.

3. 유도할 수 없는 목록에는 대조 검사를 둔다

청크 이름 표가 그렇다. 번들러가 그 표를 읽어 이름을 정하므로 라우트 계약에서 만들어 낼 수 없고, 대신 두 목록이 같은지 보는 검사를 다섯 검사 안에 넣는다.

4. 기준값 상수는 옛 값을 먼저 재현한 뒤 갱신한다

새 값만 계산해 적으면 계산 방법이 달라져 새 값이 나온 것과 파일이 바뀌어 새 값이 나온 것을 구분할 수 없다. 둘 다 게이트를 통과시킨다.

5. 정확한 일치를 요구하는 게이트는 그 대가를 함께 적는다

빠뜨림이 통과가 되지 않게 하려면 집합이 정확히 일치해야 한다. 그러면 라우트를 더할 때마다 상수들이 함께 움직이고, 그 갱신을 사람이 한다.

적용 조건

  • 라우트 하나가 서빙 패턴·청크 이름·게이트 기준값 같은 목록을 함께 움직이는 프론트엔드. 라우트를 더하거나 지우는 변경에서 걸린다.

  • 새 화면을 여는 작업을 시작할 때 그 목록부터 세고 시작한다. 다 만든 뒤에 세면 배포 직전에 걸린다.

예외

  • catch-all 라우트는 서빙 패턴으로 번역하지 않는다. 모든 미매치 URL 에 index.html 을 주면 엣지 404 가 soft 200 이 된다.

  • 목록이 하나이고 그 목록을 빌드가 강제하면 유도 규칙을 따로 두지 않아도 된다.

예시

/studio/releases 가 평문 404 였다. 라우트도 청크도 있었고 서빙 계약의 손 배열에만 없었다.

  • 같은 배열을 한 번 고치면서 왜 고쳤는지를 주석으로 남겨 두었는데, 다음 사람이 그 배열에 줄을 더할 때 그 주석을 읽지 않았다.

  • 주제 편집 화면을 더하고 청크 이름 표를 빠뜨렸더니 검사 다섯 개를 다 통과한 뒤 빌드 매니페스트 단계에서 멈췄다.

  • 라우트 셋을 더하면서 게이트 기준값을 빠뜨렸다. 게이트가 빨간 채로 여러 커밋을 지나갔다.