Skip to content

연차 관리

  • 대상 사용자 : 인사 관리자
  • 화면의 목적 : 연차 항목을 설정하며, 각 직원의 남은 연차와 연차 규칙 설정을 위한 화면

연차 현황(탭)

1️⃣ 필터링

  • 연도
    • 옵션: 현재 연도 기준 최근 5개 연도 (예: 2026년 ~ 2022년)
    • 기본: 현재 연도
    • 동작: 선택 연도 말일({연도}-12-31) 기준으로 부여·사용·잔여를 산정
  • 소속
    • 멀티셀렉트 드롭다운
    • 기본: 전체 (미선택)
    • placeholder: 소속 선택
    • 선택한 팀 중 하나라도 소속된 직원만 표시
    • 비활성 팀은 목록에 노출하지 않음 (공통정책)
    • 선택 해제(X) 시 필터 초기화 후 목록 갱신
  • 검색
    • 위치: 필터 영역 오른쪽 (공통정책: 필터 왼쪽 · 버튼/검색 오른쪽)
    • placeholder: 사번 / 이름 / 이메일
    • 검색 결과 없음: 검색 결과가 없어요.
  • 조회 대상 직원
    • 재직 상태인 직원만 표시 2️⃣ 요약 통계
  • 필터 아래, 표 위에 고정 노출. 필터 결과에 따라 함께 갱신.
항목표시 예설명
대상 인원42명현재 필터 조건에 해당하는 직원 수
평균 사용7.2일대상 인원의 사용일수 평균 (소수 1자리)
평균 잔여7.8일대상 인원의 잔여일수 평균 (소수 1자리)
  • 대상 0명일 때: 0명 / 0일 / 0일

3️⃣ 리스트뷰

  • 레이아웃
    • 상단(사번, 이름, 소속, 입사일, 총 부여, 사용, 잔여, 사용률, 산정기준) 고정
    • 표 본문만 세로 스크롤
    • 페이지 하단에 페이지네이션 노출
  • 정렬
    • 기본: 성 → 이름 오름차순
사번이름소속입사일부여일수사용일수잔여일수사용률산정 기준
ADMIN003홍길동개발팀2024.03.01.15일8일7일████░░ 53%입사일 기준
  • 컬럼 정의
    • 사번: 없으면 -
    • 이름: 말줄임 + hover 시 전체 이름
    • 소속: 첫 번째 활성 팀명, 없으면 -
    • 입사일: YYYY.MM.DD. 형식
    • 부여일수: {n}일 — 선택 연도 기준 부여된 연차
    • 사용일수: {n}일 — 승인된 휴가 중 연차 차감 일수 합계
    • 잔여일수: {n}일 — 굵게 표시
    • 사용률: 프로그레스 바
    • 산정 기준: 배지
      • 입사일 기준 (hire_date)
      • 전환 기준 (transition)
      • 회계연도 기준 (fiscal_year)
  • 데이터가 없을 때
    • 문구 : 데이터가 없어요.

부여 기준(탭)

1️⃣ 상단 영역

  • [규칙 추가] 버튼 (오른쪽)
    • 공통정책으로 인해 오른쪽에 위치
    • 클릭 시 부여 기준 추가 모달 제공 (4️⃣ 참고) 2️⃣ 기본 규칙 등록 배너 안내 문구와 표 사이에 주황색 안내 박스로 노출.
구성내용
안내 문구근로기준법 제60조 기본 연차규칙을 일괄 등록해요. (입사 1년 미만 월별발생, 1~3년 15일, 3년 이상 근속가산)
버튼[기본 규칙 등록]
  • [기본 규칙 등록] 클릭 시 확인 팝업
    • title: 기본 연차규칙 등록
    • message: 근로기준법 기본 연차규칙을 등록할까요? (기존 규칙은 유지돼요)
    • 버튼
      • [취소], x 버튼: 팝업만 닫힘
      • [확인] 버튼 : 아래 12개 기본 규칙을 순서대로 등록 + 해당 팝업 닫힘
        • 기존 규칙은 삭제·덮어쓰지 않음
        • 동일 규칙이 이미 있으면 해당 건은 건너뜀

등록되는 기본 규칙 (12건)

