Skip to content

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

Description

@krestar

배경

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

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

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

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

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

명시적으로 계획되어 있으나 아직 구현되지 않은 모델이나 API는 시나리오 정합성 확인에만 참고하며, 본 이슈에서 선행 구현하지 않는다.


목표

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

  1. HR 사용자가 응웬반A의 3년 만료 관련 요청을 즉시 입력할 수 있다.
  2. AI 요청을 시작하는 데 필요한 Worker, Company, Workplace, HR 사용자 및 업무 기준 데이터가 존재한다.
  3. 응웬반A의 대표 시나리오에 해당하는 AiRun, Case, Task 및 후속 처리 결과는 아직 생성되지 않은 상태다.
  4. 실제 시연 과정에서 생성되는 데이터가 기존 Seed와 충돌하거나 중복되지 않는다.
  5. OCR, 여권 및 외국인등록증 상세 모델을 구현하지 않아도 Demo Seed가 정상 실행된다.
  6. 다른 근로자와 해당 근로자의 기존 Showcase Seed는 변경 없이 유지된다.

대표 시연 시작 상태

Seed에 사전 존재하는 데이터

  • 데모 Company
  • 데모 Workplace
  • HR 사용자 및 현재 권한 모델에서 필요한 권한
  • 응웬반A Worker
  • 현재 Worker 모델이 지원하는 E-9 업무 판단용 기본정보
  • 현재 Worker 모델이 지원하는 E-9 핵심 날짜
  • 기본 사용 언어 및 연락 정보
  • 현재 구현된 Workflow Catalog, Agent Version, Prompt Version 등 시연에 필요한 참조 데이터
  • 현재 구현된 공통 코드와 상태값

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

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

해당 기능이 구현된 시점에는 실제 시연 과정에서 생성될 수 있으나, 생성 기능 자체는 본 이슈의 구현 대상이 아니다.

  • HR 요청문에 대한 AiRunAiAttempt
  • 분석 결과, Slot, Question, Candidate, Decision
  • 응웬반A의 대표 시나리오 대상 Case
  • 해당 Case에 속하는 Task
  • Task 승인 결과
  • WorkerLinkWorkerResponse
  • 시연 중 업로드되는 파일
  • 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 모델이 지원하는 E-9 핵심 날짜가 3년 만료 업무를 판단할 수 있도록 구성되어야 한다.
  • 날짜는 Seed 실행 시점마다 의미가 달라지지 않도록 고정 기준일 또는 프로젝트에서 합의한 상대 날짜 정책을 사용해야 한다.
  • 신규 Worker 컬럼을 추가하지 않는다.
  • 여권번호, 외국인등록번호, 체류지 주소 등 별도 상세정보를 추가하지 않는다.

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

대표 시연을 수행하는 HR 사용자가 현재 구현된 기능 범위에서 다음 작업을 수행할 수 있는 상태인지 확인하고, 필요한 최소 연결만 보강한다.

  • 응웬반A 조회
  • AI 요청 생성
  • Candidate 검토 및 승인
  • Case와 Task 조회
  • Worker Link 발급 또는 검토
  • 외부 제출 및 Evidence 기록
  • Task와 Case 완료

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

3. AI Workflow 참조 데이터 연결

현재 코드베이스에 구현된 범위 안에서 다음 참조 데이터가 누락되지 않도록 한다.

  • 활성 Agent Version
  • 활성 Prompt Version
  • 대표 시나리오에 사용하는 Workflow Catalog
  • Candidate가 참조하는 Workflow Version
  • Case 생성 시 저장하는 Workflow Snapshot의 원본 정보
  • 현재 구현된 Task Type 및 공통 코드

참조 데이터가 이미 다른 Seed에서 생성된다면 중복 생성하지 않고 기존 식별자를 재사용한다.

아직 구현되지 않은 참조 모델이나 API가 필요해지는 경우 본 이슈에서 새로 구현하지 않고 별도 이슈로 분리한다.

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

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

대상 예시:

  • 대표 시나리오 대상 Case
  • 해당 Case에 속하는 3개 Task
  • 승인 완료 Snapshot
  • Worker Link 발급 완료 상태
  • Worker Response 또는 파일 제출 완료 상태
  • ExternalSubmission
  • Evidence
  • 완료된 Task 또는 Case
  • 대표 흐름의 중간·완료 상태를 나타내는 Operational Projection

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

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

대표 시연용 데이터와 Showcase Seed의 목적 및 구분은 Manifest와 문서에 명시한다.

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

응웬반A 대표 시나리오의 시작 조건에서 다음 데이터를 요구하거나 참조하지 않는다.

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

응웬반A에 연결된 여권·외국인등록증·OCR 관련 Seed는 생성하지 않는다.

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

6. Seed Manifest와 문서 갱신

다음 파일 또는 이에 대응하는 현행 Seed 문서를 필요한 범위에서 갱신한다.

  • src/main/resources/demo-seed-manifest.json
  • docs/demo-seed.md
  • 응웬반A Worker Seed Catalog
  • 응웬반A와 직접 연결된 Task·Artifact·Operational Seed Catalog
  • 응웬반A 연결 확인이 필요한 HR 사용자·사업장·Workflow 참조 Seed Catalog

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

  • 대표 시연의 시작 Worker
  • 시연 전에 존재하는 데이터
  • Seed가 미리 생성하지 않는 데이터
  • 결정적 식별자
  • Seed 실행 방법
  • Seed 재실행 시 기대 결과
  • Showcase Seed와 Golden Flow 시작 데이터의 구분
  • OCR, 여권 및 외국인등록증 관련 데이터가 본 이슈 범위 밖이라는 점
  • 다른 근로자의 기존 Showcase Seed는 유지된다는 점

