Skip to content

U06 — 실제 사용자 여정 검증과 확대 범례 겹침 수리 (2026-09-11)

  • 기간: 2026-09-11, Codex U06 한 세션. 오너 지시: “나한테 물어보지 말고 끝까지 완주하고”.
  • 랜딩: 앱 PR1578, release/v0.18.0 d63926b10ddead8db71a5be0458afdb72b7789dd, 16:21:30KST. 자기 diff20파일에 마이그레이션·Edge 변경 없음. 실제 v0.18 staging 미배포, Phase4 미완료.
  • 설계서·정본: U06 검증 장부의 기능별 연결·후보별 결과·예상 효과와 제한.
  • 도구: 앱의 기존 Playwright/격리 Supabase/precheck 및 gitignored work/ 수집 runner. 증거 요약·확대 화면은 문서 저장소에 보존.
  • 게이트: 실제 API53개 최초 실행과 실패21개 선택 재검증, viewport22, InBody1, U01~U05/U07 UI fixture. 최종 precheck와 직전 DB 포함 precheck는 아래 별도 후보로 명시.
  • 버그리포트: BUG-125. 공유 R02의 BUG-122, R03의 BUG-121과 중복 작성하지 않음. BUG124는 R04 작성 중이므로 HQ 조율에 따라 건너뜀.
  • 계약: viewport 정책의 U03 intrinsic canvas·CSS zoom1 기준. 실제 외부 staging 검증은 아직 남아 있음.

Phase 현황

Phase내용상태
Phase 1선행 release 확인·활성 기능·검사 연결로컬 완료
Phase 2실제 API/DB 사용자 여정·입력 보존실행별 증거 완료, 동일 최종 후보53 전수는 최종 통합 판정에 연결
Phase 3표현·키보드·확대·CSS 순서로컬 완료, 범례 수리 release 반영
Phase 4실제 v0.18 staging 핵심 흐름·최종 판정배포 SHA/API 인계 대기·미완료

1. 배경

리팩터링 후 실제 활성 feature를 따라 저장·조회·복구·화면 표시가 이어지는지 확인했다. 원본 데이터와 UI fixture, 실제 서버, native 증거를 구분했다.

2. 문제 제기

기존 CASE 일부가 폐기된 controller 응답·자동 재로딩·저장 표시·desktop 축소 배율을 기대했다. 최초 browser53은32성공21실패였고 DB precheck는 원본 삭제와 관측 계산의 FK 교착으로 실패했다. 실제 확대 화면에서는 범례 텍스트가 약27.45px 옆 셀을 침범했다.

3. 해결 방안

원칙과 접근

현재 제품 계약에 검사를 연결하되 원문·operation/revision·독립 DB 재조회·오류 접수·정리 단언을 유지했다. 실패 단언을 지우거나 기다리는 시간을 늘리는 방식은 원인을 확인하지 못하므로 채택하지 않았다. 공유 통계 수리는 HQ가 지정한 R04의 정확한 커밋을 소비하고 자체 DB로 재검증했다.

4. 적용한 내용

Phase 1~3 — PR1578

CASE010은 실제 Feed chunk404 한 건, 명시 재열기 전 문서 유지, 정상/보관 중 상태, 정확한 오류 기록, 재진입 후 같은 인증과 피드를 확인한다. InBody는 CSV→RPC→측정값/배치→storage byte/hash→재진입→중복쓰기0→정리를 실제 격리 API로 검증한다. 확대 캡처를 실제 전체 물리 viewport로 맞추고 범례는 폭에 따른 열·줄바꿈·최소 높이로 수리했다.

주요 결정과 그 근거

R02/R03/R04 공유 수리는 release4fe99af0에 먼저 반영되어 최종 자기 diff에서 빠졌다. 최신 release 충돌은 CASE010의 현재 명시 재열기 단언과 R02 새 검사 분류를 함께 보존했다. 자기 HEAD4042c50e를 clean 상태에서 precheck한 뒤 정상 Merge Check로만 병합했다.

작업 중 드러난 것

최초 CASE035 Auth 정리 오류의 상세 원인은 미확인·현재 미재현이다. D04 검사 경계의 후속 실패는 source capture 전 잠금을 사용한 원인을 측정해 R04 fixture 수리 후 통과했다. 최초 Chromium spawn UNKNOWN과 첫 시각 재현 timeout도 원인 미확인 이력으로 남겼다. 한 초기 선택 runner가 queue용4173을 사용한 사실을 기록했고 종료·정리 후 후속 runner는 자기4353으로 교정했다. 전체 CI나 다른 queue를 실행·조작하지 않았다.

5. 적용 결과

항목결과
실제 API browser53최초32P/21F→실패21개 후속 선택에서 모두PASS. 다른 후보 결과를53전수PASS로 합산하지 않음
viewport최초20P/1F/1미실행→D1/D3선택2/2PASS
InBody실제 격리 API1/1PASS, 본인 데이터/원본 파일/중복/정리 확인
UI fixtureU01 16/16, U04 21/21, U02 22/22, U05 8/8, U03기본25·확대4, U07 10/10. 실제API/native와 구분
범례침범27.45px→모든 텍스트 셀/카드 경계PASS, 확대4/4·CSS순서10/10
DB 포함 precheck후보0d207d43/base607647ef, local-1789110146801-117784, 16:12:30KST, 604.704초. 단위3624P/0F/98skip, pgTAP121파일2435assert, DB75/75,660세션7920세트 CRUD/수렴/취소/정리PASS
최종 precheck후보4042c50e/base4fe99af0, local-1789111029167-91928, 140.633초. static/unused/build/artifact,단위3624P/0F/100조건skip. 자기diff서버변경없어DB는대상아님
releaseMerge Check34573932896 SUCCESS→d63926b1, tree8d5e38255ee0ffc5eb444b1ceaedc2fa9adeea1d. Full 성공 기록이 아님
실제 staging·native·Productionv0.18 staging 미배포·Phase4미완료, 실제native/OS IME/외부OAuth/스크린리더 음성/Production미검증

6. 이번 개선으로 향상된 것

현재 앱에서 사용자 입력과 결과가 이어지는지 확인

옛 표시 문구에만 맞추던 검사를 실제 요청·응답·원본·재진입까지 연결했다. 저장 성공처럼 보이는 화면과 실제 저장을 분리해 판정할 근거가 남았다.

확대 화면의 읽기와 검토 정확성

텍스트를 줄이지 않고 카드 안에 배치하며 실제 전체 화면과 좌표를 함께 남겼다. 문서 넘침이 없어도 내부 텍스트가 겹치는 결함을 검출한다.

남은 것

R05가 실제 v0.18 staging 배포 SHA/URL/API와 승인 계정 주입 경로를 인계하면 기존 외부배포15CASE를 E2E_EVIDENCE=off로 실행한다. 기본CRUD12성공을 U06 완료로 대체하지 않는다. 최종 통합 Full/53결과는 동일 후보 기준으로 연결하며, 이 기록은 Phase4 완료를 주장하지 않는다. Production 승격·이슈 종결은 별도 운영 범위다.