#근속연수부여일수발생유형최대일수설명
10년 ~ 1년 미만11일월별 발생11일입사 1년 미만: 매월 1일 발생 (최대 11일)
21년 ~ 3년 미만15일연간 부여-1~3년: 연 15일
33년 ~ 5년 미만16일연간 부여-3~5년: 연 16일 (2년 초과 시 1일 가산)
45년 ~ 7년 미만17일연간 부여-5~7년: 연 17일
57년 ~ 9년 미만18일연간 부여-7~9년: 연 18일
69년 ~ 11년 미만19일연간 부여-9~11년: 연 19일
711년 ~ 13년 미만20일연간 부여-11~13년: 연 20일
813년 ~ 15년 미만21일연간 부여-13~15년: 연 21일
915년 ~ 17년 미만22일연간 부여-15~17년: 연 22일
1017년 ~ 19년 미만23일연간 부여-17~19년: 연 23일
1119년 ~ 21년 미만24일연간 부여-19~21년: 연 24일
1221년 이상25일연간 부여-21년 이상: 연 25일 (법정 최대)

3️⃣ 리스트뷰

#근속연수부여일수발생유형최대일수상태설명관리
10년 ~ 1년 미만11일월별 발생11일활성입사 1년 미만: 매월 1일 발생 (최대 11일)✏️ 🗑️
21년 ~ 3년 미만15일연간 부여-비활성1~3년: 연 15일✏️ 🗑️
  • 컬럼 정의
    • #: 목록 순번 (1부터)
    • 근속연수: {시작}년 ~ {끝}년 미만 / 끝 값 없으면 {시작}년 이상
    • 부여일수: {n}일 — 굵게, 주황색
    • 발생유형: 배지
      • 월별 발생: 노란 배지
      • 연간 부여: 청록 배지
    • 최대일수: {n}일 / 없으면 -
    • 설명: 말줄임, 없으면 -
    • 관리: 아이콘 버튼만 (공통정책)
      • [수정] 버튼
        • 수정 팝업 제공(4️⃣ 관리 버튼>③ 부여 기준 추가 / 수정 모달 참고)
      • [삭제] 버튼 (4️⃣ 관리 버튼>② [삭제] 버튼 과 동일)
    • 상태
      • 활성 : 부여기준으로 연차가 발생
      • 비활성 : 부여기준으로 연차 발생하지 않음
      • 상태 변경
        • 비활성 → 활성
          • 조건이 중복되는 부여기준의 경우, 먼저 적용된 규칙만 유지한다.
        • 활성 → 비활성
          • 이미 해당 조건으로 연차가 부여된 경우 연차 수를 변경하지 않는다.
  • 빈 목록일 때
    • 표 중앙: 등록된 연차 부여기준이 없어요. 부여 기준을 추가해 주세요. 4️⃣ 관리 버튼 ① [수정] 버튼
  • 클릭 시 부여 기준 수정 모달 (추가 모달과 동일 필드, 기존 값 채움)
  • title: 부여 기준 수정

② [삭제] 버튼

  • 부여 기준이 활성 상태일 때
    • title: 삭제
    • message: 부여 기준을 삭제할 수 없어요. 먼저 비활성 상태로 변경한 뒤 삭제할 수 있어요.
    • 버튼: [확인]
      • 팝업만 닫힘
  • 부여 기준이 상태 비활성 + 연결된 연차 부여 있음
    • title: 삭제
    • message: 이 유형을 부여한 연차가 있어요. 삭제하면 {부여 기준 이름} 기준으로 부여된 연차는 다시 계산돼요.
    • 버튼
    • [취소], [X]: 팝업만 닫힘
    • [확인] : 부여 기준 삭제 + 팝업 닫힘 + 적용되 기준 중 가장 오래된 것 적용
  • 부여 기준이 상태: 비활성 + 연결된 연차 내역 없음
    • title: 삭제
    • message: {부여 기준 이름} 연차 부여 기준을 삭제할까요?
    • 버튼
      • [취소], [X]: 팝업만 닫힘
      • [확인] : 부여 기준 삭제 · 팝업 닫힘 · 목록 갱신 + 휴가 규칙을 삭제했어요. 토스트

