1. 현재 데이터 기준
현재 데모 시드는 다음과 같이 구성되어 있습니다.
| 구분 |
현재 수량 |
| 회사 |
2 |
| 계정 |
23 |
| FOWOCO Demo Company 근로자 |
5 |
| FOWOCO Test Company 근로자 |
5 |
| Demo Company 업무 |
5 |
| 근로자 문서 |
7 |
| 활동 이력 |
3 |
현재 운영 데이터 시드는 다음 파일에 구현되어 있습니다.
src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoOperationalSeedRunner.java
src/main/java/com/fowoco/server/worker/infrastructure/seed/DemoWorkerSeedRunner.java
src/main/java/com/fowoco/server/auth/infrastructure/seed/DemoAuthSeedRunner.java
2. 목표 데이터 규모
Figma의 PEOPLE-001과 WORK-001 화면에 표시된 수량을 기준으로 운영형 데모 데이터셋을 구성합니다.
FOWOCO Demo Company
| 데이터 |
최종 수량 |
목적 |
| 계정 |
기존 20명 유지 |
ADMIN·HR·VIEWER 역할 유지 |
| 근로자 |
28명 |
Figma PEOPLE-001의 전체 28명 반영 |
| 업무 |
24건 |
Figma WORK-001의 전체 24 반영 |
| 근로자 문서 |
84건 |
근로자마다 2~4종의 서류 구성 |
| 체크리스트 |
68건 |
Workflow별 필수 단계 구성 |
| 승인 요청 |
13건 |
대기·승인·반려·무효화 상태 구성 |
| 상태 전환 이력 |
약 52건 |
업무 생성부터 완료까지의 진행 과정 |
| 외부기관 제출 |
6건 |
접수 완료 및 결과 대기 사례 |
| 완료 증빙 |
10건 |
접수증·공식 결과·HR 확인 |
| 문서 요청 초안 |
5건 |
근로자에게 전달할 서류 요청문 초안 |
| Audit Event |
약 96건 |
오늘·7일·30일·과거 활동 이력 |
FOWOCO Test Company
Test Company는 운영형 데이터를 모두 복제하지 않고 사업장 데이터 격리를 확인할 수 있는 소규모 데이터셋으로 유지합니다.
| 데이터 |
최종 수량 |
| 계정 |
기존 3명 |
| 근로자 |
기존 5명 |
| 업무 |
3건 |
| 문서 |
8건 |
| Audit Event |
약 8건 |
전체 DB 기준 예상 규모는 다음과 같습니다.
- 회사 2개
- 계정 23명
- 근로자 33명
- 업무 27건
- 문서 92건
3. 근로자 데이터 구성
Demo Company 근로자 28명은 다양한 근무 상태, 국적, 언어 및 체류 만료일을 가지도록 구성합니다.
근무 상태
| 상태 |
수량 |
ACTIVE |
22명 |
ON_LEAVE |
2명 |
RESIGNED |
2명 |
TERMINATED |
2명 |
국적 및 선호 언어
다음과 같은 국적·언어 조합을 포함합니다.
- 베트남:
VN / vi
- 태국:
TH / th
- 네팔:
NP / ne
- 인도네시아:
ID / id
- 필리핀:
PH / en
- 캄보디아:
KH / km
- 몽골:
MN / mn
- 방글라데시:
BD / bn
- 우즈베키스탄:
UZ / uz
- 스리랑카:
LK / si
체류 만료일 분포
- D-7 이내 긴급
- D-12
- D-21
- D-35
- D-62
- 90일 이내
- 90일 이후 정상
- 일부 정보 미확인
대표 근로자
Figma의 우선 확인 목록과 주요 업무 시나리오를 연결하기 위해 다음 대표 근로자를 추가합니다.
기존 데모 근로자 01~05는 시드 충돌 방지를 위해 유지하고 신규 근로자를 추가합니다.
4. 업무 데이터 구성
현재 백엔드에서 지원하는 업무 유형만 사용합니다.
업무 유형
| 업무 유형 |
수량 |
STAY_PERIOD_EXTENSION |
10건 |
RECONTRACT |
8건 |
EMPLOYMENT_PERIOD_EXTENSION |
6건 |
| 합계 |
24건 |
업무 상태
| 상태 |
수량 |
DRAFT |
3건 |
NEEDS_INFO |
2건 |
READY_FOR_REVIEW |
4건 |
APPROVED |
2건 |
WAITING_WORKER |
4건 |
WAITING_EXTERNAL |
3건 |
COMPLETED |
5건 |
CANCELLED |
1건 |
| 합계 |
24건 |
이 분포를 통해 업무함의 다음 지표와 필터에 데이터가 표시되도록 합니다.
- AI 준비 완료
- 검토 필요
- 승인 대기
- 후속조치
- 긴급 업무
- 오늘 완료
5. 대표 업무 시나리오
Workflow 문서와 Figma에서 확인한 시나리오 중 현재 서버가 표현할 수 있는 범위를 다음과 같이 구성합니다.
- 응웬반A 체류연장 D-12, 요청문 승인 대기
- 쩐티B 체류연장 D-21, 신청서 1건 누락
- 수라즈C 여권 사본 요청, 근로자 응답 대기
- 아흐메드D 체류만료 D-62, AI 추천 업무 초안
- 솜차이E 체류연장 완료, 추가 조치 없음
- 계약 종료 D-60, 체류기간에는 여유가 있는 사례
- 재계약은 완료됐지만 고용허가기간 연장 결과는 없는 사례
- 여권 만료일이 체류 연장 예정일보다 빠른 사례
- 서식 7호와 서식 12호의3 구분이 필요한 사례
- 제출 채널이 누락되어
NEEDS_INFO 상태인 사례
- 승인 후 내용 변경으로 기존 승인이 무효화된 사례
- 중복 생성으로 취소된 업무
- 외부기관 접수번호를 기록하고 결과를 기다리는 사례
- 접수증과 공식 결과까지 기록되어 완료된 사례
관련 업무는 동일한 case_id를 사용하여 재계약과 고용허가기간 연장 등의 연속성을 표현합니다.
단, 현재는 별도의 Case 엔터티나 Case 테이블이 없으므로 완전한 Master Workflow처럼 구현하지 않습니다.
6. 문서 데이터 구성
현재 백엔드가 지원하는 다음 네 가지 문서 유형만 사용합니다.
PASSPORT_COPY
ARC
CONTRACT
PERMIT
문서 상태
| 상태 |
수량 |
VERIFIED |
48건 |
SUBMITTED |
20건 |
MISSING |
16건 |
| 합계 |
84건 |
문서 만료일
| 만료 조건 |
수량 |
| 이미 만료 |
4건 |
| 30일 이내 만료 |
12건 |
| 31~90일 이내 만료 |
18건 |
| 90일 이후 |
42건 |
| 만료일 미확인 |
8건 |
| 합계 |
84건 |
이를 통해 문서 화면의 다음 탭과 지표가 비어 있지 않도록 구성합니다.
- 전체
- 검토 필요
- 만료 예정
- 누락 문서
- 요청 중
- 최근 업로드
실제 파일 바이너리와 가짜 저장 경로는 생성하지 않습니다.
다운로드 API가 없는 상태에서 stored_file 메타데이터만 생성하면 끊어진 파일 참조가 될 수 있으므로 이번 범위에서는 문서 상태와 만료일 중심으로 구성합니다.
7. 체크리스트·승인·외부 제출·완료 증빙
각 업무가 단순 목록 데이터가 아니라 실제 진행 중인 업무처럼 보이도록 연관 데이터를 함께 생성합니다.
DRAFT / NEEDS_INFO
- 필수 체크리스트 일부 미완료
due_at, 제출 채널 등 일부 필수 정보 누락
- AI 추천 또는 추가 정보 확인 필요 상태
READY_FOR_REVIEW
- 필수 체크리스트 완료
PENDING 승인 요청 연결
- HR의 검토와 승인이 필요한 상태
APPROVED
- 승인자 기록
- 승인 시각 기록
- 승인된 Snapshot과 대상 버전 기록
WAITING_WORKER
- 여권, ARC, 계약서 등의 문서 요청 초안 연결
- 근로자 응답 대기 상태
- 관련 Audit Event 기록
WAITING_EXTERNAL
- 외부기관 제출처 기록
- 개인정보가 포함되지 않은 안전한 접수 참조값 기록
- 외부기관 처리 결과 대기
COMPLETED
- 접수증
- 공식 결과
- HR 확인
- 다음 검토 예정일 등 완료 증빙 기록
CANCELLED
- 취소 사유 기록
- 중복 생성 또는 업무 불필요 사유 기록
- 상태 전환 이력 기록
승인 요청은 다음 상태를 모두 포함합니다.
PENDING
APPROVED
REJECTED
INVALIDATED
8. 활동 이력 구성
Agent 로그 화면의 기간 및 근거 출처 필터가 모두 동작하도록 다양한 Actor의 Audit Event를 구성합니다.
Actor 유형
HR_USER
- 업무 생성
- 업무 수정
- 승인 요청
- 승인 및 반려
AI_AGENT
- 업무 초안 생성
- 보유 정보 분석
- 누락 정보 감지
SYSTEM_RULE
- D-day 감지
- 기한 위험 알림
- 정기 확인 업무 생성
WORKER_LINK
시간 분포
이를 통해 Agent 로그의 다음 필터에 각각 데이터가 표시되도록 합니다.
- 등록된 규칙
- Agent 초안
- HR 확인
- 근로자 응답
9. 이번 시드에서 만들지 않을 데이터
다음 항목은 Workflow 문서와 Figma에는 존재하지만 현재 백엔드 모델이 없거나 프론트엔드에서 정적 데이터를 사용하고 있으므로 이번 구현 범위에서 제외합니다.
- 신규 입사
WORKER_ONBOARDING Master Workflow
- 퇴사·고용변동
EMPLOYMENT_CHANGE
- 독립적인 문서 요청 Workflow
- 급여 설명 Workflow
- 근무·일정 안내 Workflow
- 급여 데이터
- 근태 데이터
- 근무 일정 데이터
- Excel/CSV Import Batch
- OCR 분석 결과
- 중복 근로자 후보
- Import 충돌 행
- Worker Secure Link 토큰
- Worker Link 만료·재발급·폐기
- 근로자 질문 Ticket
- ANY_ONE 승인 정책
- 구성원별 승인 권한 설정
- 별도 Case 엔터티
- 업무 간 선후행 관계 및 잠금
NEEDS_REVIEW, EXPIRED, REJECTED 등의 확장 문서 상태
- HWP/HWPX 변환 결과
- AI 문서 비교 결과
- 실제 파일 바이너리
- Refresh Token
- Outbox 작업 데이터
10. 정적 화면과 실제 API 연동 범위
현재 다음 화면은 실제 API 데이터를 사용하므로 이번 데모 시드의 영향을 받습니다.
- 근로자 목록
- 근로자 상세
- 업무 목록
- 업무 상세의 기본 정보와 체크리스트
- 문서 목록
- 문서 상세의 기본 정보
- Agent 활동 이력
반면 다음 화면 또는 화면 일부는 현재 정적 데이터를 사용하므로 DB 시드를 추가해도 표시 내용이 변경되지 않습니다.
- 대시보드
- 티켓 목록 및 티켓 상세
- 온보딩 파일 가져오기
- 근로자 보안 링크
- Review 화면의 AI 분석 결과
- Case 상세의 문서 영역
- Case 상세의 소통 영역
- 설정 및 정책 관리
정적 화면을 채우기 위해 이번 작업에서 새로운 API나 테이블을 구현하지 않습니다.
11. 구현 원칙
- 기존 Demo Seed 설정으로 함께 실행할 수 있어야 합니다.
- 모든 시드 데이터는 고정 UUID를 사용합니다.
- 시드를 재실행해도 데이터가 중복되지 않아야 합니다.
- 예약된 UUID나 이메일이 다른 데이터와 충돌하면 덮어쓰지 않고 실행을 중단합니다.
- 날짜는 실행일 기준 상대 날짜로 생성합니다.
- 업무 상태, 체크리스트, 승인, 제출 및 증빙 상태가 서로 모순되지 않아야 합니다.
- Test Company 데이터가 Demo Company 계정에서 조회되지 않아야 합니다.
- 실제 여권번호, 외국인등록번호, 연락처, 급여정보를 사용하지 않습니다.
- 로그와
business_data_json에 민감정보를 기록하지 않습니다.
- Flyway migration을 추가하지 않습니다.
- 기존 API와 도메인 모델을 변경하지 않습니다.
- 기존 BcKmini 요청으로 추가한 데이터는 삭제하지 않고 확장합니다.
12. 완료 조건
1. 현재 데이터 기준
현재 데모 시드는 다음과 같이 구성되어 있습니다.
현재 운영 데이터 시드는 다음 파일에 구현되어 있습니다.
src/main/java/com/fowoco/server/demo/infrastructure/seed/DemoOperationalSeedRunner.javasrc/main/java/com/fowoco/server/worker/infrastructure/seed/DemoWorkerSeedRunner.javasrc/main/java/com/fowoco/server/auth/infrastructure/seed/DemoAuthSeedRunner.java2. 목표 데이터 규모
Figma의
PEOPLE-001과WORK-001화면에 표시된 수량을 기준으로 운영형 데모 데이터셋을 구성합니다.FOWOCO Demo Company
전체 28명반영전체 24반영FOWOCO Test Company
Test Company는 운영형 데이터를 모두 복제하지 않고 사업장 데이터 격리를 확인할 수 있는 소규모 데이터셋으로 유지합니다.
전체 DB 기준 예상 규모는 다음과 같습니다.
3. 근로자 데이터 구성
Demo Company 근로자 28명은 다양한 근무 상태, 국적, 언어 및 체류 만료일을 가지도록 구성합니다.
근무 상태
ACTIVEON_LEAVERESIGNEDTERMINATED국적 및 선호 언어
다음과 같은 국적·언어 조합을 포함합니다.
VN/viTH/thNP/neID/idPH/enKH/kmMN/mnBD/bnUZ/uzLK/si체류 만료일 분포
대표 근로자
Figma의 우선 확인 목록과 주요 업무 시나리오를 연결하기 위해 다음 대표 근로자를 추가합니다.
기존
데모 근로자 01~05는 시드 충돌 방지를 위해 유지하고 신규 근로자를 추가합니다.4. 업무 데이터 구성
현재 백엔드에서 지원하는 업무 유형만 사용합니다.
업무 유형
STAY_PERIOD_EXTENSIONRECONTRACTEMPLOYMENT_PERIOD_EXTENSION업무 상태
DRAFTNEEDS_INFOREADY_FOR_REVIEWAPPROVEDWAITING_WORKERWAITING_EXTERNALCOMPLETEDCANCELLED이 분포를 통해 업무함의 다음 지표와 필터에 데이터가 표시되도록 합니다.
5. 대표 업무 시나리오
Workflow 문서와 Figma에서 확인한 시나리오 중 현재 서버가 표현할 수 있는 범위를 다음과 같이 구성합니다.
NEEDS_INFO상태인 사례관련 업무는 동일한
case_id를 사용하여 재계약과 고용허가기간 연장 등의 연속성을 표현합니다.단, 현재는 별도의 Case 엔터티나 Case 테이블이 없으므로 완전한 Master Workflow처럼 구현하지 않습니다.
6. 문서 데이터 구성
현재 백엔드가 지원하는 다음 네 가지 문서 유형만 사용합니다.
PASSPORT_COPYARCCONTRACTPERMIT문서 상태
VERIFIEDSUBMITTEDMISSING문서 만료일
이를 통해 문서 화면의 다음 탭과 지표가 비어 있지 않도록 구성합니다.
실제 파일 바이너리와 가짜 저장 경로는 생성하지 않습니다.
다운로드 API가 없는 상태에서
stored_file메타데이터만 생성하면 끊어진 파일 참조가 될 수 있으므로 이번 범위에서는 문서 상태와 만료일 중심으로 구성합니다.7. 체크리스트·승인·외부 제출·완료 증빙
각 업무가 단순 목록 데이터가 아니라 실제 진행 중인 업무처럼 보이도록 연관 데이터를 함께 생성합니다.
DRAFT/NEEDS_INFOdue_at, 제출 채널 등 일부 필수 정보 누락READY_FOR_REVIEWPENDING승인 요청 연결APPROVEDWAITING_WORKERWAITING_EXTERNALCOMPLETEDCANCELLED승인 요청은 다음 상태를 모두 포함합니다.
PENDINGAPPROVEDREJECTEDINVALIDATED8. 활동 이력 구성
Agent 로그 화면의 기간 및 근거 출처 필터가 모두 동작하도록 다양한 Actor의 Audit Event를 구성합니다.
Actor 유형
HR_USERAI_AGENTSYSTEM_RULEWORKER_LINK시간 분포
이를 통해 Agent 로그의 다음 필터에 각각 데이터가 표시되도록 합니다.
9. 이번 시드에서 만들지 않을 데이터
다음 항목은 Workflow 문서와 Figma에는 존재하지만 현재 백엔드 모델이 없거나 프론트엔드에서 정적 데이터를 사용하고 있으므로 이번 구현 범위에서 제외합니다.
WORKER_ONBOARDINGMaster WorkflowEMPLOYMENT_CHANGENEEDS_REVIEW,EXPIRED,REJECTED등의 확장 문서 상태10. 정적 화면과 실제 API 연동 범위
현재 다음 화면은 실제 API 데이터를 사용하므로 이번 데모 시드의 영향을 받습니다.
반면 다음 화면 또는 화면 일부는 현재 정적 데이터를 사용하므로 DB 시드를 추가해도 표시 내용이 변경되지 않습니다.
정적 화면을 채우기 위해 이번 작업에서 새로운 API나 테이블을 구현하지 않습니다.
11. 구현 원칙
business_data_json에 민감정보를 기록하지 않습니다.12. 완료 조건