Skip to content

feat: 데모 사업장 및 근로자 시드 데이터 확장 - #69

Merged
krestar merged 4 commits into
mainfrom
feature/demo-company-workers
Aug 3, 2026
Merged

feat: 데모 사업장 및 근로자 시드 데이터 확장#69
krestar merged 4 commits into
mainfrom
feature/demo-company-workers

Conversation

@krestar

@krestar krestar commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

왜 필요한가요?

기존 Demo Seed는 FOWOCO Demo Company와 사용자 계정만 생성해 사업장별 근로자 조회 및 테넌트 분리 시나리오를 검증하기 어려웠습니다.

두 개의 독립된 사업장과 각 사업장에 속한 근로자 데이터가 필요해 다음 시나리오를 재현할 수 있도록 확장합니다.

  • 사업장별 사용자와 근로자 데이터 조회
  • 서로 다른 사업장 간 데이터 분리 확인
  • ADMIN, HR, VIEWER 역할별 기능 확인
  • 여러 번 실행해도 중복되지 않는 로컬 데모 환경 구성

무엇이 바뀌나요?

  • API·도메인·DB 변경:
    • API와 DB 스키마는 변경하지 않습니다.
    • Demo Company에 근로자 5명을 추가합니다.
    • FOWOCO Test Company를 별도 사업장으로 생성합니다.
    • Test Company에 ADMIN, HR, VIEWER 계정을 각각 1명씩 추가합니다.
    • Test Company에 근로자 5명을 추가합니다.
    • 최종 시드 데이터는 회사 2개, 사용자 23명, 근로자 10명입니다.
  • 권한·Workflow 변경:
    • 기존 역할과 권한 정책은 변경하지 않습니다.
    • 각 사용자와 근로자는 지정된 company_id에만 소속됩니다.
  • AI·외부 연동 변경:
    • 없습니다.
  • 문서·배포 변경:
    • .env.example의 Demo Seed 설명을 확장했습니다.
    • 개발 가이드에 사업장별 계정 및 근로자 구성을 문서화했습니다.
    • 운영 및 공유 환경에서는 Demo Seed를 사용하지 않습니다.

사업장별 생성 데이터

사업장 사용자 근로자
FOWOCO Demo Company 20명 5명
FOWOCO Test Company 3명 5명
합계 23명 10명

재실행 및 충돌 처리

  • 회사, 사용자, 근로자에 고정 UUID를 사용합니다.
  • 같은 설정으로 다시 실행해도 데이터를 중복 생성하지 않습니다.
  • 예약된 사용자 이메일이나 UUID가 다른 데이터와 충돌하면 덮어쓰지 않고 실행을 중단합니다.
  • 예약된 근로자 UUID가 다른 사업장 또는 근로자 정보와 충돌해도 실행을 중단합니다.

어떻게 검증했나요?

  • ./gradlew clean test
  • ./gradlew build
  • /health와 Swagger UI 확인
  • 정상적인 Demo Seed 생성
  • 동일 시드 재실행 시 중복 방지
  • 예약 ID·이메일 충돌 검증
  • 권한 부족
  • 다른 사업장 접근 차단
  • 필요한 Idempotency
  • main/test 소스 컴파일

실행한 대상 테스트:

./gradlew test \
  --tests "com.fowoco.server.auth.infrastructure.seed.DemoAuthSeedRunnerTest" \
  --tests "com.fowoco.server.auth.infrastructure.seed.DemoAuthSeedIntegrationTest" \
  --tests "com.fowoco.server.worker.infrastructure.seed.DemoWorkerSeedRunnerTest" \
  --no-daemon

- 기존 FOWOCO Demo Company의 계정 구성을 유지하고 근로자 5명을 추가한다.
- FOWOCO Test Company를 별도 사업장으로 생성한다.
- Test Company에 ADMIN, HR, VIEWER 계정을 각각 1명씩 추가한다.
- Test Company에 근로자 5명을 추가한다.
- 고정 UUID를 사용해 시드를 재실행해도 데이터가 중복되지 않도록 한다.
- 예약된 ID나 이메일이 기존 데이터와 충돌하면 덮어쓰지 않고 실행을 중단한다.
- Demo Seed 설정과 개발 문서를 두 사업장 기준으로 확장한다.
- 단위 및 통합 테스트에서 회사 2개, 계정 23명, 근로자 10명을 검증한다.
@krestar
krestar requested a review from hywznn July 31, 2026 01:54
@BcKmini
BcKmini self-requested a review July 31, 2026 02:25
BcKmini
BcKmini previously approved these changes Jul 31, 2026
Comment thread docs/development-guide.md
krestar added 2 commits July 31, 2026 13:27
- Demo Company에 상태별 데모 Task 5개를 추가한다.
- AI 후보와 승인 대기, 근로자 응답 대기, 외부 처리 대기, 당일 완료 상태를 구성한다.
- 마감일을 7일 이내, 30일 이내, 여유 구간으로 분산한다.
- 근로자별 1~2개의 서류를 추가하고 MISSING, SUBMITTED, VERIFIED 상태를 포함한다.
- 30일 이내 만료되는 근로자 서류를 추가한다.
- 승인 대기 Task에 최근 AuditEvent 3개를 추가한다.
- 고정 UUID와 충돌 검증으로 재실행 시 중복 생성을 방지한다.
- 통합 테스트와 Demo Seed 개발 문서를 확장한다.
- 검색어가 없을 때 keyword 파라미터를 문자열로 명시적으로 캐스팅한다.
- PostgreSQL에서 발생하던 lower(bytea) 오류를 방지한다.
- Task 목록 조회가 500 응답을 반환하던 문제를 수정한다.

@hywznn hywznn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그래도 채울 부분은 계속해서 ERD 정리하면서 채워주십쇼 다음 PR로 이어서 하신다는 것도 확인했습니다

@krestar
krestar merged commit 841345b into main Aug 3, 2026
4 checks passed
@krestar
krestar deleted the feature/demo-company-workers branch August 3, 2026 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants