Skip to content

[Demo Seed][P1] 시나리오(응웬반A) 시작 데이터 정합성 보강 #94

Description

@krestar

배경

현재 Demo Seed에는 응웬반A와 관련된 Worker, 문서, Case, Task, 승인, 요청문, 제출·증빙 상태가 일부 미리 생성되어 있다.

그러나 대표 시연은 HR 사용자가 자연어 요청을 입력하는 시점부터 시작하며, 이후 다음 흐름을 실제로 진행하는 방식이다.

AiRun → Case/Task → 승인 → Worker Link/응답 → 외부 제출·증빙 → 완료

OCR, 여권 및 외국인등록증 상세 데이터는 향후 별도 기능으로 구현할 예정이지만 현재 Demo Seed의 선행조건은 아니다. 시연용 이미지와 OCR 처리 결과도 본 이슈에서 미리 생성하지 않는다.

또한 현재 Worker 모델에는 E-9 업무에서 사용하는 날짜 의미가 충분히 분리되어 있지 않다. 정확한 E-9 취업활동기간 및 관련 만료일의 의미 구분은 #84에서 Worker 모델을 확장해 처리하며, #84의 구현은 본 이슈의 선행조건으로 삼지 않는다.

따라서 본 이슈에서는 응웬반A를 대표 시연의 시작 상태로 정리하고, 현재 코드베이스에 이미 구현된 모델만 사용해 Demo Seed의 정합성과 재현성을 보강한다.

명시적으로 계획되어 있으나 아직 구현되지 않은 모델이나 API는 본 이슈에서 선행 구현하지 않는다.

추가로 #9의 PostgreSQL 17 Compose Smoke 과정에서 DEMO_SEED_ENABLED=true로 Server를 기동할 경우 Demo Seed의 직접 SQL에서 java.time.Instant를 바인딩하는 과정에서 PostgreSQL JDBC 타입 추론 오류가 발생하는 것이 확인되었다.

PSQLException: Can't infer the SQL type to use for an instance of java.time.Instant

따라서 응웬반A의 Golden Flow 시작 상태 정리와 함께 Demo Seed의 PostgreSQL JDBC 호환성도 보강한다.


목표

빈 데이터베이스에서 Demo Seed를 실행했을 때 다음 상태를 보장한다.

  1. HR 사용자가 응웬반A를 대상으로 대표 자연어 요청을 즉시 시작할 수 있다.
  2. AI 요청을 시작하는 데 필요한 현재 구현 범위의 Worker, Company, HR 사용자 및 Workflow 기준 데이터가 존재한다.
  3. 응웬반A의 대표 시나리오에 해당하는 AiRun, Case, Task 및 후속 처리 결과는 아직 생성되지 않은 상태다.
  4. 실제 시연 과정에서 생성되는 데이터가 기존 Seed와 충돌하거나 중복되지 않는다.
  5. OCR, 여권 및 외국인등록증 상세 모델을 구현하지 않아도 Demo Seed가 정상 실행된다.
  6. 다른 근로자와 해당 근로자의 기존 Showcase Seed는 변경 없이 유지된다.
  7. PostgreSQL 17에서 DEMO_SEED_ENABLED=true로 빈 데이터베이스에 Server를 기동했을 때 Demo Seed가 정상 완료된다.
  8. 동일한 PostgreSQL 데이터베이스에서 Server를 재기동하거나 Demo Seed를 다시 실행해도 오류나 중복 데이터가 발생하지 않는다.

대표 시연 시작 상태

Seed에 사전 존재하는 데이터

  • 데모 Company
  • HR 사용자 및 현재 권한 모델에서 필요한 권한
  • 응웬반A Worker
  • 현재 Worker 모델이 지원하는 이름, 국적, 기본 사용 언어, 근로 상태 등 기본정보
  • 현재 구현된 Workflow Catalog 및 Workflow Version
  • 현재 구현된 Task Type 및 공통 코드·상태값

정확한 E-9 취업활동기간 및 관련 날짜 의미의 분리는 #84에서 처리하며, 해당 필드나 판정 로직을 본 이슈의 Seed 선행조건으로 요구하지 않는다.

별도의 활성 Agent Version 또는 Prompt Version Seed 모델은 현재 존재하지 않으므로 본 이슈에서 생성하지 않는다. 관련 버전 정보는 실제 AI 실행 이후 생성되는 AiAttempt의 실행 메타데이터 범위에서 관리한다.

Seed가 미리 생성하지 않는 데이터

다음 데이터는 대표 시연 시작 전에 Seed하지 않는다.

해당 기능이 구현되어 있는 경우에도 실제 대표 시연 과정에서 생성되어야 하며, 본 이슈에서 완료 상태를 미리 만들지 않는다.

  • HR 요청문에 대한 AiRun
  • AiAttempt
  • 분석 결과
  • Slot
  • Question
  • Candidate
  • Candidate Decision
  • 응웬반A의 대표 시나리오 대상 Case
  • 해당 Case에 속하는 Task
  • 대표 시나리오 대상 승인
  • WorkerLink
  • WorkerResponse
  • 응웬반A 대표 시나리오용 WorkerDocument
  • Document Request Draft
  • 시연 중 업로드되는 파일
  • ExternalSubmission
  • Evidence
  • 대표 시나리오 대상 Case 및 Task의 완료 상태
  • 관련 Activity 및 Audit Event

작업 범위

수정 대상 제한

본 이슈의 데이터 수정 대상은 응웬반A와 응웬반A의 대표 시나리오에 직접 연결된 Demo Seed로 한정한다.

기존에 구성된 다른 근로자와 해당 근로자의 WorkerDocument, Case, Task, Artifact, Approval, Submission, Evidence 및 업무 상태는 Figma 예시와 화면 밀도를 위한 Showcase Seed이므로 그대로 유지한다.

응웬반A 데이터와 다른 근로자 데이터가 동일한 Seed Catalog 또는 파일에 함께 정의되어 있어 해당 파일을 수정하는 것은 허용한다. 단, 응웬반A와 무관한 기존 Seed 레코드의 값, 고정 식별자, 상태, 관계 및 생성 여부를 변경해서는 안 된다.

공통 참조 데이터는 응웬반A 시나리오에 필수적인 연결 오류가 있는 경우에만 수정한다. 해당 수정으로 기존 Showcase Seed의 동작이나 화면 구성이 변경되어서는 안 된다.


1. 응웬반A Worker Seed 정리

응웬반A가 대표 시연 대상임을 명확히 하고, 현재 Worker Entity와 API가 지원하는 필드만 사용해 데이터를 구성한다.

필수 조건:

  • Worker 식별자가 모든 환경에서 결정적이어야 한다.
  • 이름, 국적, 기본 사용 언어 및 근로 상태가 현재 Worker 모델 범위에서 일관되어야 한다.
  • 기존 Worker 모델이 지원하는 필드만 사용한다.
  • 신규 Worker 컬럼을 추가하지 않는다.
  • #84에서 구현 예정인 E-9 날짜·비자정보 필드를 선행 구현하지 않는다.
  • 정확한 3년 취업활동기간 또는 관련 만료일 판정 로직을 본 이슈에서 추가하지 않는다.
  • 여권번호, 외국인등록번호, 체류지 주소 등 별도 상세정보를 추가하지 않는다.

2. HR 사용자·권한 Seed 확인

대표 시연을 수행하는 HR 사용자가 현재 구현된 기능 범위에서 응웬반A에 접근하고 대표 흐름을 진행할 수 있는지 확인한다.

확인 대상:

  • 응웬반A 조회
  • AI 요청 생성
  • Candidate 검토 및 결정
  • Case와 Task 조회
  • 승인 처리
  • Worker Link 관련 처리
  • 외부 제출 및 Evidence 기록
  • Task와 Case 완료

HR 사용자와 응웬반A는 동일 Company 범위에서 접근 가능해야 한다.

기존 권한 모델로 충족하며, Demo Seed만을 위한 신규 Role 또는 Permission을 추가하지 않는다.

별도 Workplace 모델은 현재 존재하지 않으므로 본 이슈에서 신규 Domain 또는 연결을 추가하지 않는다.


3. AI Workflow 참조 데이터 연결

현재 코드베이스에 구현된 범위 안에서 대표 시나리오에 필요한 Workflow 참조가 누락되지 않도록 한다.

확인 대상:

  • 대표 시나리오에서 사용하는 Workflow Catalog
  • Workflow Catalog Version
  • Candidate가 사용하는 현재 Workflow 정의
  • Case 생성 시 Workflow Snapshot을 구성할 수 있는 현재 참조 정보
  • 현재 구현된 Task Type 및 공통 코드

참조 데이터가 이미 존재한다면 중복 생성하지 않고 현재 구현된 식별자와 Version을 사용한다.

별도의 활성 Agent Version 또는 Prompt Version Seed 모델은 추가하지 않는다.

Agent Version, Prompt Version 등 실행 시점 메타데이터는 실제 AiRunAiAttempt 생성 이후 기록되는 범위로 두며 대표 시연 시작 Seed의 선행 데이터로 취급하지 않는다.


4. 응웬반A의 사전 진행 데이터 제거

응웬반A의 대표 시나리오를 이미 진행되거나 완료된 상태로 만드는 기존 Seed는 생성 대상에서 제외한다.

대상 예시:

  • 대표 시나리오 대상 Case
  • 해당 Case에 속하는 기존 3개 Task
  • 해당 Task의 Checklist
  • 대표 시나리오 대상 Approval
  • Worker Link 발급 완료 상태
  • Worker Response
  • Document Request Draft
  • ExternalSubmission
  • Evidence
  • 관련 Activity 및 Audit Event
  • 대표 흐름의 중간·완료 상태를 나타내는 Operational 데이터

위 데이터는 다른 근로자에게 재연결하지 않는다.

다른 근로자에게 연결된 기존 Showcase Seed는 수정하지 않는다. 해당 데이터는 Figma 화면 정합성과 목록·업무함·대시보드의 화면 밀도를 위해 그대로 유지한다.

응웬반A 데이터를 제외하는 과정에서 순번 기반으로 생성되는 다른 Showcase fixture의 고정 ID가 변경되지 않도록 한다.


5. 응웬반A의 문서·OCR Seed 의존성 제거

응웬반A 대표 시나리오의 시작 상태에서는 WorkerDocument를 사전 생성하지 않는다.

기존 응웬반A Showcase 문서는 Golden Flow 시작 Seed에서 제외한다.

  • PASSPORT_COPY
  • ARC
  • CONTRACT

또한 다음 데이터를 대표 시연 시작 조건으로 요구하거나 참조하지 않는다.

  • 여권 유효 상태
  • 외국인등록증 사본 누락 상태
  • 문서 준비도 결과
  • 문서 요청 Task
  • OCR 처리 상태
  • OCR 추출 결과
  • 여권 또는 외국인등록증 상세정보
  • 여권 또는 외국인등록증 이미지 파일

다른 근로자에게 연결된 기존 문서 Showcase Seed는 그대로 유지한다.


6. Seed Manifest와 문서 갱신

현행 저장소에서 사용 중인 다음 문서를 실제 Seed 결과에 맞게 갱신한다.

  • docs/demo-seed.md
  • docs/demo-seed-fixture-manifest.md
  • Demo Seed 수량을 직접 명시하는 관련 개발 문서

현재 저장소에 존재하지 않는 src/main/resources/demo-seed-manifest.json은 신규 생성하지 않는다.

문서에는 최소한 다음 내용을 명시한다.

  • 대표 시연의 시작 Worker
  • 시연 전에 존재하는 데이터
  • Seed가 미리 생성하지 않는 데이터
  • 결정적 식별자
  • Seed 실행 방법
  • Seed 재실행 시 기대 결과
  • Showcase Seed와 Golden Flow 시작 데이터의 구분
  • 응웬반A의 WorkerDocument가 사전 생성되지 않는다는 점
  • OCR, 여권 및 외국인등록증 상세 데이터가 본 이슈 범위 밖이라는 점
  • 정확한 E-9 날짜 의미와 판정은 #84의 후속 범위라는 점
  • 다른 근로자의 기존 Showcase Seed가 유지된다는 점
  • 구버전 Demo DB 초기화 정책
  • PostgreSQL에서의 실행 및 재실행 결과

7. 멱등성과 재현성 보장

Demo Seed를 여러 번 실행해도 중복 데이터가 생성되지 않아야 한다.

필수 조건:

  • Seed 데이터는 동일한 Business Key 또는 고정 UUID를 사용한다.
  • 이미 존재하는 현재 Seed 데이터는 재사용하거나 안전하게 검증한다.
  • 응웬반A의 대표 시연 시작 상태가 Seed 실행 순서에 따라 달라지지 않아야 한다.
  • 다른 근로자의 기존 Showcase fixture 고정 식별자가 변경되지 않아야 한다.
  • 구버전 Seed에서 사용한 응웬반A Golden Flow 고정 ID가 남아 있는 DB를 현재 Seed와 암묵적으로 혼합하지 않는다.
  • 구버전 Golden Flow Seed가 발견될 경우 사용자 생성 데이터를 임의 삭제하지 않고 개인 Demo DB 또는 volume 초기화를 명시적으로 안내한다.
  • Seed 정리를 위한 데이터 삭제 Flyway Migration을 추가하지 않는다.

8. PostgreSQL JDBC 시간 타입 바인딩 보강

Demo Seed에서 JdbcTemplate 또는 이에 준하는 방식으로 직접 SQL을 실행하는 코드를 점검한다.

필수 조건:

  • DemoCaseSeeder를 포함해 Demo Seed의 직접 SQL 사용 지점을 확인한다.
  • Instant 등 PostgreSQL JDBC가 직접 타입을 추론하지 못하는 값을 그대로 SQL timestamp 파라미터로 전달하지 않는다.
  • 대상 PostgreSQL 컬럼 타입에 맞게 JDBC 경계에서 명시적으로 변환한다.
  • Instant를 timestamp 계열 컬럼에 전달할 경우 Timestamp.from(instant) 또는 동등하게 명시적인 JDBC 바인딩을 사용한다.
  • 시간 타입 변환은 Seed infrastructure의 JDBC 경계에서 수행한다.
  • Domain Model과 일반 Application 코드의 시간 타입은 변경하지 않는다.
  • null 가능 값은 기존 의미를 유지한다.
  • timezone 또는 날짜·시각 의미가 암묵적으로 변경되지 않아야 한다.
  • 본 작업을 위해 신규 Table, Flyway Migration 또는 운영 API를 추가하지 않는다.
  • Demo Seed와 무관한 일반 Repository 또는 Application SQL은 수정 범위에 포함하지 않는다.

데이터 정합성 규칙

  • 응웬반A는 하나의 활성 Worker로만 존재한다.
  • 응웬반A는 Demo Company에 일관되게 연결된다.
  • HR 사용자는 동일 Company 범위에서 응웬반A를 조회할 수 있어야 한다.
  • 응웬반A의 국적과 기본 사용 언어가 서로 모순되지 않아야 한다.
  • 정확한 E-9 취업활동기간 및 관련 날짜 판정은 #84의 Worker 모델 확장 이후 범위로 둔다.
  • 대표 시연 시작 시 응웬반A에게 대표 시나리오 대상 Case가 없어야 한다.
  • 대표 시연 시작 시 응웬반A에게 대표 시나리오 대상 Task가 없어야 한다.
  • 대표 시연 시작 시 응웬반A에게 WorkerDocument가 없어야 한다.
  • 대표 시나리오 대상 승인, Worker Link, Worker Response, Submission, Evidence 및 완료 상태가 없어야 한다.
  • 대표 시나리오 대상 AiRun, AiAttempt, Question, Candidate 및 Candidate Decision이 없어야 한다.
  • 여권, 외국인등록증 또는 OCR 상태가 AI 요청 시작의 필수 입력으로 연결되어서는 안 된다.
  • Client 전용 Mock 상태를 Server Seed에 신규 Domain으로 구현하지 않는다.
  • 다른 근로자의 기존 Seed 데이터와 연결 관계 및 고정 식별자는 변경하지 않는다.

