Skip to content

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

Closed
2 of 2 issues completed

Description

@hywznn

한 줄 요약

HR이 업무에 필요한 최소한의 근로자 정보와 서류 상태를 사업장 범위 안에서 안전하게 관리하도록 API를 구현합니다.

데이터 범위

근로자 기본정보

  • 표시 이름
  • 국적
  • 선호 언어
  • 근무 상태
  • 체류 만료일
  • 계약 시작일·종료일
  • 사업장 식별자

서류 상태

  • 서류 유형
  • 제출 여부
  • 유효기간 또는 만료일
  • 제출처
  • 상태와 비고
  • 파일 저장 참조값(선택)

구현 범위

  • Worker, WorkerDocument 모델과 migration - WorkerSensitiveData은 후속 이슈에서 다룸
  • 근로자 상태와 서류 유형 Enum 정의
  • GET /workers — 검색·상태 필터·페이지네이션
  • POST /workers
  • GET /workers/{workerId}
  • PATCH /workers/{workerId}
  • POST /workers/{workerId}/documents
  • PATCH /workers/{workerId}/documents/{documentId}
  • 날짜 관계와 필수 필드 검증
  • 사업장 범위와 역할 검사
  • 민감정보 마스킹·암호화 경계 정의 → #48로 이관
  • 파일 저장은 FileStorage 인터페이스로 분리하되 MVP는 메타데이터 중심으로 구현

개인정보 원칙

  • AI 연동에 여권번호, 외국인등록번호, 전화번호, 계좌번호를 전달하지 않습니다.
  • 민감정보가 필요하면 기본정보 테이블과 분리하고 암호화합니다.
  • 목록 API는 업무에 불필요한 민감 필드를 반환하지 않습니다.
  • 삭제가 필요한 경우 물리 삭제보다 정책에 따른 비활성화·보존을 우선 검토합니다.

완료 조건

  • HR이 자신의 사업장 근로자를 등록·조회·수정할 수 있습니다.
  • 체류 만료일과 계약기간을 유효한 날짜로 검증합니다.
  • 근로자에게 서류 상태를 추가하고 갱신할 수 있습니다.
  • 다른 사업장 사용자는 동일 ID를 알아도 접근할 수 없습니다.
  • 목록 응답에 민감정보가 포함되지 않습니다.
  • API·Service·Repository 통합 테스트가 존재합니다.
  • Swagger에 요청·응답 예시와 필드 설명이 표시됩니다.

이번 이슈에서 하지 않는 것

  • 대용량 원본 파일 업로드
  • OCR과 자동 문서 분류
  • 여권·외국인등록증 번호의 AI 전송
  • 근로자 로그인

선행/후속 관계

용어 도움말

  • 마스킹: 값 전체 대신 일부만 보이게 만드는 처리입니다.
  • 암호화: 권한이 있는 서버만 원래 값을 복원할 수 있도록 저장하는 방식입니다.
  • 메타데이터: 파일 자체가 아니라 종류·상태·만료일 같은 설명 정보입니다.

2026-07-21 · 46개 API 명세 반영

이 이슈가 소유하는 API 6개

  • GET /workers
  • POST /workers
  • GET /workers/{workerId}
  • PATCH /workers/{workerId}
  • POST /workers/{workerId}/documents
  • PATCH /workers/{workerId}/documents/{documentId}

경계

이 이슈는 근로자 기본정보와 서류 메타데이터를 관리합니다. 공통 파일 업로드, 통합 문서함, 업무별 준비도와 요청 초안은 #13이 담당합니다. 먼저 메타데이터만으로 정상 동작하게 만들고, 파일은 fileId 참조로 연결합니다.

Activity

  1. added
    area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외
    priority:P0MVP 진행을 막는 최우선 핵심 작업
    security:privacy개인정보·접근권한·토큰·보안 영향이 있는 작업
    status:backlog해야 하지만 아직 시작 조건이 갖춰지지 않은 작업
    type:feature사용자 또는 Agent가 사용하는 기능 개발
    on Jul 21, 2026
  2. changed the title [-][Worker] 근로자·서류 상태 관리 API 구현[/-] [+][Worker] 근로자 기본정보·서류 메타데이터 API 구현[/+] on Jul 21, 2026
  3. added
    status:blocked선행 작업이나 외부 조건 때문에 현재 진행할 수 없는 작업
    and removed
    status:backlog해야 하지만 아직 시작 조건이 갖춰지지 않은 작업
    on Jul 21, 2026
  4. added
    status:in-progress담당자가 현재 구현 중인 작업
    and removed
    status:blocked선행 작업이나 외부 조건 때문에 현재 진행할 수 없는 작업
    on Jul 22, 2026
  5. hywznn commented on Jul 23, 2026

    @hywznn
    MemberAuthor

    #11·#6 연동을 위한 최소 Worker core 반영 안내

    PR #37에서 승인·Task가 참조할 수 있도록 Worker 기본 필드와 tenant-aware FK만 V3__create_worker_core.sql에 먼저 추가했습니다.

    작업 시 주의

    PR #37이 병합되면 적용된 V3 파일은 수정하지 않고, #5의 남은 Document/Sensitive schema는 다음 사용 가능한 Flyway version으로 추가해 주세요. Worker CRUD 구현은 현재 worker core table을 그대로 사용하면 됩니다.

    즉, #5를 완료 처리한 것이 아니라 #11·#6이 필요한 최소 선행 조각만 분리한 상태입니다.

  6. chaeliki commented on Jul 24, 2026

    @chaeliki
    Member

    2026-07-24 · #5 완료

    PR #40에서 5개 API(등록·조회·수정, 서류 등록·수정),
    PR #49에서 마지막 GET /workers(목록 조회)까지 완료되어
    #5가 소유한 6개 API가 모두 구현·통합 테스트되었습니다.

    WorkerSensitiveData(민감정보 분리 저장·접근 제어)는 #48로
    분리해 별도 진행합니다 (아래 "선행/후속 관계" 섹션에도 후속 작업으로 추가했습니다).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외priority:P0MVP 진행을 막는 최우선 핵심 작업security:privacy개인정보·접근권한·토큰·보안 영향이 있는 작업type:feature사용자 또는 Agent가 사용하는 기능 개발

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions