Skip to content

직원 상태 정의

  1. 재직
    1. 정의 : 현재 근무 중인 상태
    2. 해당 계정으로 로그인 가은
  2. 비활성
    1. 정의 : 계정 생성 및 근로계약서가 작성되었지만, 실제 근무 시작 전 상태
    2. 해당 계정으로 로그인 불가능
  3. 휴직
    1. 정의 : 근무를 일시적으로 중단한 상태
    2. 해당 계정으로 로그인 불가능
  4. 퇴직
    1. 정의 : 근로관계가 종료된 상태
    2. 해당 계정으로 로그인 불가능
    3. 퇴직 후 해당 계정 삭제 가능
      1. 삭제 시 안내 필요

⚠️ 구현 현황 · 하드닝 후보 (2026-08-13)

CODE가 진실이에요.

"비활성/퇴직 상태만 삭제" 규칙이 서버에서 미강제 [기능 수정 후보]

  • 문서 기술: 삭제는 비활성(INACTIVE)/퇴직(TERMINATED) 상태에서만 허용하고, 재직/휴직 삭제는 차단(관리 화면 page.md [삭제], "휴직 또는 재직 상태에서는 직원을 삭제할 수 없어요").
  • 실제 구현: employee.delete(packages/api/src/routers/employee.router.ts:1089)는 존재 여부 + owner 보호만 확인한 뒤, 상태와 무관하게 soft-delete 하면서 status: TERMINATED 를 강제로 세팅해요(employee.router.ts:1118-1119). status ∈ {INACTIVE, TERMINATED} 가드가 없어요.
  • 영향: 삭제 상태 규칙이 UI 전용이에요. employee:delete 권한 보유자는 API 로 재직/휴직 직원도 삭제할 수 있고, 살아있는 직원이 조용히 TERMINATED + soft-delete 돼요.
  • 참고: 같은 라우터의 "Employee not found"(employee.router.ts:1103)는 영문 throw 메시지로 한글 해요체 규칙과 어긋나요.