구현 원칙

  • Seed 구현에는 현재 코드베이스에 이미 존재하는 Server 모델만 사용한다.
  • 명시적으로 계획되어 있으나 미구현 상태인 모델은 본 이슈에서 선행 구현하지 않는다.
  • #84의 Worker E-9 날짜·비자정보 확장을 본 이슈의 선행조건으로 삼지 않는다.
  • Seed를 위해 신규 Table, API 또는 Domain Model을 추가하지 않는다.
  • Figma에만 존재하고 Server 계약이 없는 상태는 Client Mock으로 유지한다.
  • 대표 시연은 하나의 일관된 Golden Flow 시작 상태를 기준으로 한다.
  • 중간 단계별 S0~S5 Seed 프로필 전환 기능은 추가하지 않는다.
  • Task Dependency Graph나 별도 Workflow Lock 모델을 추가하지 않는다.
  • 외부 기관 자동 제출을 구현하지 않는다.
  • AI 자동 승인 또는 자동 발송을 구현하지 않는다.
  • 다른 근로자의 Showcase Seed를 정리·재배치·축소하지 않는다.
  • 구버전 Demo Seed 데이터를 자동 삭제하지 않는다.

이번 이슈에서 하지 않는 것

Worker E-9 날짜·비자정보

  • #84에서 정의하는 Worker 날짜 필드 추가
  • visa_type 추가
  • 정확한 E-9 3년 취업활동기간 판정
  • 고용허가 관련 종료일 판정
  • 취업활동 가능 종료일 판정
  • 날짜 의미 간 관계를 임의 추정하는 로직
  • 관련 Worker Flyway, Entity, DTO, Mapper 변경

Workplace 및 연락처

  • 별도 Workplace Domain 추가
  • Worker 연락처 필드 추가
  • 연락처 저장을 위한 신규 Table 또는 API 추가

Agent / Prompt Version

  • 별도 Agent Version Seed Entity
  • 별도 Prompt Version Seed Entity
  • 활성 Version Registry 신규 구현
  • 실행 전에 Agent / Prompt Version row를 미리 생성하는 Seed

OCR

  • OCR 실행 기능 구현
  • OCR Job 또는 OCR Result Domain 구현
  • OCR Provider, Model 또는 Request ID 저장
  • OCR 상태, 오류 또는 처리시각 컬럼 추가
  • Bounding Box 및 필드별 Confidence 저장
  • OCR 원문 응답 저장
  • OCR 수정 이력 저장
  • OCR 완료 결과 Seed
  • 시연용 OCR 이미지 파일 Seed

여권·외국인등록증

  • worker_document에 여권 상세 컬럼 추가
  • worker_document에 외국인등록증 상세 컬럼 추가
  • 여권번호 저장
  • 성, 이름, 생년월일 및 성별 추출값 저장
  • 여권 발급일 및 만료일 상세값 저장
  • 외국인등록번호 저장
  • 체류자격 OCR 추출값 저장
  • 체류기간 만료일 OCR 추출값 저장
  • 체류지 주소 저장
  • 여권 또는 외국인등록증 이미지 Seed
  • 관련 Flyway, Entity, DTO, Mapper 또는 API 변경

문서 생성·제출 자동화

  • 계약서·신청서 Template Registry
  • 문서 Generation Job
  • PDF, HWP 또는 HWPX Binary 생성
  • 생성 문서 Retry Lifecycle
  • 외부 기관 API 자동 제출
  • 기관 로그인 자동화
  • 제출 Package 및 Item Version Graph
  • 기관별 결과 상태 Taxonomy

기타

  • 별도 Consent Domain
  • 범용 Upload Session Domain
  • SMS·메신저 실제 발송 연동
  • 완전한 Antivirus 또는 Malware Scan 인프라
  • 범용 BPMN 엔진
  • Task 간 Dependency 또는 Lock 기능
  • 다른 근로자의 기존 Showcase Seed 변경

완료 조건

Seed 데이터

  • 빈 데이터베이스에서 Demo Seed가 정상 실행된다.
  • 응웬반A Worker가 정확히 한 건 생성된다.
  • 응웬반A의 Company, 국적, 기본 사용 언어 및 근로 상태가 현재 Worker 모델 범위에서 일관된다.
  • 대표 시연에 필요한 HR 사용자가 동일 Company 범위에서 응웬반A에 접근할 수 있다.
  • 현재 구현된 Workflow Catalog 및 Workflow Version을 사용할 수 있다.
  • 별도 Workplace, 연락처, Agent Version 또는 Prompt Version 모델을 본 이슈에서 추가하지 않는다.
  • #84의 Worker 날짜·비자정보 확장을 선행 구현하지 않는다.

