Pipeline Studio QA 가이드 — 재실행 · 스케줄 · 실행 가드
이 문서는 Pipeline Studio 후속 기능을 QA가 화면에서 직접 따라 검증할 수 있도록 단계별 스크린샷과 함께 정리한 것입니다. 모든 화면은 실제 GenD 환경의 데모 워크스페이스에서 캡처했습니다.
대상 기능:
- 1-click 재실행 — 종료된(성공/실패) 실행을 한 번에 다시 실행 (#2049)
- 스케줄(cron) 정기 실행 — 파이프라인을 주기적으로 자동 실행 (#2053)
- 실행 가드 — 비활성 파이프라인 실행 차단 / 실행 중 run 재실행 차단 (#2059)
사전 준비: 파이프라인 스튜디오에서 노드 그래프를 작성·배포해 둔 파이프라인이 1개 이상 있어야 합니다. 작성·배포 방법은 Pipeline Studio GUI 빌더를 참고하세요.
1. 스케줄(cron) 정기 실행
파이프라인을 주기적으로 자동 실행하도록 설정합니다. 평가는 UTC 기준입니다(예: daily = 02:00 UTC = KST 11:00).
1-1. 스케줄 메뉴 열기
목록 페이지에서 파이프라인 행 끝의 ⋯ 메뉴 → 스케줄을 선택합니다.

1-2. 스케줄 다이얼로그
프리셋(5분마다 / 15분마다 / 매시 / 6시간 / 12시간 / 매일 02:00) 또는 직접 입력(5-필드 cron) 중 선택합니다. 수동(스케줄 없음)을 고르면 스케줄이 해제됩니다.

1-3. ✅ 엣지: 잘못된 cron 식 거부 (422)
직접 입력에 형식에 맞지 않는 값(예: nonsense-cron)을 넣고 저장하면 검증 에러 토스트가 뜨고 다이얼로그가 닫히지 않습니다. 올바른 값으로 다시 입력해야 합니다.

1-4. 프리셋 저장 → 배지 확인
5분마다를 선택하고 저장하면 "스케줄을 저장했습니다" 토스트와 함께 목록 행에 ⏱ 스케줄 배지가 표시됩니다.

1-5. ✅ 엣지: 재오픈 시 현재 값 프리필
다이얼로그를 다시 열면 현재 설정된 프리셋이 선택된 상태로 표시됩니다.

1-6. 스케줄 해제
수동(스케줄 없음)을 선택하고 저장하면 배지가 사라집니다.

확인 포인트(QA): 스케줄을 설정하면 Dagster
pipeline_studio_cron_sensor가 60초마다 평가하여 만기 시 자동으로 run을 트리거합니다. 실행 탭에서created_by가 비어 있는(=시스템 트리거) run이 주기적으로 생기는지 확인하세요. (소스 노드s3_op의uri가 그래프에 설정되어 있어야 자동 실행이 성공합니다.)
폴더 감시(다중 파일 배치,
s3_op전용): 이 스케줄 다이얼로그 안의 "폴더 감시 (선택)" 섹션에서 S3 폴더를 지정하면, tick마다 신규 파일별로 run이 fan-out됩니다 — 사용법은 셀프서비스 튜토리얼의 "폴더 감시" 절을 참고하세요.
2. 1-click 재실행
종료된 실행을 다시 실행합니다. 원본 실행의 입력값(파일 경로/파일명/seed)을 그대로 사용하되, 현재 배포된 리비전에서 실행합니다 — 따라서 "실패 → 설정 수정 → 재배포 → 재실행" 흐름에 적합합니다.
2-1. 실행 탭 열기
빌더 우측 패널 실행 탭에서 실행 이력을 봅니다. 종료된(성공/실패) run에만 재실행 버튼이 보입니다(실행 중인 run에는 없음).

2-2. 실패한 실행 + 인라인 에러
실패한 run 카드에는 실패 노드의 에러 메시지가 인라인으로 표시되고, 우측에 재실행 버튼이 있습니다.

2-3. 재실행 → 새 실행 생성
재실행을 누르면 "재실행을 시작했습니다" 토스트와 함께 새 run이 목록 맨 위에 추가되고 폴링이 시작됩니다.

2-4. 재실행 성공
(설정을 고친 뒤라면) 새 run이 성공으로 종료됩니다.

확인 포인트(QA): ① 실행 중인 run에는 재실행 버튼이 없는지, ② 재실행 버튼을 빠르게 두 번 눌러도 run이 1개만 생기는지(진행 중 비활성화) 확인하세요.
3. 실행 가드 (엣지 케이스)
소프트-disable 및 동시 실행을 막는 서버측 가드입니다.
3-1. ✅ 비활성 파이프라인 실행 차단 (409)
파이프라인이 비활성(· 비활성) 상태면 실행할 수 없습니다. 빌더에서 실행을 시도하면 비활성 파이프라인은 실행할 수 없습니다. 먼저 활성화하세요 에러가 표시됩니다. 먼저 ⋯ 메뉴 등으로 활성화해야 합니다.

Dagster cron 센서도 비활성 파이프라인은 자동으로 건너뜁니다 — 수동/자동 양쪽에서 일관되게 차단됩니다.
3-2. ✅ 실행 중 run 재실행 차단 (409)
아직 실행 중(종료되지 않은) run은 재실행할 수 없습니다. 실행 탭에서 실행 중 run에는 재실행 버튼 자체가 노출되지 않으며, API로 직접 호출 시 아직 실행 중인 run 은 재실행할 수 없습니다 409가 반환됩니다. run이 종료된 뒤 재실행하세요.
4. 적재 결과 확인 (#2438)
적재가 끝난 뒤 "이 실행이 무엇을 적재했는지"를 실행 탭 안에서 바로 볼 수 있습니다. 벡터 인덱스·AI 문서 메뉴로 이동할 필요가 없습니다.
4-1. 실행 펼치기 → 적재 결과
실행 탭에서 성공한 run의 로그 디스클로저를 펼치면, 노드 로그 아래에 "적재 결과" 카드가 표시됩니다.
- 요약:
N개 청크 · <컬렉션> · <차원>차원(예:1개 청크 · DocumentChunks · 1024차원) - 소스: 적재된 파일명 (예:
ps-test-report.pdf) - 청크 발췌:
#인덱스+ 청크 본문 앞부분

동작 원리: 적재 결과는 벡터 노드가 청크에 저장한 소스(파일명) 로 벡터 백엔드(Weaviate)를 조회합니다. 따라서 "이 파일의 현재 인덱스 청크"를 보여줍니다(멱등 재적재라 최신 성공 실행 결과와 일치). 임베딩 벡터 원본과 접속 키는 응답·화면 어디에도 노출되지 않으며, 차원(길이) 만 표기됩니다.
적재가 없는 실행: 벡터 적재(sink) 노드가 없거나, 소스 파일명을 확인할 수 없거나, 비-Weaviate 백엔드이거나, 백엔드에 연결할 수 없으면 요약 대신 사유가 표시됩니다(무회귀 graceful).
4-2. 문서 프리뷰 열기 (#2444)
적재 결과 카드의 "문서 프리뷰 열기" 링크를 누르면, 그 문서의 전체 프리뷰 다이얼로그가 열립니다 — 청크 내용·메타데이터, PDF 는 위치 하이라이트(좌표)까지. 실행 탭에서 곧바로 상세를 확인할 수 있어 벡터 인덱스·문서 메뉴로 이동할 필요가 없습니다.

동작 원리(#2444): 벡터 적재 노드는 Weaviate upsert 후, 표준 수집 경로와 동일하게 문서를 Postgres 레지스트리에 등록합니다(
IngestedFile+DocumentMetadata+DocumentChunkRecord). 따라서 PS 로 적재한 문서도 프리뷰가 정상 동작하고, 청크 오프셋(전 포맷)과 PDF 좌표 rects 로 위치 하이라이트가 표시됩니다. 등록은 best-effort — 실패해도 Weaviate 적재(실행)는 성공으로 유지됩니다.
4-3. 수집>문서 리스트에 등장 (#2444)
PS 로 적재한 문서는 수집(Ingestion) > 문서 리스트에도 등장합니다(source = pipeline-studio). 업로드로 넣은 문서와 동일하게 클릭하면 프리뷰가 열립니다.

재실행 멱등: 같은 문서를 재적재하면 동일
document_id(내용 해시 기반 UUID5)로 레코드가 갱신됩니다(중복 생성 없음).
QA 체크리스트 요약
| # | 시나리오 | 기대 결과 |
|---|---|---|
| 1 | 스케줄 프리셋 저장 | 토스트 + 목록 배지 |
| 2 | 잘못된 cron 직접 입력 → 저장 | 422 에러 토스트 + 다이얼로그 유지 |
| 3 | 스케줄 다이얼로그 재오픈 | 현재 값 프리필 |
| 4 | 수동 선택 → 저장 | 배지 사라짐(해제) |
| 5 | cron 만기 (UTC) | 센서가 자동 run 트리거(created_by 빈 값) |
| 6 | 실패 run 재실행 | 새 run 생성 → (수정 후) 성공 |
| 7 | 실행 중 run | 재실행 버튼 미노출 |
| 8 | 재실행 더블클릭 | run 1개만 생성 |
| 9 | 비활성 파이프라인 실행 | 409 차단 토스트 |
| 10 | 실행 중 run 재실행(API) | 409 차단 |
| 11 | 성공 run 펼치기 | "적재 결과" 카드(요약·소스·청크 발췌) 표시 |
| 12 | 적재 결과 응답 | 벡터 원본/키 미노출, 차원만 표기 |
| 13 | "문서 프리뷰 열기" 클릭 (#2444) | 문서 프리뷰 다이얼로그(청크·메타·PDF 하이라이트) 오픈 |
| 14 | PS 적재 후 수집>문서 (#2444) | 문서가 리스트에 등장(source=pipeline-studio) |
| 15 | 동일 문서 재적재 (#2444) | 동일 document_id 레코드 갱신(중복 없음), 등록 실패해도 실행 성공 |