7. 멱등성과 재현성 보장

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

필수 조건:

  • 동일한 Business Key 또는 고정 UUID를 사용한다.
  • 이미 존재하는 데이터는 재사용하거나 안전하게 갱신한다.
  • Case, Task, Worker Link, Evidence 등 시연 중 생성될 데이터의 식별자를 Seed가 선점하지 않는다.
  • Seed 실행 순서에 따라 결과가 달라지지 않는다.
  • 로컬, 개발 및 데모 환경에서 동일한 시작 상태를 재현할 수 있어야 한다.

데이터 정합성 규칙

  • 응웬반A는 하나의 활성 Worker로만 존재한다.
  • 응웬반A가 속한 Company와 Workplace가 일관되어야 한다.
  • HR 사용자는 동일 Company 범위에서 응웬반A를 조회할 수 있어야 한다.
  • 응웬반A의 국적과 기본 사용 언어가 서로 모순되지 않아야 한다.
  • E-9 관련 날짜는 대표 시나리오의 3년 만료 판단이 가능하도록 구성한다.
  • 대표 시연 시작 시 응웬반A에게 대표 시나리오와 동일한 업무 유형·기간의 활성 Case가 없어야 한다.
  • 대표 시연 시작 시 해당 Case에서 생성될 Task가 없어야 한다.
  • 대표 시나리오 대상 승인, Worker Link, Response, Submission, Evidence 및 완료 상태가 없어야 한다.
  • 여권, 외국인등록증 또는 OCR 상태가 AI 요청 시작의 필수 입력으로 연결되어서는 안 된다.
  • Client 전용 Mock 상태를 Server Seed에 신규 Domain으로 구현하지 않는다.
  • 다른 근로자의 기존 Seed 데이터와 연결 관계는 변경하지 않는다.

구현 원칙

  • Seed 구현에는 현재 코드베이스에 이미 존재하는 Server 모델만 사용한다.
  • 명시적으로 계획되어 있으나 미구현 상태인 모델은 본 이슈에서 선행 구현하지 않는다.
  • Seed를 위해 신규 Table, API 또는 Domain Model을 추가하지 않는다.
  • Figma에만 존재하고 Server 계약이 없는 상태는 Client Mock으로 유지한다.
  • 대표 시연은 하나의 일관된 Golden Flow 시작 상태를 기준으로 한다.
  • 중간 단계별 S0~S5 Seed 프로필 전환 기능은 추가하지 않는다.
  • Task Dependency Graph나 별도 Workflow Lock 모델을 추가하지 않는다.
  • 외부 기관 자동 제출을 구현하지 않는다.
  • AI 자동 승인 또는 자동 발송을 구현하지 않는다.
  • 다른 근로자의 Showcase 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, Workplace, 국적, 언어 및 연락 정보가 일관된다.
  • 현재 Worker 모델의 E-9 핵심 날짜만으로 3년 만료 업무를 판단할 수 있다.
  • 대표 시연에 필요한 HR 사용자와 현재 권한 모델의 연결이 존재한다.
  • 현재 구현된 Agent Version, Prompt Version 및 Workflow Catalog가 올바르게 연결된다.

대표 시연 시작 상태

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

문서·OCR 범위

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

정합성·멱등성

  • Demo Seed를 두 번 이상 실행해도 중복 Worker나 참조 데이터가 생성되지 않는다.
  • 대표 시연에서 생성될 Case와 Task의 식별자를 Seed가 선점하지 않는다.
  • 대표 시연 시작 데이터와 Showcase Seed의 목적이 Manifest 및 문서에서 구분된다.
  • Seed Manifest와 docs/demo-seed.md가 실제 생성 결과와 일치한다.
  • 관련 Seed 테스트가 통과한다.

기존 Showcase Seed 보존

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

테스트 항목

자동 테스트

  • Demo profile Application Context 기동
  • Demo Seed 전체 실행
  • Demo Seed 재실행
  • 응웬반A 단일성 검증
  • Company·Workplace·HR 접근 범위 검증
  • 현재 구현된 필수 참조 데이터 연결 검증
  • 응웬반A 대표 시나리오 대상 Case·Task 미생성 검증
  • 응웬반A 여권·외국인등록증·OCR Seed 미생성 검증
  • 다른 근로자의 기존 Seed 수·식별자·관계 보존 검증
  • Manifest와 실제 Seed 결과 일치 검증

수동 확인

  1. 빈 DB에서 Demo profile로 서버를 실행한다.
  2. HR 계정으로 로그인한다.
  3. 응웬반A Worker를 조회한다.
  4. 대표 시나리오 대상 기존 Case나 Task가 없는지 확인한다.
  5. 다른 근로자의 목록, 업무함 및 대시보드 데이터가 기존대로 표시되는지 확인한다.
  6. HR 요청문을 입력해 요청 시작 단계에서 Seed 충돌이 발생하지 않는지 확인한다.
  7. 응웬반A의 여권·외국인등록증·OCR Seed 없이 대표 흐름을 시작할 수 있는지 확인한다.

관련 이슈 및 PR


산출물

  • 응웬반A 대표 시연 시작 상태를 구성하는 Seed 코드
  • 응웬반A의 사전 진행·완료 상태 Seed 제거
  • 다른 근로자의 기존 Showcase Seed 보존
  • 갱신된 demo-seed-manifest.json
  • 갱신된 docs/demo-seed.md
  • Seed 멱등성·정합성·회귀 테스트
  • 대표 시연 시작 절차 문서

Metadata

Metadata

Assignees

Labels

area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외priority:P1핵심 작업 다음으로 처리할 중요 작업status:backlog해야 하지만 아직 시작 조건이 갖춰지지 않은 작업type:feature사용자 또는 Agent가 사용하는 기능 개발

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions