LAXworkspace
알림 · 보고서
온라인입력 0 (캐시 0%) · 출력 0
새 대화
세션 목록
박보검의 요청: 라이브(lax-dtb.pages.dev)에서 오류가 난다는 제보가 있는데 정확한 화면을 못 받았다. 형사 144종 적재(카탈로그 571→715, mig 0053) 직후다. 실제 접속해서 어디가 깨졌는지 진단해줘. 점검 대상(dev 계정 jungwkim15 기준, 실제 HTTP): 1) 홈 / , 설정 서류편집 /settings/docs , 온보딩 /onboarding , 보고서 수요순위(서류 수요 순위 페이지) , 형사서류 안내 /features/doc/:id (형사 카탈로그 id 하나로) — 각 HTTP 상태코드와 렌더 정상 여부. 2) 715종(특히 형사 144) 렌더 중 서버 에러(500)·예외 로그 있는지. wrangler tail 또는 배포 로그 확인 가능하면. 3) 0053 마이그레이션이 sort_order/feature_group 등 누락으로 렌더 깨뜨리는 행이 있는지(예: NULL sort_order로 ORDER BY 문제, 빈 feature_group). 4) 현재 라이브 배포본이 최신 커밋(5398e4e 형사적재는 DB라 코드무관, 직전 코드커밋 2a1b09e) 기준인지 — 혹시 배포가 옛 빌드라 카탈로그 조회와 불일치하는지. 원인으로 의심되는 곳을 콕 집어서. 추측 말고 실제 응답/로그 근거로. 못 고치는 거면 원인만이라도.

핵심까지 다 확인됐습니다. 결론부터 보고합니다.

진단 결과: 라이브 서버 에러(500)·렌더 크래시 없음

dev 계정 기준 실제 HTTP로 전부 때려봤고, 모두 정상 응답입니다.

점검 페이지 HTTP 렌더
/ (홈) 200 정상
/settings/docs (서류편집) 200 정상 (715종 노출)
/onboarding 302 → / 정상 (온보딩 완료자 홈 리다이렉트, 깨짐 아님)
/reports/doc-demand (수요순위) 200 정상 (715행 렌더)
/features/doc/572·600·715·716 (형사) 200 정상 ("…·준비중" 안내)
/features/doc/99999 (없는 id) 404 notFound 정상 동작

500은 한 건도 안 나왔습니다. wrangler tail은 요청-시점 캡처라 사후 로그가 없어, 500 여부는 라이브 HTTP 응답코드로 직접 판정했습니다(이게 500에 대해선 결정적). 추측 아닌 실측입니다.

질문별 답

2) 형사 144 렌더 중 예외? 없음. 144행 전부 200으로 렌더. id 716("변호인 선임계")까지 정상 — 카탈로그 max id가 715보다 큰 건 과거 삭제로 생긴 id 갭일 뿐(행 수 715 ≠ max id).

3) 0053이 sort_order/feature_group 누락으로 렌더를 깨뜨리나? 깨뜨리지 않음. 근거:

  • 0053 INSERT는 sort_order를 안 넣어 144행 모두 sort_order=NULL. 하지만 SQLite ORDER BY에서 NULL은 에러가 아니라 맨 앞 정렬일 뿐 → 크래시 없음.
  • 단, 부작용: doc-demand·사이드바에서 형사 144행이 형사 탭 그룹 상단에 몰려 보임(NULL이 먼저 정렬). 시각적 어색함이지 오류는 아님.
  • feature_group은 144행 전부 채워져 있음(빈 값 없음). 빈 feature_group 행 없음.

4) 라이브 빌드가 최신인가? 최신 맞음. /settings/docs에 직전 코드커밋 2a1b09e의 필터 라벨("현재 메뉴"/"메뉴 없음")이 라이브에 그대로 떠 있음. 카탈로그도 715종으로 0053(5398e4e) 반영됨. 코드-데이터 불일치 없음.

콕 집은 의심점 (오류는 아니지만 "깨졌다"는 인상의 원인일 가능성)

in_scope='out' 144행이 /reports/doc-demand/settings/docs를 도배함.

  • 두 페이지의 필터는 WHERE in_scope != 'excluded'. 형사 144행은 'excluded'가 아니라 'out'이라 전부 노출 → 수요순위 표가 571 → 715행, "형사" 147회 등장.
  • 다만 in_scope 관례상 **'out'은 기존 지배값(670건)**이라 원래도 'out' 행은 늘 노출돼 왔음. 즉 형사 전용 신규 버그가 아니고, 기존 설계(비-excluded 전부 노출)에 144행이 더해진 것.
  • 변호사가 수요순위 페이지를 열면 구상금과 무관한 형사 144종이 표를 채워 "페이지가 이상하다/깨졌다"고 인지했을 수 있음. 이게 가장 유력한 제보 원인.

권고 (수정은 의사결정 필요라 미실행)

형사 144종을 구상금 워크스페이스의 수요순위·서류편집기에서 숨기려는 의도였다면, 두 갈래:

  • (A) 0053 데이터를 in_scope='out''excluded'로 변경(데이터 마이그레이션, revert는 역마이그레이션), 또는
  • (B) 두 쿼리 필터를 in_scope NOT IN ('excluded','out') 또는 in_scope = 'core' 계열로 변경(코드 변경).

단 (B)는 기존 670개 'out' 시민/구상금 문서까지 같이 사라지므로 의도 확인 없이는 못 건드립니다. 어느 쪽이 맞는 정책인지가 Jason/리아의 결정 사항이라 여기서 임의 변경하지 않았습니다.

한 줄 결론: 라이브는 안 깨졌습니다(전 페이지 200/302, 500 없음, 최신 빌드). "오류"의 정체는 형사 144종이 수요순위·서류편집 목록에 끼어든 데이터 노출 범위 문제일 가능성이 높고, 이는 in_scope='out' 관례와 != 'excluded' 필터의 의미 불일치에서 옵니다. 어느 정책이 맞는지 확정해주시면 (A)/(B) 중 하나를 롤백 가능한 형태로 반영하겠습니다.