대표 시연 시작 상태

  • Seed 직후 응웬반A의 대표 시나리오 대상 AiRun이 존재하지 않는다.
  • Seed 직후 대표 시나리오 대상 AiAttempt, Question, Candidate 및 Candidate Decision이 존재하지 않는다.
  • Seed 직후 응웬반A의 대표 시나리오 대상 Case가 존재하지 않는다.
  • Seed 직후 해당 Case에서 생성될 Task가 존재하지 않는다.
  • Seed 직후 응웬반A의 WorkerDocument가 존재하지 않는다.
  • Seed 직후 대표 시나리오 대상 Approval이 존재하지 않는다.
  • Seed 직후 대표 시나리오 대상 Worker Link 및 Worker Response가 존재하지 않는다.
  • Seed 직후 대표 시나리오 대상 Submission 및 Evidence가 존재하지 않는다.
  • Seed 직후 대표 시나리오 관련 Activity 및 Audit Event가 존재하지 않는다.
  • HR 요청을 시작할 때 기존 Seed와 식별자 또는 상태 충돌이 발생하지 않는다.

문서·OCR 범위

  • 응웬반A 대표 시나리오에 여권 또는 외국인등록증 Seed가 필요하지 않다.
  • PASSPORT_COPY, ARC 또는 CONTRACT WorkerDocument가 응웬반A의 시작 상태에 사전 생성되지 않는다.
  • 응웬반A의 OCR 결과나 신분증 식별번호가 Seed에 포함되지 않는다.
  • worker_document 스키마를 변경하지 않고 구현이 완료된다.
  • OCR, 여권 및 외국인등록증 관련 신규 API 또는 Domain을 추가하지 않는다.

정합성·멱등성

  • Demo Seed를 두 번 이상 실행해도 중복 데이터가 생성되지 않는다.
  • 응웬반A Golden Flow 데이터 제외로 인해 다른 Showcase fixture의 고정 식별자가 변경되지 않는다.
  • 구버전 응웬반A Golden Flow Seed가 남아 있는 DB를 자동 삭제하거나 현재 Seed와 암묵적으로 혼합하지 않는다.
  • 대표 시연 시작 데이터와 Showcase Seed의 목적이 Manifest 및 문서에서 구분된다.
  • docs/demo-seed-fixture-manifest.mddocs/demo-seed.md가 실제 생성 결과와 일치한다.
  • 관련 Seed 테스트가 통과한다.

기존 Showcase Seed 보존

  • 응웬반A를 제외한 기존 근로자 Seed의 수와 고정 식별자가 변경되지 않는다.
  • 다른 근로자의 기존 Case, Task, 문서 및 업무 상태가 변경되지 않는다.
  • 다른 근로자 기반 목록·업무함·대시보드 화면 구성이 기존과 동일하게 유지된다.
  • 응웬반A와 무관한 Seed를 삭제하거나 다른 Worker로 재연결하지 않는다.
  • 공통 Catalog 파일이 수정된 경우 응웬반A 외 기존 Seed 레코드에 대한 회귀 테스트가 통과한다.

PostgreSQL 호환성

  • PostgreSQL 17 빈 데이터베이스에서 DEMO_SEED_ENABLED=true로 Server가 정상 기동된다.
  • Demo Seed 실행 중 Instant 또는 다른 Java 시간 타입의 SQL 타입 추론 오류가 발생하지 않는다.
  • Demo Seed의 직접 SQL 시간 파라미터가 대상 PostgreSQL 컬럼과 호환되는 방식으로 바인딩된다.
  • 동일한 PostgreSQL 데이터베이스에서 Server를 재기동하거나 Seed를 재실행해도 정상 완료된다.
  • 재기동 전후 Seed 데이터 수에 의도하지 않은 변화가 없다.
  • 재기동 전후 기존 Showcase 고정 데이터가 유지된다.
  • Seed timestamp의 날짜, 시각 및 timezone 의미가 유지된다.
  • PostgreSQL 호환성 수정을 위해 Flyway Migration이나 Domain 시간 타입을 변경하지 않는다.

테스트 항목

자동 테스트

