본문으로 건너뛰기

신규 UI 기능 QA 가이드 (2026-06-19 배포분)

이 문서는 2026-06-19 prod 에 배포된 UI 기능들을 실제 브라우저(prod, gend.genon.ai)에서 시나리오별 시드 데이터를 넣고 단계별로 검증한 결과를 스크린샷과 함께 정리한다. 각 기능의 자동 회귀 테스트 커버리지도 함께 명시한다.

검증 환경: prod gend.genon.ai, 실제 Keycloak 인증(QA 검증 계정 — admin 권한, 데모 워크스페이스 멤버). 콘솔 5xx 0건.

회귀 테스트 매트릭스

기능PR백엔드 테스트UI 단위 테스트브라우저 E2E
JDBC 연결 가이드 (#1157)#22222 (URL 자리표시자·등록 가드·커버리지)4 (렌더·자리표시자·탭·에러재시도)✅ 본 문서 §1
워크스페이스 격리 시각화 (#1149)#2223트리 shape·테넌트 펜스5 (4계층·고아 서브트리·전환 경합)✅ 본 문서 §2 (시드 RG)
Saved Query 메타데이터 (#1152)#222526 + 4 회귀(purpose 422·길이 422·LIKE escape)3 (메타 렌더·purpose select 고정도메인·빈값 null 정규화)✅ 본 문서 §3 (시드 쿼리)
피처 등록 다이얼로그 (#1269/#1270)#22107 (카탈로그 드롭다운·3-segment 가드·stale 응답 경합)✅ 본 문서 §4
컴플라이언스 재활성화 (#1090/#1091)#2214T6 admin-gate + 8 tree11 CRUD✅ 본 문서 §5

§1. JDBC 연결 가이드 (#1157)

경로: 사이드바 → JDBC 연결 가이드 (/jdbc-guide) 시드 데이터: 별도 불필요 — 호출자(QA 검증 계정)의 DataGrant 로 보이는 카탈로그를 자동 표시.

  1. 로그인 후 사이드바에서 JDBC 연결 가이드 진입.
  2. 연결 정보 카드: Trino 코디네이터 host/port/SSL/auth + JDBC URL 템플릿. 토큰은 항상 <YOUR_JWT> 자리표시자(실토큰 미노출).
  3. 클라이언트별 설정 탭: DBeaver / Tableau / Superset / Power BI.
  4. 접근 가능한 카탈로그: DataGrant 필터링된 카탈로그/스키마.

JDBC 연결 가이드

✅ 검증: /jdbc-guide 200, jdbc:trino:// + <YOUR_JWT> 자리표시자 노출(실토큰 0), 4 클라이언트 탭, DataGrant 필터 카탈로그(gend_pg) 표시. 콘솔 에러 0.


§2. 워크스페이스 격리 시각화 (#1149)

경로: 사이드바 → 보안 → Workspace Isolation (/admin/workspaces/isolation, admin 전용) 시드 데이터: finance-invest 워크스페이스에 부모 ResourceGroup(투자팀) + 자식 ResourceGroup(애널리스트) 2건을 시드 → L2 계층 표시 검증 후 삭제(접근권한 변경 없는 grouping-only 시드).

  1. 격리 화면 진입 → 워크스페이스 선택기에서 금융 인텔리전스 (finance-invest) 선택.
  2. L0 — 워크스페이스(테넌트 경계): 이름/slug/active/keycloak 경로.
  3. L1 — Keycloak 그룹 바인딩: /tenants/finance-invest.
  4. L2 — 리소스 그룹 계층 (2): qa-guide-invest-team(투자팀) 아래 qa-guide-invest-analysts(애널리스트)가 들여쓰기로 부모-자식 계층 렌더.
  5. L3 — 데이터 권한(DataGrant) 요약: privilege/object-type 분포(시드 없을 시 "항목이 없습니다").

워크스페이스 격리 — 시드 RG 로 채워진 L2 계층

✅ 검증: 시드한 부모→자식 ResourceGroup 이 L2 에 들여쓰기 계층으로 정확히 렌더. 회귀 테스트는 (a) 4계층 전체 렌더, (b) 부모가 워크스페이스 밖인 고아 ResourceGroup 의 자식 노드 누락 방지, (c) 워크스페이스 빠른 전환 시 stale 트리 응답이 최신 선택을 덮어쓰지 않음(요청 시퀀스 가드)을 커버. 검증 후 시드 RG 2건 삭제(접근권한 무변경).


§3. Saved Query 데이터셋 메타데이터 (#1152)

경로: SQL 편집기 → 저장됨시드 데이터: folder_path=분석/매출, purpose=analysis 를 가진 Saved Query 1건 시드.

  1. SQL 편집기에서 저장됨 탭 클릭.
  2. 시드한 쿼리 카드에 폴더(📁 분석/매출) + 목적(analysis) + 버전(v…) 배지 + 출처(← iceberg.silver.sales) 표시.

Saved Query 패널 — 메타데이터 배지

  1. 쿼리 행의 수정 버튼 → 쿼리 수정 다이얼로그.
  2. 폴더(자유 입력) + 목적(고정 도메인 <select> — analysis/modeling/report/adhoc + 미지정). 자유 문자열 입력 불가(계약 강제).

Saved Query 수정 — 목적 고정 도메인 select

✅ 검증: 카드에 folder/purpose/version/source_tables 표시. 수정 다이얼로그의 목적은 4값 고정 select(자유 입력 제거). prod 백엔드 스모크: purpose=bogusHTTP 422(Literal 검증), purpose=analysis → 201. 회귀 테스트: purpose 422 / folder_path 길이 422 / folder_prefix LIKE 와일드카드 escape(a_baxb 미매칭) / UI select 고정 도메인 / 빈값→null 정규화.


§4. 피처 등록 다이얼로그 — 카탈로그 백엔드 드롭다운 (#1269/#1270)

경로: ML 허브 → 데이터 & 피처 → + 피처 등록 시드 데이터: 기존 카탈로그/스키마/테이블(iceberg.silver.*) 메타데이터 활용.

  1. 피처 스토어에서 + 피처 등록피처 등록 다이얼로그.
  2. 엔티티 키 / 소스 컬럼: 카탈로그 기반 콤보박스(자유 입력도 허용).
  3. 소스 테이블: 카탈로그 → 스키마 → 테이블 3-segment 캐스케이드 콤보박스.

피처 등록 다이얼로그 — 드롭다운 + 3-segment 캐스케이드

✅ 검증: 모든 입력이 카탈로그 기반 드롭다운. 회귀 테스트: catalog→schema→table 합성, 2-segment 미완성은 source_table 로 저장 안 됨(3-segment 가드), 이전 카탈로그의 늦은 schema 응답이 현재 선택을 덮어쓰지 않음(요청 토큰 가드), 카탈로그 fetch 실패 시 freeform 폴백.


§5. 컴플라이언스 Manager — soft-delete 가시화 + 재활성화 (#1090/#1091)

경로: 거버넌스 → 컴플라이언스 → 관리 (Manager Sheet) 시드 데이터: 기존 프레임워크(신용정보보법/전자금융거래법 등) 트리.

  1. 컴플라이언스 대시보드에서 관리컴플라이언스 관리 시트.
  2. 탭: 프레임워크 / 비활성 포함 / + 신규 Framework. 비활성 포함 토글로 soft-delete 된 프레임워크 노출, 행의 ↺ 버튼으로 재활성화.
  3. 트리는 단일 호출(N+1 제거)로 프레임워크 + 카테고리 + 체크항목을 중첩 로드.

컴플라이언스 Manager Sheet — 비활성 포함 토글

✅ 검증: Manager Sheet 가 단일 트리 호출로 로드. include_inactive=true 는 admin 전용(비-admin 403 회귀 테스트 T6) — UI 게이팅에만 의존하지 않음. CRUD 11 + tree 8 단위 테스트.


부록 — 시드 데이터 정리 정책

  • ResourceGroup 시드(§2): 접근권한(DataGrant) 미부여 grouping-only 객체로 생성 → 스크린샷 후 즉시 삭제(finance-invest 트리 0건 복원 확인). 접근제어 영향 0.
  • Saved Query 시드(§3): 무해한 데모 쿼리(읽기 SQL). 데모 데이터로 유지 가능.
  • prod 데이터 변경을 남기지 않는 것이 원칙 — 접근제어/권한 객체는 검증 직후 정리.