Skip to content

#1592 Phase 3 — 입력 32행·공개 28행 적용·검증 상태표

2026-09-14. 입력 경로 조사표의 32행과 공개 영역 조사표의 28행(원표 26 + D1·D2)에 대해 Phase 3 후보의 구현 경계로컬 검증 증거를 대조한다. 최종 목표(입력 즉시 반응·완성본 공개·실제 대기 시간·향후 일관 적용)는 계약이 정한다. 이 표는 "각 행에 무엇이 적용됐고 어떤 검사가 있는가"의 기록이며, 성능 합격·release 반영·Production 검증을 뜻하지 않는다.

기준 후보: 앱 feat/1592-responsive-loading 908e7b29(release/v1.0.0 9a37e73c 병합 후), 테스트는 QA1 0bb392c0(suite tree f798c634)의 suite/tests/…. 2026-09-14 #1591로 앱 테스트 소유권이 QA1로 옮겨졌으므로 아래 검사 파일 경로는 QA1 suite 기준이며, 앱 작업 트리에는 npm run qa1:prepare로 준비된다.

읽는 법

  • 동작 증거: 실제 store·controller·binding·UI(모바일 390×844 / PC 1440×1000 Chromium 또는 SSR)를 붙이고 외부 응답의 도착 순서·실패만 제어한 검사가 그 행의 계약(대기 중 입력·완성 후 공개·무효화·실패/재시도·늦은 응답)을 검사한다. 테스트가 준비 상태를 대신 ready로 주지 않는다.
  • 부분 증거: 공용 store 단위 검사·공용 UI 경계 검사·기존 계약 검사는 있으나, 그 행의 실제 binding→DOM 경로를 이번 후보에서 검사하지 않았다. 마지막 열의 공백을 지우기 전에는 그 행을 "검증 완료"로 세지 않는다.
  • 모든 행에 공통으로 남는 것: Phase 4의 실제 규모(1/4/10년) 성능 계측, 신규 개발 규칙 연결, release 반영·Production 확인.

입력 32행