공통 Demo Seed

  • Demo Seed 전체 실행
  • Demo Seed 재실행
  • 응웬반A 단일성 검증
  • Demo Company와 HR 접근 범위 검증
  • 현재 Workflow Catalog 참조 검증
  • 응웬반A 대표 시나리오 대상 Case·Task 미생성 검증
  • 응웬반A WorkerDocument 미생성 검증
  • 응웬반A 대표 시나리오 대상 Approval 미생성 검증
  • AiRun, AiAttempt, Question, Candidate, Candidate Decision 미생성 검증
  • Worker Link 및 Worker Response 미생성 검증
  • 대표 시나리오 대상 Submission 및 Evidence 미생성 검증
  • 응웬반A 관련 Golden Flow Audit 미생성 검증
  • 다른 근로자의 기존 Seed 수·식별자·관계 보존 검증
  • Seed 재실행 전후 snapshot 및 수량 불변 검증

PostgreSQL 17

  • PostgreSQL 17 기반 dev profile Application Context 기동
  • 빈 PostgreSQL 데이터베이스에서 Demo Seed 전체 실행
  • 동일 PostgreSQL 데이터베이스를 유지한 상태에서 Application Context 재기동
  • 두 번째 기동에서 Demo Seed 전체 재실행
  • 재기동 전후 Seed 수량 검증
  • 기존 Showcase 고정 데이터 보존 검증
  • Showcase Case timestamp 유지 검증
  • timestamp 계열 Seed 값 저장 및 재조회 검증
  • 응웬반A Golden Flow 시작 상태 검증

수동 확인

  1. PostgreSQL 17의 빈 데이터베이스 또는 빈 Demo volume을 준비한다.
  2. DEMO_SEED_ENABLED=true와 필요한 Demo 비밀번호를 설정한다.
  3. Server를 기동하고 Flyway 및 Demo Seed가 모두 완료되는지 확인한다.
  4. HR 계정으로 로그인한다.
  5. 응웬반A Worker를 조회한다.
  6. 응웬반A의 대표 시나리오 대상 Case, Task 및 WorkerDocument가 없는지 확인한다.
  7. 다른 근로자의 목록, 업무함 및 Showcase 데이터가 기존대로 표시되는지 확인한다.
  8. Server를 종료한 뒤 동일한 PostgreSQL 데이터베이스로 다시 기동한다.
  9. 두 번째 기동에서도 Seed 오류와 중복 데이터가 발생하지 않는지 확인한다.
  10. HR 자연어 요청을 시작했을 때 기존 Seed와 식별자 또는 상태 충돌이 발생하지 않는지 확인한다.

관련 이슈 및 PR

후속 범위

  • #84에서 Worker의 E-9 업무용 날짜·비자정보를 확장하고 각 날짜의 의미를 분리한다.
  • 정확한 E-9 취업활동기간 및 관련 만료일 판정은 #84의 모델이 준비된 이후 해당 Workflow에서 검증한다.
  • [Worker][P0] E-9 업무용 4개 날짜·비자정보 확장 #84 미완료는 본 이슈의 완료를 차단하지 않는다.
  • 실제 대표 Golden Flow 전체 E2E는 #10에서 검증한다.

산출물

  • 응웬반A 대표 시연 시작 상태를 구성하는 Seed 코드
  • 응웬반A의 기존 사전 진행·완료 상태 Seed 제외
  • 다른 근로자의 기존 Showcase Seed 및 고정 식별자 보존
  • 구버전 Golden Flow Demo Seed 상태 감지 및 안전한 초기화 안내
  • PostgreSQL JDBC 시간 타입 호환성 보강
  • H2 Demo Seed 멱등성·정합성·회귀 테스트
  • PostgreSQL 17 Demo Seed 전체 기동·재기동 회귀 테스트
  • 갱신된 docs/demo-seed.md
  • 갱신된 docs/demo-seed-fixture-manifest.md
  • 대표 시연 시작 상태 및 Demo DB 초기화·재실행 절차 문서

Metadata

Metadata

Assignees

Labels

area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외priority:P1핵심 작업 다음으로 처리할 중요 작업status:in-progress담당자가 현재 구현 중인 작업type:feature사용자 또는 Agent가 사용하는 기능 개발

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions