feat(seed): 운영형 데모 데이터셋 확장 - #79
Merged
Merged
Conversation
- 운영형 데모 fixture를 별도 catalog로 분리 - Task, WorkerDocument, AuditEvent 저장 책임을 엔티티별 seeder로 분리 - 회사 및 실행자 ID와 Clock 기반 날짜를 seed context로 통합 - 예약 ID와 교차 엔티티 일관성을 확인하는 verifier 추가 - 기존 시드 레코드와 실행 순서, 멱등성 동작 유지
- Demo Company 근로자 시드를 28명으로 확장 - Figma 대표 근로자와 현실적인 국적·언어·근무 상태 구성 - Clock 기반 체류·계약 날짜 분포 및 재실행 갱신 지원 - Test Company의 기존 5명 격리 데이터셋 유지 - 근로자 fixture를 별도 catalog로 분리 - 기존 근로자 시드 테스트 기대값 갱신
- Demo Company Task 24개와 WorkerDocument 84개 구성 - Task 타입·상태와 문서 상태 목표 분포 적용 - 대표 Figma 근로자 중심 업무·문서 시나리오 추가 - Test Company에 Task 3개와 문서 8개 격리 데이터 추가 - tenant별 seed context와 근로자 참조 검증 확장 - 고정 UUID, 상대 날짜, 재실행 멱등성 유지
- 워크플로 카탈로그 기반 데모 태스크 체크리스트 68건 추가 - 승인 상태별 요청 13건과 현재 태스크 상태 정합성 구성 - 태스크 상태 전이 이력 52건 및 취소·완료 사유 추가 - 고정 UUID 충돌 검증과 재실행 멱등성 보강
- 외부기관 제출 시나리오 6건 추가 - 완료 태스크별 안전한 메모 기반 증빙 10건 추가 - 근로자 응답 대기 및 재계약 준비용 문서 요청 초안 5건 추가 - 고정 UUID 충돌 검증과 재실행 멱등성 보강
- 운영형 데모 및 테스트 회사의 Audit Event 시나리오를 확장한다. - HR 사용자, AI 에이전트, 시스템 규칙, 근로자 링크 행위자를 구성한다. - 업무·체크리스트·승인·외부 제출·완료 증빙 이벤트를 연결한다. - 예약된 Audit Event ID를 단건 조회해 재실행 멱등성을 검증한다. - JPA 영속성 컨텍스트를 사용해 저장 직후 검증이 실패하지 않도록 한다. - 기존 타임라인 Audit Event 3건과의 호환성을 유지한다.
- Demo/Test 회사의 최종 시드 수량과 주요 상태 분포를 검증한다. - 고정 Clock을 사용해 업무·문서·Audit 상대 날짜를 검증한다. - 전체 시드 러너 재실행 후 데이터가 중복되지 않는지 확인한다. - 예약 ID와 이메일 충돌 시 시드가 실패하는지 검증한다. - Demo/Test 인증을 이용해 근로자·업무·문서·Audit API 결과와 테넌트 격리를 확인한다. - StoredFile 및 민감정보가 생성되지 않는지 검증한다.
- Demo/Test Company의 최종 시드 수량과 대표 계정을 문서화한다. - 대표 근로자별 업무·문서·승인·Audit 시나리오를 정리한다. - 현재 프런트엔드 지표와 필터가 사용하는 서버 데이터를 설명한다. - Figma 개념의 정확한 표현, 근사 표현과 제외 범위를 구분한다. - Demo Seed의 멱등성, 초기화, 재실행과 확인 방법을 안내한다. - 개발 가이드, README와 환경변수 예시를 최신 수량으로 갱신한다.
- Demo Worker와 Document를 최초 생성 시점 기준 immutable snapshot으로 유지 - 승인 없는 대기 업무에서 잘못된 APPROVED 전이를 제거 - 체크리스트·승인·제출·증빙·완료 시간 순서를 일관되게 보정 - 24개 Demo Task의 전이 연결성과 시간 불변조건 검증 추가 - same-Clock 및 next-day 재실행 시 수량과 snapshot 불변 테스트 강화 - Demo Seed 재실행 계약과 현재 fixture 분포를 문서에 동기화
- 응웬반A의 체류 만료일을 D+45 기준으로 조정 - 재계약, 취업활동기간 연장, 여권 요청 업무를 동일 Case로 연결 - 대표 Task에 요청 원문, 후보 순서, 누락정보 등 demo business_data 추가 - 응웬반A의 여권, 외국인등록증, 계약서 상태를 시나리오에 맞게 정리 - 전체 Task 유형과 문서 상태 분포 유지 - 재실행 시 business_data와 fingerprint 정합성 검증 강화 - 대표 초안 시나리오 및 문서 상태 통합 테스트 추가
- 업무별 AI·HR 승인 snapshot과 변경 필드 및 원천 버전을 저장한다 - 누락 여권 문서에 맞춘 베트남어 제출 요청 초안을 구성한다 - 체류기간 연장 업무의 승인·외부 제출·증빙 lifecycle을 연결한다 - 동일 trace ID 기반 AI Agent 처리 이력을 추가한다 - lifecycle fixture와 재실행 불변성 검증을 보강한다
- 개인정보 없는 합성 PDF 계약서·접수증·승인 결과를 추가한다 - 예약된 stored_file과 근로자 문서 및 완료 증빙을 연결한다 - plain UUID 형식으로 evidence file reference를 저장한다 - 파일 크기와 SHA-256을 검증하고 충돌 시 덮어쓰지 않는다 - 파일과 DB의 부분 생성 상태를 재실행 시 복구한다
- 미지원 선호 언어를 AI팀과 합의된 locale로 교체한다 - 데모 근로자 28명에 지원 locale 15개를 모두 포함한다(locale 최소 1개 이상 보장) - 국적과 선호 언어에 맞게 일부 근로자 이름을 조정한다(데모 근로자 01~05 활용) - 기존 UUID와 상태·기간·식별 관계는 유지한다
- AI팀 지원 locale 15개와 국적 조합을 검증한다 - 복합 업무 시나리오의 순서와 의존 관계를 확인한다 - 데모 PDF의 메타데이터와 Task·Worker 연결을 검증한다 - 동일 크기 파일의 SHA-256 충돌 감지를 확인한다 - Worker 핵심 데이터를 재실행 불변성 snapshot에 포함한다
Contributor
|
docs/demo-seed.md 이 파일을 주로 읽으면 되겠군요 한번 쓱 봤는데
이거 3개생기는 것 맞죠? 음 아직도 작업중이셨군요 |
- PWF_v3 화면 요구사항과 예약 fixture의 대응 관계를 정리한다 - DB·로컬 파일 저장 여부와 현재 조회 API 노출 범위를 구분한다 - 승인 lifecycle, 합성 PDF, 지원 locale 및 근사·제외 범위를 기록한다 - Demo Seed 수량과 Audit·StoredFile 정보를 최신 상태로 갱신한다
Contributor
Author
|
26.08.04. 17:17 금일 변경사항
현재 조회 API가 있는 근로자·Task·체크리스트·문서·Audit은 FE에서 바로 조회할 수 있습니다. API·도메인·DB 스키마 변경 없이 데모 시드와 검증 테스트, 문서만 보강했습니다. |
There was a problem hiding this comment.
Pull request overview
로컬 Demo/Test Seed를 “운영형 시나리오” 수준(근로자 28 / 업무 24 / 문서 84 / 승인·체크리스트·전이·외부제출·증빙·Audit 포함)으로 확장하고, 재실행 멱등성과 테넌트 격리를 자동 검증할 수 있도록 시드 구성·검증 로직과 테스트/문서를 보강하는 PR입니다.
Changes:
- Demo/Test 운영형 데이터셋 생성을 위해 Catalog/Seeder/Verifier 구조로 DemoOperationalSeed를 재구성
- StoredFile PDF fixture를 classpath → 로컬 파일 저장소로 설치/검증하는 로직 및 테스트 추가
- 멱등성/격리/상대 날짜/주요 API 조회 가능 여부를 통합 검증하는 테스트 및 문서 정리
Reviewed changes
Copilot reviewed 36 out of 39 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/test/java/com/fowoco/server/worker/infrastructure/seed/DemoWorkerSeedRunnerTest.java | Demo 근로자 28명 및 언어/국적/상태 분포와 멱등성 검증 강화 |
| src/test/java/com/fowoco/server/demo/infrastructure/seed/DemoFileFixtureInstallerTest.java | PDF fixture installer의 재사용/충돌 거부 동작 테스트 추가 |
| src/test/java/com/fowoco/server/auth/infrastructure/seed/DemoAuthSeedRunnerTest.java | 예약 ID/이메일 충돌 시 기동 중단 검증 케이스 추가 |
| src/test/java/com/fowoco/server/auth/infrastructure/seed/DemoAuthSeedIntegrationTest.java | Demo/Test Seed 전체 수량·격리·API 조회·상대 날짜·멱등성 통합 검증으로 확장 |
| src/test/java/com/fowoco/server/auth/AuthRefreshPostgreSqlConcurrencyTest.java | PostgreSQL 동시성 테스트의 데이터 정리 쿼리를 테넌트 범위로 제한 |
| src/main/java/com/fowoco/server/worker/infrastructure/seed/DemoWorkerSeedRunner.java | DemoWorkerSeedCatalog 기반으로 근로자 시드 확장 및 상태(ON_LEAVE) 지원 |
| src/main/java/com/fowoco/server/worker/infrastructure/seed/DemoWorkerSeedCatalog.java | Demo/Test 근로자 28/5명 고정 UUID 시드 정의 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoWorkerDocumentSeeder.java | worker_document 시드 삽입 및 기존 데이터 검증 로직 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoTaskWorkflowSeedCatalog.java | 체크리스트/승인/전이 이력 시드 생성 규칙 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoTaskTransitionSeeder.java | task_transition_history 직접 삽입 및 검증 로직 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoTaskSeeder.java | task 시드 생성(콘텐츠 인코딩 포함) 및 기존 데이터 검증 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoTaskSeedCatalog.java | Demo/Test 업무 24/3건과 대표 시나리오(복합 초안 흐름 등) 정의 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoTaskChecklistSeeder.java | task_checklist_item 시드 삽입 및 검증 로직 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoTaskArtifactSeedCatalog.java | 외부제출/완료증빙/문서요청초안 시드 정의 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoStoredFileSeeder.java | stored_file 메타데이터 시드 및 fixture 설치 연계 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoStoredFileSeedCatalog.java | PDF StoredFile 3건(계약서/접수증/결과) 고정 UUID 정의 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoOperationalSeedVerifier.java | 예약 ID 유일성/참조 정합성/시드 존재 여부 검증 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoOperationalSeedRunner.java | DemoOperationalSeedCatalog + 여러 Seeder로 데이터셋 생성/검증하도록 재구성 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoOperationalSeedContext.java | Demo/Test 회사별 companyId/actorId/today/now 컨텍스트 정의 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoOperationalSeedConfiguration.java | DemoOperationalSeedRunner 구성(Seeder/Verifier/fixture installer wiring) 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoOperationalSeedCatalog.java | Demo/Test 전체 운영형 시드(Tasks/Documents/Approvals/Audits 등) 정의 및 자체 검증 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoFileFixtureInstaller.java | classpath PDF를 로컬 파일 저장소에 설치/검증하는 로직 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoExternalSubmissionSeeder.java | external_submission 시드 저장 및 검증 로직 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoEvidenceSeeder.java | task_evidence 시드 저장 및 검증 로직 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoDocumentSeedCatalog.java | Demo/Test 문서 84/8건 생성 규칙(상태/만료 구간 포함) 정의 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoDocumentRequestDraftSeeder.java | document_request_draft 시드 삽입 및 예약 ID 소유권 검증 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoAuditSeedCatalog.java | AuditEvent 추가 생성 규칙(ActorType/trace 포함) 정의 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoAuditEventSeeder.java | audit_event append 및 기존 이벤트 검증을 위한 findById 사용 추가 |
| src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoApprovalRequestSeeder.java | approval_request snapshot 시드 생성 및 outcome 적용/검증 로직 추가 |
| src/main/java/com/fowoco/server/audit/infrastructure/persistence/JpaAuditEventRepository.java | AuditEventRepository에 findById 구현 추가 |
| src/main/java/com/fowoco/server/audit/application/port/AuditEventRepository.java | AuditEvent 조회용 findById(UUID) API 추가 |
| README.md | Demo Seed 관련 문서 링크 추가 |
| docs/development-guide.md | Demo Seed 수량/시나리오 문서로 안내 갱신 |
| docs/demo-seed.md | 운영형 Demo Seed 시나리오/수량/검증/초기화 절차 문서 추가 |
| docs/demo-seed-fixture-manifest.md | Figma 요구사항 ↔ 예약 fixture ↔ API 노출 범위 매니페스트 문서 추가 |
| .env.example | Demo/Test Seed 수량 요약 및 문서 링크 코멘트 갱신 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
|
변경 파일 충돌은 없고 |
hywznn
approved these changes
Aug 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
왜 필요한가요?
기존 Demo Seed는 인증과 기본 사업장·계정·근로자 확인에는 사용할 수 있었지만,
업무 목록, 문서 현황, 승인 흐름, 외부 제출, 완료 증빙 및 감사 이력을 포함한
운영 화면을 충분히 시연하기 어려웠습니다.
Figma 기반 주요 화면과 실제 Workflow를 하나의 일관된 데이터셋으로 확인할 수 있도록
Demo/Test Seed를 운영형 시나리오로 확장합니다.
무엇이 바뀌나요?
API·도메인·DB 변경:
권한·Workflow 변경:
STAY,RECONTRACT,EMPLOYMENT_PERIOD_EXTENSION업무 유형을 모두 포함합니다.DRAFT부터COMPLETED,CANCELLED까지 모든 업무 상태를 포함합니다.company_id격리를 검증합니다.AI·외부 연동 변경:
문서·배포 변경:
구현 범위 메모
Issue 본문의 초기 데이터 예시와 비교해 다음 항목은 현재 도메인과 운영 시나리오를
우선해 조정했습니다.
ACTIVE25명,ON_LEAVE3명으로 구성했습니다.만료일 없음 구간을 모두 확인할 수 있도록 구성했습니다.
어떻게 검증했나요?
./gradlew clean test./gradlew build/health와 Swagger UI 확인실행한 테스트:
.\gradlew.bat test로컬 실행 및 데이터 확인:
보안·개인정보
company_id범위를 검사합니다.request_id로 추적됩니다.Proposed로 작성했습니다.Demo 데이터는 시연용 가상 인물과 식별자를 사용하며,
Audit Event에는 원본 토큰이나 실제 개인정보를 포함하지 않습니다.
API·DB·운영 영향
.env.example에 적었습니다.화면 또는 응답 예시
개인정보를 제거한 Seed 검증 결과: