From 534122dccf6afe9cc45179c61b4d7c472dc5d754 Mon Sep 17 00:00:00 2001 From: Mina Choi Date: Tue, 8 Sep 2026 13:03:11 +0900 Subject: [PATCH] =?UTF-8?q?[docs]=20devlog:=20=EA=B0=80=EC=A7=9C=20?= =?UTF-8?q?=EB=B0=9C=ED=96=89=20=EC=88=98=EC=A0=95=20=EA=B8=B0=EB=A1=9D=20?= =?UTF-8?q?=E2=80=94=20=EC=BD=94=EB=93=9C=EA=B0=80=20f2dad65=20=EC=97=90?= =?UTF-8?q?=20=EC=84=9E=EC=97=AC=20=EB=93=A4=EC=96=B4=EA=B0=94=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 같은 레포를 동시에 작업하던 다른 세션이 커밋하면서, 스테이지에 올려 둔 `PublishModal.tsx`·`Step3DataReview.tsx` 가 그쪽 커밋에 같이 담겼다. 코드는 남아 있지만 커밋 제목이 그 변경을 가리키지 않아 나중에 왜 그렇게 됐는지 찾을 길이 없다 — 기록만 세운다. 히스토리는 고치지 않는다. 다른 세션이 같은 브랜치에 계속 커밋 중이라 되감으면 그쪽이 깨진다. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01QLWEFx4X3XRmKewUKjJWow --- docs/DEVLOG.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/docs/DEVLOG.md b/docs/DEVLOG.md index 776bb61..a172cad 100644 --- a/docs/DEVLOG.md +++ b/docs/DEVLOG.md @@ -77,6 +77,44 @@ DB 를 먼저 세워서 함께 막힌다 — 환경 문제이고 별건이다. JSON-LD 무영향 · llms.txt 무영향 · 객실 0개면 안 그림). 실제 발행본 재굽기 후 `/s/` 에서 데모 껍데기와 안내 문구 확인. +--- + +## 2026-09-08 — 가짜 발행을 없앴다 — 굽지도 않고 [사이트 열기] 를 그렸다 + +**무슨 일** +발행 모달에서 [발행하기] 를 누르면 "발행 준비가 끝났습니다" 토스트가 뜨고 [사이트 열기] +버튼이 생겼다. **서버를 한 번도 안 불렀고, 그 주소는 404 다.** 목록에도 안 생긴다. +사장님은 발행됐다고 믿는다. + +**왜** +`PublishModal.handlePublish` 가 `publisher.isLive`(= placeId + 토큰)가 거짓이면 서버 호출을 +건너뛰고 `setPublishedUrl(url)` 로 스토어에 주소를 박았다. 그러면 `isDone` 이 참이 되어 완료 +화면이 그려진다. 데모 경로를 위해 둔 분기인데 **로그인한 사장님도 이 길로 온다** — 3단계의 +[수집 없이 다음 단계로](직접 입력)로 나가면 서버에 사업장이 없는 채 에디터까지 가고, +거기서 로그인해도 `placeId` 는 여전히 없다. + +**고친 것** +- 가짜 분기 삭제. `isDone` 은 `state.phase === 'published'` 하나로 줄였다 — 굽지 않은 주소에 + [사이트 열기] 가 붙던 자리가 여기다 +- 발행 불가 사유를 `PublishBlocker`(`signin` · `place`)로 갈라 모달 안에서 말한다. + blocker 가 있으면 주소칸·점검·발행 버튼을 아예 그리지 않는다 +- 비로그인: `/login` 으로 튕기지 않고 모달 안에 로그인 폼을 둔다 — 빌더 스토어는 비영속이라 + 튕기면 만들던 게 날아간다(`EditorSignInGate` 와 같은 이유) +- 로그인 O + 사업장 X: 이유를 말하고 [내 가게 확인하러 가기] → `/builder?step=search`. + 여기서 사업장을 몰래 만들지 않는다 — 생성·검증 순서는 `ensureServerPlace` 한 곳이 소유한다 +- 3단계 버튼을 [발행 없이 화면만 둘러보기] 로 바꾸고 "이 길로 가면 발행이 안 된다" 를 붙였다. + 버튼은 남긴다 — 검증을 못 통과한 사람이 화면을 구경할 길까지 막을 이유는 없다 + +**검증** — 프론트 tsc+eslint 통과. 백엔드가 같은 상황을 어떻게 거절하는지도 확인했다: +검증 안 된 사업장으로 발행하면 `PLACE_NOT_VERIFIED` 다. 서버는 이렇게 분명히 막는데 +프론트만 서버를 안 부르고 성공을 말하고 있었다. + +⚠️ 이 변경의 **코드는 f2dad65 에 섞여 들어갔다** — 같은 레포를 동시에 작업하던 다른 세션이 +커밋할 때 스테이지에 올려 둔 `PublishModal.tsx`·`Step3DataReview.tsx` 를 같이 담았다. +그 커밋 제목은 발행본 목록 주소 얘기라 이 변경을 가리키지 않는다. 기록은 여기에 남긴다. + +--- + ## 2026-09-08 — 발행본 목록의 정본 주소를 `/s` 로 — `/s` 가 앱 셸을 200 으로 주고 있었다 **무슨 일**