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

3.2 KiB

kind, slug, title, topic, topicName, project, status, verifiedOn, sourceRevision, source
kind slug title topic topicName project status verifiedOn sourceRevision source
REFERENCE do-not-draw-a-link-that-does-not-resolve 서버가 준 주소는 라우트 표에 맞춰 보고, 맞는 라우트가 없으면 링크로 그리지 않는다 addresses-frozen-at-publish-time 주소가 만들어지고 굳어지는 곳 TechLog 게시 전 2026-09-04 tech-log@2026-09-02
final/document.md#§9.2

서버가 준 주소는 라우트 표에 맞춰 보고, 맞는 라우트가 없으면 링크로 그리지 않는다

주소를 서버가 만들어 내보내고 화면이 그대로 링크로 그리면, 그 주소가 틀렸다는 것은 방문자만 안다. 화면 코드 어디에도 그 주소가 없기 때문이다. 만드는 쪽과 그리는 쪽 양쪽에서 라우트 표와 맞춘다.

관계

  • 계약은 앵커라고 적었고 만드는 쪽은 경로를 만들었다 이 기준의 근거 사건이다.
  • catch-all 라우트는 nginx 패턴으로 번역하지 않는다 엣지의 404 가 감사에 남아야 이 기준이 성립한다.
  • 라우트에 딸린 목록은 라우트 계약에서 유도하고, 유도할 수 없는 것은 대조 검사를 둔다 라우트 표가 어디서 오는지가 그 기준에 있다.

목적

서버가 만든 주소가 열리지 않는 것을 방문자보다 먼저 잡는다. 이 부류는 화면 코드에 흔적이 없어 저장소 안의 링크 리터럴을 훑는 감사로는 잡히지 않는다.

규칙

1. 만드는 쪽에서 생성한 경로를 공개 라우트 패턴에 맞춘다

종류마다 만들어 낸 주소가 실제 라우트에 걸리는지 백엔드 테스트가 본다.

2. 그리는 쪽에서 서버가 준 주소를 라우트 표에 맞추고, 맞는 라우트가 없으면 링크로 그리지 않는다

같은 부류가 또 생겨도 방문자가 404 를 만나지는 않는다.

3. 주소를 고쳤으면 이미 저장된 행도 함께 고친다

주소가 게시 시점에 굳어져 저장되면 코드만 고쳐도 기존 링크는 깨진 채 남는다.

4. 배포 뒤 서버가 내보내는 주소를 전수로 훑는다

저장소를 훑는 감사와 다른 것을 본다. 실제로 나가는 주소는 DB 에 있다.

적용 조건

  • 주소를 서버가 만들어 내보내고 화면은 받은 문자열을 링크로 그릴 때
  • 게시 시점에 주소가 굳어져 저장되는 구조일 때. 코드만 고치면 이미 저장된 행이 깨진 채 남는다
  • 공개 라우트를 더하거나 지워 주소의 모양이 바뀔 때
  • 배포 뒤 서버가 내보내는 주소를 전수로 훑을 때

예외

  • 외부 주소는 라우트 표에 없으므로 이 대조의 대상이 아니다.

  • 그리는 쪽에만 가드를 두면 링크가 아예 그려지지 않는 것으로 끝나고 원인이 남는다. 만드는 쪽에도 같은 검사를 둔다.

예시

  • 결정 링크가 404 였다. 계약은 앵커라고 적었고 만드는 두 곳이 경로를 만들었다.

  • 배포 후 서버가 내보내는 주소 26개와 주제·축 9개를 더해 35개 전부 200 인 것을 확인했다.

  • 저장소 안의 링크 리터럴을 훑는 감사로는 이 결함이 잡히지 않았다. 그 주소는 코드에 없다.