ID적용된 구현 경계판정동작 증거(QA1 suite/tests/react/)남은 증거 공백
N01 모바일 탭/재선택준비 intent 취소→동기 탭/stack 전환, pressed/deferred pane 분리 유지부분navigation 단위, 준비 셸 닫기(E)루트 탭별 cold chunk/data 보류 중 강조·목표 제목 first paint 브라우저
N02 PC 탭·홈 날짜/주간 이동사이드바 강조는 누른 탭 즉시, 본문 판은 지연 값(useDeferredValue)·판마다 Suspense fallback, 판 상태 정리는 같은 transition(Phase 4), 준비 취소부분E 단위, 저장 중 다른 탭 이동(desktopComposeClose.browser), 구조 핀 responsivenessPhase4Gate.test, Phase 4 계측(PC 리포트·달력 진입 cold/warm — 검증 기록 Phase 4 표)재방문 재마운트(비활성 판 unmount 구조)와 provider 값 재생성으로 남는 동기 비용 — 검증 기록 Phase 4
N03 모바일 메뉴동기 drawer state/history부분기존 navigation 계약조회·청크 준비 중 열기/닫기 DOM
N04 드로워 도구도구 청크 fallback에도 실제 뒤로 handler(MobileStackBindings)동작 증거recordsToolChunkPublication.browser 1/1 (보류된 청크 중 닫기, 늦은 청크 재열림 없음)도구별 cold chunk 전수
N05 depth/OS/swipe back기존 requestPop/finishPop 수명에 준비 취소 연결부분E 준비 close/late reply, native-back 단위새 준비 화면별 4경로 back 실제 DOM
N06 신규 운동/복귀동기 intent+layer, eager 준비/lazy fallback부분entry policy 61묶음(E)실제 버튼→cold catalog/chunk→편집기·닫기 전체 여정
N07 기존 세션으로 시작workoutEntryIntent preparing→ready/error/cancelled, canonical detail 전 셸 공개동작 증거workoutEntryPreparation.test 18, workoutEntryPublication.browser 6PC 노출 시작 버튼은 없음(공유 binding desktop mode만)
N08 그룹 보드 시작catalog 전 entry token, custom 등록 전후 intent fence동작 증거위와 같음(catalog/custom hold·취소·late)이미 보낸 custom write의 서버 취소는 범위 밖
C01 모바일 월/오늘calendarPublication month snapshot+projection, grid chrome 밖 boundary, 월 이동은 화면 로컬 상태 즉시 + 루트 상태 transition(Phase 4)동작 증거calendarResourcePublication.browser, calendarPublication.test, 구조 핀 responsivenessPhase4Gate.test, Phase 4 계측(1년·4배 CPU): 월 이동 cold 첫 반응 p95 38ms·동기 28ms·완성 586ms, warm 39ms 합격월 이동 cold 마지막 데이터→공개 244ms(합격선 100) — 검증 기록 Phase 4 원인 1
C02 모바일 일/주/월day/week/month status·retry, range=exact+필수 월+완료일 상세(최대 4 병렬)동작 증거위와 같음, 단위 93일/4병렬/owner주간 drawer 자체 조합(WEEK_BAR_UI=false)
C03 모바일 홈 날짜선택+loading 먼저, canonical detail ready/error 후 적용, 유효 재방문은 projection 재사용부분home day coordinator 단위, homeCompleteReveal.browser(홈 본문)실제 MobileHomeBinding→day overlay hold/error/close 브라우저
C04 PC 홈 날짜coordinator→homeDayModal, DkH3Recap portal 독립 닫기동작 증거desktopHomePublication.browser 1/1 (연간 resource→binding→projection→날짜 modal)
C05 PC 일/주/월·세션calendarPublication+DesktopCalendarBinding, session retry/error 배선, 주간 합계 행은 걸친 달 전부의 상태 결합 뒤 공개(Phase 4)동작 증거calendarResourcePublication.browser 3/3 (PC 세션 오류→상세 유지·retry 포함), 구조 핀 responsivenessPhase4Gate.test, Phase 4 계측 PC 달력 진입 cold 20/20 관측(첫 계측의 늦은 정정 10/20 → 0)모든 주간/세션 토글 조합
S01 완료 상세sessionDetailStore 원자 pending/selection/error+retry, PC error에서 selected summary 유지동작 증거workoutEntryPublication.browser(M error/retry), sessionDetailStore.test 10, PC 세션 오류 브라우저(C05)
S02 계획 상세lite 가림, full source+동일 revision만 공개, M dataStatus/error/retry동작 증거(M) / 부분(PC)workoutEntryPublication.browser(M 계획 summary 비공개)PC 계획 lite/held full/error 브라우저
E01 신규 기록/계획 편집create intent 동기, 준비 body와 shell 분리부분entry 단위(E), 실제 compose(W)cold editor code/catalog 중 셸/close 전 과정
E02 완료 기록 편집forced canonical detail 전 eager 준비, PC editor onReady handoff동작 증거E 18/6, compose 연결(W)PC editor 실제 mount handoff 전체 단언
E03 계획 편집preparing→forced canonical/readOnly→draft동작 증거E 실제 binding hold/readonly/cancelE02와 같음
W01 완료 저장/자동 저장durable/receipt/write command 유지, stats recovery 완료=마지막 exact calendar부분W PC 저장 hold, C recovery, write/draft 단위모바일 자동 저장 IDB+RPC 지연 첫 반응·receipt→홈/리포트/달력 재공개
W02 시간 수정/삭제기존 pipeline+UI busy, 영향 resource invalidation 공통 연결부분write/OCC 단위실제 picker/삭제 화면 receipt 전후 DOM
W03 계획 저장·입력·닫기compose open/request 분리, retainChildren, collapsed progress/reopen, requestId+tab fence동작 증거desktopComposeClose.browser 3, 관련 96모바일 plan exit 수명은 단위
G01 그룹 탐색/날짜즉시 target/view, board/days/marks 각각 publication동작 증거groupPublication.browser 8, groupPublication.test규모 실측(Phase 4)
G02 그룹 상세·작성·초대·설정doneSession error/retry, writePending, ACK 뒤 full projection 갱신부분G detail open/close/error, partial ACKcreate/composer/settings/invite 하위 폼 전수 DOM
F01 친구 페이지/탭/일지/상세friendScopeStore actual validity, week/month range 선택·payload, 탭 전환·닫기는 데이터와 독립동작 증거friendScopePublication.browser 3(홈 세 원천·피드 탭 즉시 전환·세션 오버레이 닫기/늦은 응답), friendRangePublication.browser 2(월간), friendScopeRange.test 3, store 17친구 세션 오버레이의 소유자 표기가 뒤로가기 버튼을 덮던 실제 결함을 이 검사가 잡아 수리(primitives.css)
F02 피드 좋아요·댓글optimistic like 유지, 댓글 read validity+partial ACK 재조회동작 증거feedCommentPublication.test, G 댓글 sheet(browser)모든 submit/delete 조합
F03 신고/차단blocked-list publication, 기존 submit/unblock pending부분P 차단 목록 source→sheet신고 메뉴/제출 held RPC DOM
F04 알림readPending/readAllPending→BrandRow, 최초/read/append 독립동작 증거notificationPublication.browser 3, notificationPublication.testtarget overlay 둘 중 하나 보류
P01 모바일 프로필 변경workspace boundary, 완성 뒤 draft, 기존 save busy부분profilePublication.browser(M 준비 modal close)각 form 응답 보류·실패 후처리
P02 PC 프로필 변경useProfileAction field busy, dirty input 분리동작 증거profilePublication.browser 6
T01 기록/커스텀/회복 도구manualResource 전량, ACK 뒤 invalidation, recovery skeleton boundary동작 증거manualRecordsPublication.browser 3, recoveryPublication.browser 2(+14), custom(P)trainingStyle·즐겨찾기 모바일 폼 전수
Q01 검색echo/IME/debounce 유지, full index ready/error/owner+10초, catalog version동작 증거homeFeedSearchPublication.browser 8(M/PC 검색)IME race, 40페이지 상한·10년 인덱스(Phase 4)
X01 법률·서비스·내보내기/가져오기Legal overlay 기존 skeleton/error/retry, export pending, import 기존 epoch부분P PC export held, legal 계약법률 fetch hold, 모바일 export, import 파일 지연 DOM