③ 부여 기준 추가 / 수정 모달

  • title
    • 추가: 부여 기준 추가
    • 수정: 부여 기준 수정
  • 모달 규칙: 배경 클릭으로 닫히지 않음 · [X] / [취소]로만 닫힘
  • 필수 값인 경우 필드 이름 옆에 * 표시
필드필수기본값 (추가 시)설명
이름O빈칸placeholder : 회계년도 연차 발생
근속연수 시작 (이상)O00 이상 정수
근속연수 끝 (미만)X빈칸빈칸 = 무제한 · placeholder: 무제한
부여일수O150 이상, 0.5 단위 입력 가능
발생유형O연간 부여드롭다운: 연간 부여 / 월별 발생
최대일수 (월별 발생 시 상한)X빈칸발생유형 = 월별 발생일 때만 노출 · placeholder: 제한 없음
설명X빈칸최대 200자 · placeholder: 예: 근로기준법 제60조 기준
상태O(단 필수 표시 하지 않음)활성옵션 : 활성, 비활성

상태 툴팁 (필드 옆 ⓘ · hover)

  • 추가 모달

    • 비활성 상태일 때 : 비활성 상태로 추가하면 규칙이 적용되지 않아요.
    • 활성 상태일 때 : 활성 상태로 추가하면 규칙이 바로 적용돼요. 다른 규칙이 적용된 경우 적용되지 않아요.
  • 수정 모달

    • 비활성 상태일 때 : 활성 상태로 변경하면 규칙이 바로 적용돼요. 다른 규칙이 적용된 경우 적용되지 않아요.
    • 활성 상태일 때 : 비활성 상태로 변경해도 이미 적용된 경우 변경되지 않아요.
  • 푸터 버튼

    • [취소], x 버튼: 저장 없이 모달만 닫힘
    • [저장]
      • 클릭 시 저장 · 모달 닫힘 · 목록 갱신
        • 추가된 목록의 경우 최상단에서 보이도록 수정
      • 추가: 휴가 규칙을 추가했어요. 토스트
      • 수정: 휴가 규칙을 수정했어요. 토스트

휴가 유형(탭)

1️⃣ 필터링(추가기능)

  • 상태
    • 옵션 : 전체, 활성, 비활성
    • 기본 : 전체

2️⃣ [휴가 추가] 버튼

  • 리스트 뷰 위쪽에 오른쪽에 위치함(공통정책)

  • 버튼을 누르면 '휴가 유형' 팝업 제공

  • 휴가 유형 추가 팝업

    • title : 휴가 유형
    • 이름
      • 입력란
      • 필수입력 표시 (*)
      • placeholder : 연차, 반차, 경조 휴가 등
    • 시간
      • 입력란
      • placeholder : 0
      • 단위 : 시간
        • 소수점 둘째자리까지 입력
    • 차감 일수
      • 입력란
      • placeholder : 0
      • 단위 : 일
      • 0.5 단위 입력 가능
      • 0이면 연차 잔여에서 차감하지 않음 (예: 경조 휴가)
    • 설명(추가)
      • 입력란
      • placeholder : 일반 휴가
    • 스케줄러 연동 체크 박스
      • 툴팁 : 체크하면 스케줄러에서 해당 휴가 유형을 사용할 수 있어요.
      • 체크박스 선택하면 해당 휴가 유형 스케줄러에서 선택할 수 있도록 제공됨
    • 코드
      • 필수입력 표시 (*)
      • 입력란
      • placeholder : D, E, N 등
    • 코드 라벨 색상
      • 새 휴가 유형 생성 시 사용 가능한 색상을 순차적으로 자동 선택
      • 표는 Hereby sign에서 가져온 값임
    #색상HEX
    1오렌지#F66014
    2연두#A3C75A
    3하늘#A0D3F9
    4핑크#F2C7E3
    5네이비#26426B
    6블루#2463EB
    7퍼플#826AED
    8레드#E63224
    9다크그린#0F6625
    10브라운#A2812D
    11옐로우#F09C00
    12#00A19D
    13테라코타#B55239
    14다크브라운#713838
    15그레이#B8B8B8
      - 사용자는 원하는 색상으로 변경 가능
      - 모든 색상을 사용한 경우 처음 색상부터 다시 순환하여 선택
      - 색상을 사용자가 선택할 수 있도록 진행
    
    • 상태
      • 드롭다운
      • 기본 : 활성
      • 옵션 : 활성, 비활성
        • 비활성인 경우 Works(mobile) 휴가 신청에서 해당 유형 보이지 않음
        • 기존 신청·승인·반려·취소 건의 유형·차감 일수는 변경하지 않음
    • 버튼
    • [취소], [X]: 저장 없이 팝업만 닫힘
    • [저장]
      • 활성화: 필수 항목 입력 후 활성화됨
      • 클릭: 저장 후 팝업 닫힘 · 목록 갱신 · 추가한 행은 목록 상단으로 이동 3️⃣ 리스트 뷰
이름설명코드시간차감 일수스케줄러 연동상태관리
연차일반 연차AL8시간1일사용활성✏️ 🗑️
반차일반 반차HD4시간0.5일사용활성✏️ 🗑️
경조 휴가경조사로 인해 사용하는 휴가, 사전 합의 필요EV8시간0일미사용활성✏️ 🗑️
  • 컬럼 정의
    • 이름 : 휴가 유형 이름 · 말줄임 + hover 시 전체 이름
    • 설명 : 없으면 - · 말줄임
    • 코드 : 등록된 코드 문자열 (예: AL, HD)
      • 배경색 : 등록된 HEX 색상 (코드 라벨 색상 팝업과 동일)
      • 글자색 : 배경 대비 가독성에 따라 자동(밝은 배경 → 진한 글자, 어두운 배경 → 밝은 글자)
    • 시간 : {n}시간 · 소수 둘째 자리까지 (예: 8시간, 4.00시간)
    • 차감 일수 : {n}일 · 0.5 단위 (예: 1일, 0.5일, 0일)
    • 스케줄러 연동 : 사용 / 미사용 배지
    • 상태 : 활성 / 비활성 배지
    • 관리 : 아이콘 버튼만 (공통정책)
      • [수정] · [삭제]
  • [수정] 버튼
    • 클릭하면 휴가 유형 수정 팝업 제공
    • title : 휴가 유형
    • 필드는 휴가 유형 추가 팝업과 동일
    • 활성 → 비활성 저장 시 확인 팝업
      • title : 휴가 유형 비활성화
      • message : 이 휴가 유형을 비활성화할까요? 비활성화하면 Works에서 새 휴가 신청 시 선택할 수 없어요. 이미 신청·승인된 휴가는 그대로 유지돼요.
      • [취소] : 팝업만 닫힘 · 상태 변경 없음
      • [확인] : 비활성 저장 · 팝업 닫힘 · 목록 갱신
  • [삭제] 버튼
    • 활성 상태일 때
      • title: 삭제
      • message: 휴가 유형을 삭제할 수 없어요. 먼저 비활성 상태로 변경한 뒤 삭제할 수 있어요.
      • 버튼: [확인] — 팝업만 닫힘
    • 상태 비활성 + 연결된 휴가 내역 있음
      • title: 삭제
      • message: 이 유형을 사용한 휴가 내역이 있어요. 삭제하면 해당 휴가 내역의 유형은 **삭제**로 표시돼요.
      • 버튼
        • [취소], [X]: 팝업만 닫힘
        • [확인] : 유형 삭제 + 팝업 닫힘 + 해당 유형 사용한 휴가 내역의 유형을 '삭제'로 표시
    • 상태: 비활성 + 연결된 휴가 내역 없음
      • title: 삭제
      • message: {이름} 휴가 유형을 삭제할까요?
      • 버튼
        • [취소], [X]: 팝업만 닫힘
        • [확인] : 유형 삭제 · 팝업 닫힘 · 목록 갱신
  • 빈 목록일 때
    • 표 중앙 : 등록된 휴가 유형이 없어요. 휴가 유형을 추가해 주세요.

연차/휴가 결재(탭)

1️⃣ 필터링

  • 상태
    • 옵션 : 전체, 대기, 승인, 반려, 취소
    • 기본 : 전체
  • 기간
    • 적용 기간(시작일~종료일) 기준 조회

2️⃣ 리스트뷰

