Buyer problem
Orgmetra needs a jurisdiction-aware lifecycle for candidate and worker documents. “채용 개인정보”를 한 보관기간으로 묶으면 서로 다른 법적 목적과 DDD 소유권이 섞인다. 최소한 다음 네 흐름을 분리해야 한다.
- 불합격자/미채용자의 채용서류 반환·보관·파기
- 별도 목적의 인재풀 등록과 철회/만료
- 최종 합격자의 candidate → worker 전환 때 실제 입사·고용기록으로 승계할 자료
- 퇴직 후 법정 보존기간이 있는 근로자 명부·계약/고용 관련 기록과 그 기간 종료 후 파기
이 issue는 법률문구를 코드에 하드코딩하는 작업이 아니라, 법적 근거·목적·관할·기산점·보존/반환/파기 의무를 versioned policy로 표현하고 각 bounded context가 자기 truth만 소유하게 만드는 제품/도메인 작업이다.
Current Korean authority — verified 2026-09-11
채용절차법
채용절차의 공정화에 관한 법률은 원칙적으로 상시 30명 이상 사업/사업장의 채용절차에 적용하고(제3조), 제11조는 채용 확정 후 미채용자가 반환을 청구하면 본인확인 후 채용서류를 반환하도록 한다. 홈페이지/전자우편 제출 또는 구인자 요구 없이 자발적으로 제출한 경우에는 반환의무 예외가 있다. 반환 청구에 대비한 보관 후 청구기간이 지나거나 반환하지 않은 채용서류는 개인정보 보호법에 따라 파기해야 하며, 반환 관련 절차를 채용 확정 전에 알려야 한다.
시행령은 반환 청구를 받은 날부터 14일 이내 반환(제2조), 미청구 서류는 구인자가 정한 반환 청구기간까지 보관(제3조), 반환 청구기간은 채용 여부 확정일 이후 14일부터 180일까지 범위에서 정하고 확정 전에 고지(제4조)하도록 한다.
중요: 전자 제출이 “반환” 예외라는 사실을 보존기간 무제한 근거로 사용하지 않는다. 반환 workflow와 개인정보 보유/파기 workflow를 분리한다.
개인정보 보호법
2026-09-11 시행 법률 제21445호를 기준으로 한다. 제15조는 동의, 법령상 의무, 계약 체결 과정, 정당한 이익 등 법정 근거 안에서 수집·이용하도록 하고, 제18조는 목적 범위를 넘는 이용을 원칙적으로 제한한다. 제21조는 보유기간 경과·목적 달성 등 개인정보가 불필요해지면 지체 없이 파기하고, 다른 법령 때문에 보존해야 하는 경우에는 다른 개인정보와 분리 저장·관리하도록 한다.
인재풀은 원래 지원한 특정 채용의 심사와 별도 목적일 수 있으므로 “지원했으니 자동 등록”하지 않는다. 목적·법적근거(필요 시 별도 동의)·항목·보유기간·철회/삭제 효과를 versioned evidence로 남기고, 기간 만료/철회 후 다른 보존근거가 없으면 파기 대상으로 전환한다. 당초 목적과 합리적으로 관련된 이용 여부를 제품이 임의로 추정해 자동 재사용하지 않는다.
입사자·퇴직자 기록
근로기준법 제42조는 근로자 명부와 대통령령상 중요한 근로계약 관련 서류를 3년간 보존하도록 한다. 시행령 제22조는 근로계약서, 임금대장, 임금 결정·지급 및 계산 기초 서류, 고용·해고·퇴직, 승급·감급, 휴가 등 대상과 기산점을 구분한다. 2026년 고용노동부 노무관리 가이드도 법정 3년 보존자료는 개인정보라는 이유로 조기 파기해서는 안 되고, 법정기간 종료 뒤에는 개인정보보호법에 따른 파기 등 조치를 해야 한다고 설명한다.
“지원서 전체를 입사자 인사카드로 3년 보관” 같은 단순 규칙은 금지한다. 채용 evidence 가운데 실제 근로자 명부/고용·계약 기록으로 승계할 법적·업무상 근거가 있는 최소 데이터만 People 쪽으로 materialize하고, 나머지 candidate evidence는 원래 retention/disposition 정책을 따른다.
DDD ownership / Context Map
talent_acquisition — candidate/recruiting truth
- Candidate/Application/Requisition 및 채용 여부 확정 시점
CandidateDocumentDisposition 또는 동등 aggregate: 반환대상 여부, 반환 청구기간, 청구/발송/전달/파기 상태, jurisdiction/applicability policy reference
TalentPoolEnrollment: 별도 목적·법적근거/동의 버전·granted_at·expires_at·revoked_at·허용 항목/범위
- 최종 합격 시 candidate → worker conversion command와 승계 대상 classification
- 채용서류 반환 예외가 개인정보 파기 예외로 승격되지 않는 invariant
people_core — worker/employment truth
- confirmed-hire 이후 Worker/Employment 및 법정 인사기록 분류
- candidate evidence 전체를 복사하지 않고 승인된 최소 필드/문서 reference만 materialize
- 근로자 명부·고용/퇴직 등 statutory record category와 해당 보존정책 reference
- 퇴직/해고/사망 등 법정 보존 기산 사건의 authoritative employment event
document_records — artifact lifecycle owner
현행 ARCHITECTURE의 “canonical document/image artifact objects and their retention/export/delete lifecycle” 소유권을 유지한다. raw resume/certificate/document bytes를 다른 context DB로 복사하지 않는다.
- immutable artifact identity/hash/provenance
- hold/return/export/delete disposition 실행
retention_policy_version, retention_anchor_event, retain_until, legal_hold/equivalent controls
- 반환 완료 또는 파기 완료 receipt
- 파기 시 복구 불가능성 evidence와 backup/replica 처리 정책
talent_acquisition/people_core는 document lifecycle을 cross-service SQL로 조작하지 않고 released API/event/ACL로 disposition을 요청한다.
Audit / high-impact evidence
법정 감사 evidence는 raw PII를 영구 보존하는 우회로가 아니다. audit row에는 policy/version, actor, purpose, timestamps, artifact opaque reference/digest, disposition result 등 필요한 최소 증거만 남기고 raw 채용서류가 파기된 뒤 재구성할 수 없게 한다.
Required state/invariants
- applicability는 tenant/company size/jurisdiction/effective date를 입력으로 하는 versioned policy다. “한국이면 모두 14~180일” 같은 전역 상수 금지.
- 반환 청구기간 시작점은
hiring_decision_finalized_at; 임의 upload time 기준 금지.
- 채용절차법 반환대상/전자제출 예외와 PIPA retention/deletion decision을 별도 상태로 계산한다.
- 반환 요청이 들어오면 본인확인과 immutable request receipt 후 법정 SLA를 계산하며, 반환/전달 완료 전에는 파기하지 않는다.
- 기간 만료 시 legal hold 또는 별도 법적 보존근거가 없으면 delete disposition을 idempotent하게 발행한다.
- 인재풀 등록은 opt-in/별도 lawful-basis evidence 없이 자동 생성하지 않는다. 철회·만료가 실제 검색/추천 eligibility에서 즉시 제외되고 deletion workflow로 이어져야 한다.
- confirmed hire는 candidate document 전체를 Employee record로 재분류하지 않는다. field/document 단위 purpose transition과 최소 승계를 요구한다.
- 법정 보존 대상은 조기 deletion에서 fail closed하고, 법정기간 종료 뒤 별도 근거 없이 계속 보존하는 것도 fail closed한다.
- litigation/legal hold는 원래 retention을 덮어쓰는 명시적 별도 policy/evidence이며 hold 해제 후 재평가한다.
- immutable audit와 backup 때문에 “논리 삭제만 하고 영구 복구 가능” 상태가 생기지 않도록 cryptographic erasure/backup expiry 또는 동등 recovery-aware deletion semantics를 ADR에 명시한다.
Acceptance scenarios
- 미채용·종이 서류·반환 청구 없음: 적용대상 사업장, final decision 이후 tenant가 고지한 14~180일 범위 정책까지 보관 → 만료 후 PIPA 파기 receipt.
- 미채용·반환 청구: 본인확인된 request → 14일 SLA → 발송/전달 receipt → retained artifact disposition 종료.
- 전자 제출: physical-return workflow는 비대상이어도 채용 목적 종료 후 retention/legal-basis 평가와 파기는 계속 작동.
- 인재풀 opt-in: 특정 채용 종료 뒤에도 별도 versioned purpose/lawful-basis와 expiry가 있을 때만 검색 가능. 미동의/철회/만료자는 추천 query에서 제외되고 delete/review queue로 진입.
- 최종 합격: worker materialization은 승인된 최소 employment records만 People로 승계. 불필요한 portfolio/resume evidence는 candidate retention 정책에 남음.
- 퇴직자: 근로자 명부/근로계약/고용·퇴직 등 각 record category의 법정 기산점으로 3년 retention을 계산하고, 기간 중 삭제 요청은 법정 보존근거를 표시해 거절/제한; 만료 후 hold가 없으면 파기.
- 법령/정책 버전 변경: 새 policy는 새 사건에 적용하고, 기존 disposition은 effective-date/jurisdiction rule에 따라 재평가 여부를 명시적으로 결정. 과거 receipt를 rewrite하지 않음.
- 복구 테스트: 파기 완료 artifact가 normal DB뿐 아니라 search index/cache/export queue/restore rehearsal 경로에서 buyer-visible content로 되살아나지 않음을 검증.
Delivery / evidence
- ADR: candidate-document disposition + worker-record retention Context Map, 법적 근거와 기각 대안 포함
- PRD/TRD/DATA_MODEL/UML/SECURITY/THREAT_MODEL/OPERABILITY/TRACEABILITY current화
- DB는 policy/evidence/receipt를 3NF로 분리하고 aggregate transaction을 최소화; 장시간 외부 반환/삭제/LLM 연산 중 explicit DB lock 금지
- async disposition worker는 idempotency key/UPSERT, retry/compensation, outbox, dead-letter/recovery evidence를 갖춤
- KO/EN/JA/ZH/VI/ES/DE/FR UI가 생기면 반환 요청/인재풀 동의·철회/retention explanation의 normal/loading/empty/error/permission/a11y를 E2E 검증
- current-head PostgreSQL/E2E 및 purpose-bound authorization/RLS tests; tenant A candidate/document를 tenant B가 반환·보존·삭제할 수 없어야 함
- 법률 문구/기간은 코드 상수 하나로 숨기지 않고 source citation/effective date가 있는 versioned jurisdiction policy로 관리
이 issue는 법률자문을 제품 코드가 대체한다는 의미가 아니다. 다만 현재 법령에서 이미 명확한 반환·파기·법정 보존 구조는 executable policy/acceptance로 구현하고, 회사별 적용범위·legal hold·추가 산업규제처럼 사실관계/법률판단이 필요한 부분만 policy approval gate로 남긴다.
Buyer problem
Orgmetra needs a jurisdiction-aware lifecycle for candidate and worker documents. “채용 개인정보”를 한 보관기간으로 묶으면 서로 다른 법적 목적과 DDD 소유권이 섞인다. 최소한 다음 네 흐름을 분리해야 한다.
이 issue는 법률문구를 코드에 하드코딩하는 작업이 아니라, 법적 근거·목적·관할·기산점·보존/반환/파기 의무를 versioned policy로 표현하고 각 bounded context가 자기 truth만 소유하게 만드는 제품/도메인 작업이다.
Current Korean authority — verified 2026-09-11
채용절차법
채용절차의 공정화에 관한 법률은 원칙적으로 상시 30명 이상 사업/사업장의 채용절차에 적용하고(제3조), 제11조는 채용 확정 후 미채용자가 반환을 청구하면 본인확인 후 채용서류를 반환하도록 한다. 홈페이지/전자우편 제출 또는 구인자 요구 없이 자발적으로 제출한 경우에는 반환의무 예외가 있다. 반환 청구에 대비한 보관 후 청구기간이 지나거나 반환하지 않은 채용서류는 개인정보 보호법에 따라 파기해야 하며, 반환 관련 절차를 채용 확정 전에 알려야 한다.시행령은 반환 청구를 받은 날부터 14일 이내 반환(제2조), 미청구 서류는 구인자가 정한 반환 청구기간까지 보관(제3조), 반환 청구기간은 채용 여부 확정일 이후 14일부터 180일까지 범위에서 정하고 확정 전에 고지(제4조)하도록 한다.
중요: 전자 제출이 “반환” 예외라는 사실을 보존기간 무제한 근거로 사용하지 않는다. 반환 workflow와 개인정보 보유/파기 workflow를 분리한다.
개인정보 보호법
2026-09-11 시행 법률 제21445호를 기준으로 한다. 제15조는 동의, 법령상 의무, 계약 체결 과정, 정당한 이익 등 법정 근거 안에서 수집·이용하도록 하고, 제18조는 목적 범위를 넘는 이용을 원칙적으로 제한한다. 제21조는 보유기간 경과·목적 달성 등 개인정보가 불필요해지면 지체 없이 파기하고, 다른 법령 때문에 보존해야 하는 경우에는 다른 개인정보와 분리 저장·관리하도록 한다.
인재풀은 원래 지원한 특정 채용의 심사와 별도 목적일 수 있으므로 “지원했으니 자동 등록”하지 않는다. 목적·법적근거(필요 시 별도 동의)·항목·보유기간·철회/삭제 효과를 versioned evidence로 남기고, 기간 만료/철회 후 다른 보존근거가 없으면 파기 대상으로 전환한다. 당초 목적과 합리적으로 관련된 이용 여부를 제품이 임의로 추정해 자동 재사용하지 않는다.
입사자·퇴직자 기록
근로기준법 제42조는 근로자 명부와 대통령령상 중요한 근로계약 관련 서류를 3년간 보존하도록 한다. 시행령 제22조는 근로계약서, 임금대장, 임금 결정·지급 및 계산 기초 서류, 고용·해고·퇴직, 승급·감급, 휴가 등 대상과 기산점을 구분한다. 2026년 고용노동부 노무관리 가이드도 법정 3년 보존자료는 개인정보라는 이유로 조기 파기해서는 안 되고, 법정기간 종료 뒤에는 개인정보보호법에 따른 파기 등 조치를 해야 한다고 설명한다.
“지원서 전체를 입사자 인사카드로 3년 보관” 같은 단순 규칙은 금지한다. 채용 evidence 가운데 실제 근로자 명부/고용·계약 기록으로 승계할 법적·업무상 근거가 있는 최소 데이터만 People 쪽으로 materialize하고, 나머지 candidate evidence는 원래 retention/disposition 정책을 따른다.
DDD ownership / Context Map
talent_acquisition— candidate/recruiting truthCandidateDocumentDisposition또는 동등 aggregate: 반환대상 여부, 반환 청구기간, 청구/발송/전달/파기 상태, jurisdiction/applicability policy referenceTalentPoolEnrollment: 별도 목적·법적근거/동의 버전·granted_at·expires_at·revoked_at·허용 항목/범위people_core— worker/employment truthdocument_records— artifact lifecycle owner현행 ARCHITECTURE의 “canonical document/image artifact objects and their retention/export/delete lifecycle” 소유권을 유지한다. raw resume/certificate/document bytes를 다른 context DB로 복사하지 않는다.
retention_policy_version,retention_anchor_event,retain_until,legal_hold/equivalent controlstalent_acquisition/people_core는 document lifecycle을 cross-service SQL로 조작하지 않고 released API/event/ACL로 disposition을 요청한다.Audit / high-impact evidence
법정 감사 evidence는 raw PII를 영구 보존하는 우회로가 아니다. audit row에는 policy/version, actor, purpose, timestamps, artifact opaque reference/digest, disposition result 등 필요한 최소 증거만 남기고 raw 채용서류가 파기된 뒤 재구성할 수 없게 한다.
Required state/invariants
hiring_decision_finalized_at; 임의 upload time 기준 금지.Acceptance scenarios
Delivery / evidence
이 issue는 법률자문을 제품 코드가 대체한다는 의미가 아니다. 다만 현재 법령에서 이미 명확한 반환·파기·법정 보존 구조는 executable policy/acceptance로 구현하고, 회사별 적용범위·legal hold·추가 산업규제처럼 사실관계/법률판단이 필요한 부분만 policy approval gate로 남긴다.