Skip to content

feat: 근로자 목록 조회 API 구현#49

Merged
chaeliki merged 5 commits into
mainfrom
feat/5-worker-list
Jul 24, 2026
Merged

feat: 근로자 목록 조회 API 구현#49
chaeliki merged 5 commits into
mainfrom
feat/5-worker-list

Conversation

@chaeliki

Copy link
Copy Markdown
Contributor

왜 필요한가요?

Closes #5

#5의 근로자 목록 조회(GET /workers)를 구현합니다. #40에서 5개 API를 먼저 구현했고,
이번 PR로 #5가 소유한 6개 API가 모두 완료됩니다. WorkerSensitiveData는 #48로 분리했습니다.

무엇이 바뀌나요?

Public API

GET /api/v1/workers

  • Query: status?, language?, expiryBefore?, page=0, size=20
  • 응답: items, page, size, total_elements
  • ADMIN/HR/VIEWER 모두 조회 가능 (기존 상세조회와 동일한 권한 정책)
  • size는 1~100 범위를 벗어나면 400으로 거부합니다.

Repository

  • WorkerRepository.findPage/countPage를 추가하고, 두 메서드가 같은 필터 조건(where 절)을
    공유하도록 조립 로직을 분리했습니다.

보안 검증

  • 목록 응답에 민감정보(legal_name, phone 등)가 없는지 확인
  • 다른 사업장 근로자가 목록에 섞이지 않는지 확인
  • VIEWER가 등록은 403으로 거부되고, 조회(목록·상세)는 되는지 확인

검증

  • ./gradlew test --tests 'com.fowoco.server.worker.*'
  • ./gradlew clean test build

모두 통과했습니다 (WorkerSecurityIntegrationTest 11개).

이번 PR에서 하지 않는 것

  • WorkerSensitiveData — #48로 분리

리뷰 포인트

  • 페이지네이션을 Page<T> 대신 직접 만든 WorkerPageResponse로 간 것이 적절한지
  • size 범위(1~100)와 기본값(20)이 실제 사용 패턴에 맞는지

@chaeliki
chaeliki merged commit 7589814 into main Jul 24, 2026
1 of 2 checks passed
@chaeliki
chaeliki deleted the feat/5-worker-list branch July 24, 2026 06:56
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.

[Worker] 근로자 기본정보·서류 메타데이터 API 구현

2 participants