주제 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>
48 lines
2.5 KiB
Markdown
48 lines
2.5 KiB
Markdown
---
|
|
kind: PROJECT_DECISION
|
|
slug: a-new-route-ships-frontend-first
|
|
title: 새 라우트는 프론트엔드를 먼저 배포한다
|
|
topic: addresses-frozen-at-publish-time
|
|
topicName: 주소가 만들어지고 굳어지는 곳
|
|
project: TechLog
|
|
status: 게시 전
|
|
decisionStatus: ADOPTED
|
|
decidedOn: 2026-09-01
|
|
sourceRevision: tech-log@2026-09-02
|
|
source:
|
|
- final/document.md#§9.1
|
|
---
|
|
|
|
# 새 라우트는 프론트엔드를 먼저 배포한다
|
|
|
|
새 라우트를 여는 변경은 프론트엔드를 먼저 배포한다. nginx 설정이 라우트 계약에서 생성되므로, 프론트가 배포되기 전까지 그 경로는 엣지에서 404 다. 백엔드를 먼저 배포하면 서버는 이미 그 주소를 내보내고 사용자는 전부 404 인 화면을 본다.
|
|
|
|
## 근거
|
|
|
|
- **축 링크가 자기 자신을 가리켰고, 고친 뒤에는 백엔드를 먼저 배포했다**
|
|
이 순서를 정하게 된 사건이다. 반대 순서로 배포해 사용자가 네 링크 전부 404 인 화면을 봤다.
|
|
- **nginx 가 모르는 라우트는 새로고침에서 404 다**
|
|
엣지가 왜 그 경로를 모르는지가 그 기록에 있다.
|
|
- **catch-all 라우트는 nginx 패턴으로 번역하지 않는다**
|
|
이 순서가 필요해진 이유가 그 결정에 있다.
|
|
|
|
## 결정문
|
|
|
|
새 공개 라우트를 여는 변경은 프론트엔드를 먼저 배포하고, 그 주소를 내보내는 백엔드 변경을 다음 배포에 넣는다.
|
|
|
|
## 판단 이유
|
|
|
|
nginx 설정은 라우트 계약에서 생성된다. 프론트 이미지가 배포되기 전까지 그 경로는 서빙 패턴에 없고, 엣지에서 404 로 끝난다.
|
|
|
|
백엔드를 먼저 배포하면 서버는 이미 그 주소를 링크로 내보낸다. 방문자는 화면에 그려진 링크를 누르고 404 를 만난다. 축 화면을 만들 때 실제로 그렇게 배포했고 사용자가 네 링크 전부 404 인 화면을 봤다.
|
|
|
|
catch-all 을 서빙 패턴으로 번역하지 않기로 했으므로 이 구간이 soft 200 으로 덮이지 않는다. 그 결정과 이 순서는 함께 간다.
|
|
|
|
## 영향
|
|
|
|
새 주소를 내보내는 백엔드 변경이 한 배포 늦게 나간다. 두 저장소를 한 번에 배포하고 싶은 변경에서 그 사이가 벌어진다.
|
|
|
|
프론트를 먼저 배포한 뒤에는 그 경로가 열려 있지만 서버가 아직 그 주소를 내보내지 않는다. 이 구간에서는 화면에 링크가 그려지지 않으므로 방문자에게 보이는 문제가 없다.
|
|
|
|
배포 순서를 사람이 기억해야 한다. 이 순서를 강제하는 검사는 없다.
|