사번이름유형적용기간차감 일수사유상태관리
ADMIN003홍길동연차2026.06.10. ~ 2026.06.12.3가족 행사대기[보기] 버튼
  • 컬럼
    • 사번 : 없으면 -
    • 이름
    • 유형 : 휴가 유형 탭에 등록된 이름 · 삭제된 유형은 삭제
    • 적용기간 : YYYY.MM.DD. ~ YYYY.MM.DD. · 시작일=종료일이면 하루
    • 사유 : 없으면 - · 말줄임
    • 상태 : 대기 / 승인 / 반려 / 취소
  • 빈 목록 : 휴가 신청 내역이 없어요.

3️⃣ [보기] 버튼

  • 휴가 상세 팝업 제공
    • ① 대기 상태일 때 '휴가 상세' 팝업
      • 휴가신청서
        • 직원 :
        • 유형 :
        • 적용 기간 : 2026.06.10. ~ 2026.06.12.
        • 차감 일수 :
          • 반차인 경우 0.5로 표시
          • 소수점 둘째자리까지 표시 가능
        • 사유 : {가족 행사} / 없으면 -
      • 푸터 버튼
        • [승인]
          • 사유 입력: 불필요
          • 동작
            • 상태 변경되고 모든 팝업 닫힘
            • 상태 : 대기 → 승인
            • 결재자, 결재 일시 기록
            • 연차 현황 사용일수·잔여일수 반영
        • [반려]
          • 반려 사유 입력 팝업 제공
            • title : 휴가 반려
            • 사유입력
              • 필수 표시 (*)
              • 입력란
              • placeholder : 반려사유를 입력해 주세요.
            • 버튼
              • [취소] : 휴가 반려 팝업만 닫힘
              • [확인] 버튼
                • 반려 사유를 입력해야 버튼 활성화됨
                • 버튼 클릭하면 반려로 변경되고 모든 팝업 닫힘
    • ② 반려 상태일 때 '휴가 상세' 팝업
      • 휴가 신청 내역과 반려 내역 제공
      • 휴가 신청 내역은 '휴가신청서'와 동일
      • 반려 내역
        • 결재자 :
        • 결재 일시 : 2026.06.11. 오후 02:30:00
        • 사유 :
      • 푸터 버튼
        • [확인] : 해당 팝업 닫힘
    • ③ 승인 상태일 때 '휴가 상세' 팝업
      • 휴가 신청 내역과 승인 내역 제공
      • 휴가 신청 내역은 '휴가신청서'와 동일
      • 승인 내역
        • 결재자 :
        • 결재 일시 : 2026.06.11. 오후 02:30:00
        • 사유 : - (승인 시 사유 없음)
      • 푸터 버튼
        • [확인] : 해당 팝업 닫힘
    • ④ 취소 상태일 때 '휴가 상세' 팝업
      • 휴가 신청 내역 제공 (휴가신청서와 동일)
      • 취소 내역
        • 처리자 : {성이름(사번)} 또는
        • 처리 일시 : 2026.06.11. 오후 03:00:00
        • 사유 :
      • 푸터 버튼
        • [확인] : 해당 팝업 닫힘

연차 사용촉진(annual-leave-promotion)

근로기준법 제61조 연차 사용촉진 워크플로는 이 화면과 별도로 구현돼 있어요. 상세 상태·프로시저는 연차 사용촉진 문서를 참고해 주세요. (요약: 관리자가 잔여 연차 보유 직원에게 메신저로 1차 안내 + hereby Sign 연차 사용계획서를 발송 → 기본 10일 내 미서명 시 자동 취소 → 2차 시기 지정.)

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

CODE가 진실이에요.

산정 기준 배지 「전환 기준(transition)」이 enum에 없음 [판단 필요]

  • 문서 기술: §연차 현황 3️⃣ 산정 기준 배지 3종 — 입사일 기준(hire_date)·전환 기준(transition)·회계연도 기준(fiscal_year)(off.md:57-59).
  • 실제 구현: LeaveAccrualBasis enum 은 FISCAL_YEAR("fiscal_year")·HIRE_DATE("hire_date") 2종뿐이에요(packages/core/src/enums/leave.enum.ts:42-45). transition 코드값은 없어요.
  • 격차: 「전환 기준」은 입사일→회계연도 이중 운영(입사일 기준 ~2026.12, 2027.01~ 회계연도)의 UI 표시 상태로 추정되나, 저장/필터에 쓰이는 실제 값이 무엇인지 코드상 불명확해요. 배지 값의 출처 확인이 필요해요.