공개 28행

ID적용된 구현 경계판정동작 증거(QA1 suite/tests/react/)남은 증거 공백
H1 모바일 홈homePublicationStatus(home/PR/favorites/recovery·today·요구 세대)→HomeScreen boundary부분homeFeedSearchPublication.browser(양 순서/refresh/error), homePublication.test, homeCompleteReveal.browser 8실제 MobileHomeBinding→provider 경로(브라우저는 UI 공급)
H2 PC 홈 통계H1 + yearActivity publication 결합, 재확인 중 이전 projection 비공개동작 증거desktopHomePublication.browser 1/1
H3 PC 홈 피드feedResource publication→SocialFeature→독립 feed column동작 증거homeFeedSearchPublication.browser(firstpage invalidation·append)실제 DesktopHomeBinding provider 배선 브라우저
H4 홈 날짜 M/PCcurrent key·cancel, skeleton/ready/error/retry동작 증거(PC) / 부분(M)desktopHomePublication.browser모바일 실제 binding→modal(C03)
C1 월 격자·합계months snapshot/발행모델 유효성 boundary동작 증거calendarResourcePublication.browser
C2 선택일month+day full projection/세대, chrome/숫자 분리동작 증거위와 같음
C3 주/월range exact+필수 months+완료 day details, status UI동작 증거위와 같음, desktopVolumePublication.browser(PC 리포트 날짜/기간)친구 range는 F3
F1 내 피드full first-page publication, append 분리, retained rows 가림동작 증거homeFeedSearchPublication.browser
F2 친구 홈3원천/freshness, onRetryHome동작 증거friendScopePublication.browser(대시보드·PR·즐겨찾기 세 원천 대기, 강제 재조회 시 이전 홈 숨김, 오류→재시도), friendScopeStore 17
F3 친구 달력/날짜monthStatus/selectedDayStatus/retry, range 선택·payload부분friendRangePublication.browser 2(월간 즉시 열기·숫자 숨김·재시도·늦은 답장)month/day 실제 binding 브라우저
F4 친구 피드target-key feedResource publication동작 증거friendScopePublication.browser(탭 즉시 강조, 첫 페이지 대기, 재조회 중 보관 행 숨김, 실패→재시도)친구 target 변경/close 조합
F5 친구 리포트friend report validity→core revision/generation부분리포트 코어 Rfriend resource→binding→core 통합
F6 친구 세션pending/error/ready identity+retry동작 증거friendScopePublication.browser(상세 대기 중 스켈레톤, 닫은 뒤 늦은 응답 폐기, 실패→오버레이 안 재시도·중복 없음)
G1 목록/초대/미니보드actual read validity, GroupList boundary동작 증거groupPublication.browser
G2 라운지/출석lounge·attendance 별도 status/key동작 증거위와 같음
G3 화이트보드board·days all-ready 조합동작 증거위와 같음(board 먼저/days 먼저)
G4 종목기록/월마크days 기반 기록 status, month marks status동작 증거위와 같음
G5 그룹 상세target 먼저, error/retry, close abort동작 증거위와 같음
Q1 모바일 검색catalog+전체 index publication동작 증거homeFeedSearchPublication.browser40페이지 상한 표시
Q2 PC 검색catalog+index 조합, counts/results boundary동작 증거위와 같음
P1 기본/신체/인입profileResource read status→profilePublication동작 증거profilePublication.browser
P2 연결/커스텀latest revision + read/write 분리동작 증거위와 같음
P3 차단 목록moderationStore read validity동작 증거위와 같음
S1 완료 상세 M/PCdataStatus/error/retry→양 boundary동작 증거E(M), C05(PC)
S2 계획 상세 M/PClite 가림, current full 전 body 가림동작 증거(M) / 부분(PC)EPC 계획 상세 브라우저
R1 종목 상세/PR M/PCinitial/year/records/history fragment 일치 후 공개, 연도·보관 status/retry동작 증거prDetailPublication.browser 11/11
D1 PC 기록표·셀/날짜/종목 서랍월 error·셀 loading/error·날짜/종목 서랍 status, 유효 캐시 재사용동작 증거desktopLogTablePublication.browser 3/3
D2 PC 커스텀 운동 그룹catalogPublication→그룹 binding, 미완성 catalog로 로컬 id 정규화 금지동작 증거desktopFavoriteGroupsPublication.browser 2/2 (+12)

집계

  • 동작 증거 행: 입력 19 / 공개 23 (Phase 4에서 friendScopePublication.browser로 F01·F2·F4·F6을 보강). S02·H4처럼 M/PC 중 한쪽만 동작 증거인 행은 위에 "동작 증거(한쪽) / 부분"으로 적었고 이 집계에서는 동작 증거 쪽에 세지 않는다. 부분 증거 행: 입력 13 / 공개 5. 구현 경계가 없는 행은 없다.
  • 부분 증거 18행의 공백은 결함이 확인됐다는 뜻이 아니라, 이번 후보에서 그 행의 실제 binding→DOM 경로를 검사한 증거가 없다는 뜻이다. 공용 store·boundary 검사가 같은 코드 경로를 통과하더라도 행별 완료로 세지 않는다.
  • 겹치는 입력/공개 행을 화면 수나 검사 수로 더하지 않는다.