feat: Flyway 뷰어 UI 개선 — 순서역전 표시 / dev·prod 파이프라인#255
Conversation
- /flyway 라우트 + 사이드바 메뉴 - flyway API/쿼리 모듈 (overview/script/wip) - FlywayViewer: 4단계 파이프라인, 같은번호 충돌·순서역전 배너, 검색/상태필터, 마스터-디테일(CodeMirror SQL), 다음 안전 번호 - WipRegisterForm: 작업중 등록(새/기존 테이블, 기존 테이블 검색) → 백엔드 이슈 생성
- STATUS_META: MERGE_PENDING→'dev 반영', DB_APPLIED→'prod 반영'
- 순서역전 행: 좌측 컬러 세로선(컬럼=빨강, 테이블=주황) + 인라인 배지
('⚠ 컬럼 역전' / '🔀 순서 역전')
- 상단 배너 severity 표기: TABLE→'테이블', COLUMN→'컬럼'으로 한글화
- SQL 패널: 선택 마이그레이션이 순서역전 대상이면 경고 블록 표시
(공유 테이블/컬럼명 하이라이트, 강약 구분 색상)
jaeyoung-kwon
left a comment
There was a problem hiding this comment.
🤖 PR Review
⚠️ 수정이 필요한 리뷰 코멘트가 있습니다.
UI 개선 방향과 구현이 전반적으로 올바르나, WipRegisterForm에서 성공 후 폼 초기화 또는 버튼 비활성화가 없어 GitHub 이슈가 중복 생성될 수 있습니다.
🚨 0 Critical ·
수정 필요
-
admin/src/pages/flyway/WipRegisterForm.tsx:26 — WipRegisterForm 성공 후 중복 제출 가능
onSuccess에서 쿼리 무효화만 수행하고 폼 상태를 초기화하지 않습니다. 제출 성공 후에도canSubmit이true로 유지되어 사용자가 실수로 다시 "저장"을 누르면 동일한 내용으로 GitHub 이슈가 중복 생성됩니다.수정 방법:
onSuccess에서 폼 필드를 초기화(setDescription(''), setPlannedVersion(defaultVersion)등)하거나, 버튼disabled조건에!!data를 추가(disabled={!canSubmit || isPending || !!data})하여 중복 제출을 방지하세요.Claude 검증: 변경 diff의
admin/src/pages/flyway/WipRegisterForm.tsx:26-31기준으로 확인했습니다. (confidence 0.88).
참고
-
admin/src/pages/flyway/FlywayViewer.tsx:475 — leapfrogBackground — COLUMN 심각도에서 active 상태 미반영
leapfrogBackground함수는active파라미터를TABLE심각도에서만 사용합니다(active ? '#FFFBEB' : '#FFFEF5').COLUMN심각도 행이 선택(active)되어도 배경색이 동일(#FFF5F5)하여 선택 여부를 시각적으로 구분할 수 없습니다. COLUMN 케이스에도active분기 추가를 고려하세요. -
admin/src/pages/flyway/FlywayViewer.tsx:455 — Panes 컨테이너 높이 540px 하드코딩
height: 540px은 고정값이라 화면 높이나 상단 콘텐츠 양에 따라 패널이 잘리거나 불필요하게 짧아질 수 있습니다.calc(100vh - Npx)또는flex: 1+ 부모overflow: hidden방식을 고려하세요.
📋 검증 과정
- Claude structured review 결과 중 확신도가 있는 항목만 정리했습니다.
- Critical/Major는 inline comment로 게시하고, Minor는 참고 항목으로 summary에 포함합니다.
- 자동 생성된 OpenAPI 타입 선언 파일과 lock 파일은 리뷰 대상에서 제외합니다.
routeTree.gen.ts(*.gen.ts)는 생성 파일로 리뷰에서 제외했습니다.
🤖 Claude PR Review
Generated by Claude Code
* hotfix: ios일 때 알림 탭이 보이지 않도록 수정 * hotfix: 웹일때 알림 설정이 보이는 문제 수정 * hotfix: ios일때 알림 설정 페이지로 접근하지 못하도록 수정 * hotfix: ios에서 알림 설정 탭이 보이지 않는 문제 수정 * [BOM-1042] refactor: 랜딩페이지 인덱싱 정책 수정 (#173) * chore: 랜딩페이지 robots 태그 수정 * chore: 사이트맵 업데이트 * hotfix: 회원가입 페이지에서 profile api가 호출되지 않도록 수정 * Revert "[BOM-1053] fix: 안드로이드 highlight toolbar 에러 해결 (#180)" This reverts commit a83ca25. * hotfix: 카테고리 알림이 토글되지 않는 문제 수정 * Reapply "[BOM-1053] fix: 안드로이드 highlight toolbar 에러 해결 (#180)" This reverts commit f906d17. * [BOM-1066] nanumgothic으로 폰트 변경 (#188) * feat: nanumgothic으로 폰트 변경 * feat: 800-> 700 font weight 변경 * chore: trigger frontend deploy * chore: trigger maeil-mail deploy * feat: Flyway 뷰어 UI 개선 — 순서역전 표시 / dev·prod 파이프라인 (#255) * feat: 어드민에 Flyway 버전 형상 뷰어 추가 - /flyway 라우트 + 사이드바 메뉴 - flyway API/쿼리 모듈 (overview/script/wip) - FlywayViewer: 4단계 파이프라인, 같은번호 충돌·순서역전 배너, 검색/상태필터, 마스터-디테일(CodeMirror SQL), 다음 안전 번호 - WipRegisterForm: 작업중 등록(새/기존 테이블, 기존 테이블 검색) → 백엔드 이슈 생성 * feat: Flyway 뷰어 UI 개선 — 순서역전 행 표시 / dev·prod 파이프라인 레이블 - STATUS_META: MERGE_PENDING→'dev 반영', DB_APPLIED→'prod 반영' - 순서역전 행: 좌측 컬러 세로선(컬럼=빨강, 테이블=주황) + 인라인 배지 ('⚠ 컬럼 역전' / '🔀 순서 역전') - 상단 배너 severity 표기: TABLE→'테이블', COLUMN→'컬럼'으로 한글화 - SQL 패널: 선택 마이그레이션이 순서역전 대상이면 경고 블록 표시 (공유 테이블/컬럼명 하이라이트, 강약 구분 색상) * Revert "feat: Flyway 뷰어 UI 개선 — 순서역전 표시 / dev·prod 파이프라인 (#255)" (#257) This reverts commit 4164e5c. * feat: 읽기 통계·마이페이지 랭킹 API 생성 및 pet API 이동 OpenAPI 스펙(reading calendar/dashboard, member join-days, rank summary) 기반 generated 모듈 추가. 스펙에서 빠진 pet API는 web/src/apis/pet로 이동하고 중복 article generated는 제거 --------- Co-authored-by: Jeongeun Lee <leeju1009@gmail.com> Co-authored-by: deokbin <deokbin@naver.com> Co-authored-by: Lee Jeongeun <106021313+JeLee-river@users.noreply.github.com> Co-authored-by: Deokbin Kim <162319857+Db0111@users.noreply.github.com> Co-authored-by: Cheol Won <76567238+Ryan-Dia@users.noreply.github.com>
* hotfix: ios일 때 알림 탭이 보이지 않도록 수정 * hotfix: 웹일때 알림 설정이 보이는 문제 수정 * hotfix: ios일때 알림 설정 페이지로 접근하지 못하도록 수정 * hotfix: ios에서 알림 설정 탭이 보이지 않는 문제 수정 * [BOM-1042] refactor: 랜딩페이지 인덱싱 정책 수정 (#173) * chore: 랜딩페이지 robots 태그 수정 * chore: 사이트맵 업데이트 * hotfix: 회원가입 페이지에서 profile api가 호출되지 않도록 수정 * Revert "[BOM-1053] fix: 안드로이드 highlight toolbar 에러 해결 (#180)" This reverts commit a83ca25. * hotfix: 카테고리 알림이 토글되지 않는 문제 수정 * Reapply "[BOM-1053] fix: 안드로이드 highlight toolbar 에러 해결 (#180)" This reverts commit f906d17. * [BOM-1066] nanumgothic으로 폰트 변경 (#188) * feat: nanumgothic으로 폰트 변경 * feat: 800-> 700 font weight 변경 * chore: trigger frontend deploy * chore: trigger maeil-mail deploy * feat: Flyway 뷰어 UI 개선 — 순서역전 표시 / dev·prod 파이프라인 (#255) * feat: 어드민에 Flyway 버전 형상 뷰어 추가 - /flyway 라우트 + 사이드바 메뉴 - flyway API/쿼리 모듈 (overview/script/wip) - FlywayViewer: 4단계 파이프라인, 같은번호 충돌·순서역전 배너, 검색/상태필터, 마스터-디테일(CodeMirror SQL), 다음 안전 번호 - WipRegisterForm: 작업중 등록(새/기존 테이블, 기존 테이블 검색) → 백엔드 이슈 생성 * feat: Flyway 뷰어 UI 개선 — 순서역전 행 표시 / dev·prod 파이프라인 레이블 - STATUS_META: MERGE_PENDING→'dev 반영', DB_APPLIED→'prod 반영' - 순서역전 행: 좌측 컬러 세로선(컬럼=빨강, 테이블=주황) + 인라인 배지 ('⚠ 컬럼 역전' / '🔀 순서 역전') - 상단 배너 severity 표기: TABLE→'테이블', COLUMN→'컬럼'으로 한글화 - SQL 패널: 선택 마이그레이션이 순서역전 대상이면 경고 블록 표시 (공유 테이블/컬럼명 하이라이트, 강약 구분 색상) * Revert "feat: Flyway 뷰어 UI 개선 — 순서역전 표시 / dev·prod 파이프라인 (#255)" (#257) This reverts commit 4164e5c. * hotfix: 매일메일에서 회원가입 후 페이지로 돌아가지 못하는 문제 수정 * chore: 연속 읽기 보호막 UI main 체리픽 반영 (#274) * chore: 연속 읽기 보호막 API 타입 반영 (cherry picked from commit 338cdcc) * design: 연속 읽기 보호막 사용 완료 아이콘 추가 (cherry picked from commit 3997771) * feat: 연속 읽기 보호막 정보 컴포넌트 추가 (cherry picked from commit 119f0fd) * feat: 연속 독서왕 내 순위 보호막 표시 추가 (cherry picked from commit 2f80a09) * chore: 연속 읽기 보호막 목 데이터 추가 (cherry picked from commit 834124c) * chore: 연속 읽기 보호막 API 타입 정리 (cherry picked from commit 711b1fb) * fix: 체리픽 생성 타입 정합성 수정 * fix: 스토리지 차단 환경에서 랜딩 리다이렉트 크래시 방어 localStorage 접근이 SecurityError로 throw하는 환경(스토리지 차단 인앱/크롤러)에서 _bombom beforeLoad가 실패해 라우트 기본 에러 UI가 노출되던 문제 수정. createStorage를 try/catch로 감싸 실패 시 기본값 반환·noop 처리하고, 라우터에 defaultErrorComponent 안전망 추가. --------- Co-authored-by: Jeongeun Lee <leeju1009@gmail.com> Co-authored-by: deokbin <deokbin@naver.com> Co-authored-by: Lee Jeongeun <106021313+JeLee-river@users.noreply.github.com> Co-authored-by: Deokbin Kim <162319857+Db0111@users.noreply.github.com> Co-authored-by: Cheol Won <76567238+Ryan-Dia@users.noreply.github.com> Co-authored-by: 이상희 <sang6299@naver.com>
📌 What
Flyway 형상 뷰어의 시각적 표현을 개선합니다.
❓ Why
🔧 How
STATUS_META:MERGE_PENDING→'dev 반영',DB_APPLIED→'prod 반영'leapfrogSeverityMap: version별 worst severity(COLUMN > TABLE) Map 계산RowButton:$leapfrogSeverityprop으로 COLUMN(빨간)/TABLE(주황) 좌측 세로선 분리LeapfrogBadge인라인 배지:'⚠ 컬럼 역전'/'🔀 순서 역전'DetailContent:leapfrogsprop 수신 후 SQL 위에LeapfrogWarning블록 렌더링(공유 테이블/컬럼 하이라이트, 강/약 구분 배경색)
👀 Review Point