3. 근무 일정 관리하기

3. 근무 일정 관리하기

대상: 병원장, 병원 관리자, 직원


목적

조직에 소속된 직원들의 근무 일정, 연차 사용, 휴무일을 체계적으로 관리합니다. 스텝노트의 근무 관리는 계획 → 승인 → 운영 3단계 프로세스로 이루어집니다.

전체 프로세스 요약

단계담당설명
1단계계획직원다음 달 오프/연차 계획을 입력하고 제출
2단계계획관리자제출된 계획을 검토하고 확정 또는 반려
3단계직원별관리자확정된 일정을 조회하고, 필요 시 수정 모드로 변경

핵심 원칙: 확정된 일정을 수정할 때는 반드시 수정 사유를 입력해야 하며, 모든 변경 이력이 기록됩니다.


공통 기능: 직급 표시 토글

근무 일정을 보여주는 모든 화면(계획, 날짜별, 달력보기, 근무시간의 멤버별 요일 패턴)에는 부서 필터 옆에 "직급 표시" 체크박스가 있습니다.

  • 체크하면 직원 이름 위에 작게 직급이 함께 표시됩니다.
  • 직급은 멤버 관리 → 직원 정보 편집에서 부서와 함께 설정합니다.
  • 토글 상태는 조직별로 자동 저장되어 다음 방문 시에도 유지됩니다.

시니어 직원이 한 날에 몇 명 있는지 한눈에 파악할 때 유용합니다.


3.1 계획 — 직원이 계획 입력하기

사이드바에서 "계획" 탭을 클릭합니다.

계획 입력 방법

  1. 월 선택

    • 상단의 ← / → 버튼으로 계획할 달을 선택합니다
    • 일반적으로 다음 달의 계획을 미리 입력합니다
  2. 오프/연차 입력

    • 달력에서 날짜를 클릭하여 입력합니다
    • 오프: 해당 날짜에 오프 표시 (연차 차감 없음)
    • 연차: 해당 날짜에 연차 표시 (연차 일수 차감)
      • 오전만 선택 → 오전 반차 (0.5일)
      • 오후만 선택 → 오후 반차 (0.5일)
      • 오전+오후 모두 선택 → 종일 연차 (1.0일)
    • 입력하지 않은 날짜는 자동으로 근무일로 처리됩니다
  3. 메모 추가 (선택 사항)

    • 날짜 옆의 메모 아이콘을 클릭하면 최대 200자 메모를 남길 수 있습니다
    • 예: "가족 행사", "병원 예약" 등
  4. 자동 작성 기능

    • 상단의 자동 작성(지팡이 아이콘) 버튼을 클릭합니다
    • 사전에 설정된 개인 주간 근무 패턴을 기반으로 오전/오후 근무를 자동 입력합니다
    • 이미 입력된 연차는 보존됩니다
    • 야간 근무는 자동 작성되지 않으며, 수동으로 입력해야 합니다

계획 제출

  1. 계획 입력이 완료되면 "제출" 버튼을 클릭합니다
  2. 제출이 완료되면 상태가 "제출 완료"(파란색)로 변경됩니다
  3. 제출 후에는 내용을 수정할 수 없습니다

제출 취소

  • 관리자가 아직 확정하지 않은 경우, "제출 취소" 버튼으로 철회할 수 있습니다
  • 철회 후 계획을 수정한 뒤 다시 제출할 수 있습니다

계획 상태

상태색상설명
미제출회색아직 제출하지 않은 상태, 자유롭게 편집 가능
제출 완료파란색관리자에게 전달됨, 수정 불가
확정 완료초록색관리자가 승인하여 확정됨, 읽기 전용
반려됨빨간색관리자가 반려함, 사유 확인 후 수정하여 재제출

다른 직원 상황 보기 (직원 모드)

계획 탭 하단의 **"다른 직원 상황 보기"**를 펼치면 같은 조직 다른 직원들의 계획 현황을 볼 수 있습니다.

  • 기본은 접힌 상태입니다 — 체크박스가 본인 계획 입력에 영향을 준다고 오해하지 않도록, 명시적으로 펼쳐야 목록이 보입니다
  • 보기 전용이며, 여기서 다른 직원을 선택해도 본인 계획 입력에는 영향이 없습니다

직원 모드 — 다른 직원 상황 보기 펼침


3.2 계획 — 관리자가 승인하기

관리자는 "관리자 모드" 버튼을 클릭하여 전 직원의 제출 현황을 확인합니다.

계획 관리자 화면

화면 구성

  • 좌측 달력: 전 직원의 오프/연차 현황을 한눈에 볼 수 있습니다
  • 우측 직원 목록: 자동 채움 직원 / 명시 입력 직원 두 섹션으로 분리되어 표시됩니다
    • 분류 기준은 자동 채움 모드 (auto_schedule_mode)입니다 — 무계정/일반 여부가 아니라 "확정 시 어떻게 채워지는가"가 기준
    • 각 섹션 헤더에 인원 수와 확정 시 동작에 대한 안내 문구가 표시됩니다
    • 무계정 직원은 행마다 회색 "무계정" 뱃지가 표시되어 한눈에 구분됩니다 (모드와 별개)
  • 상단: 진행 상황 요약 (확정 N / 제출 N / 반려 N / 미제출 N)
  • 부서 필터: 체크박스로 특정 부서만 필터링할 수 있습니다
  • 직급 표시 토글: 부서 필터 옆에 위치 — 체크하면 이름 위에 직급이 표시됩니다
  • 직원 행 배지: 이름 옆에 상태 배지가 표시됩니다. 확정된 직원은 "확정 N일"(실제 확정된 날짜 수)로 표시되고, 아직 확정 전이면 제출 상태(미입력/희망 입력/제출 완료/반려됨)가 표시됩니다
    • 확정된 날짜 중에서도 계획에는 있지만 아직 확정되지 않은 날짜가 남아 있으면, "확정 N일" 옆에 주황색 "미확정 N일" 배지가 추가로 붙습니다 — "확정했는데 다 안 된 것 같다"는 오해를 막기 위한 표시입니다
  • 직원 행 버튼: 각 행 하단에 계획 삭제 / 확정 취소 버튼과, 미확정 날짜가 남아있을 때만 보이는 확정 버튼이 있습니다 (확정 취소는 확정된 날짜가 있을 때만 보입니다). 이미 일부를 확정한 직원의 남은 날짜를 마저 확정할 때는 버튼 라벨이 **"추가 확정"**으로 바뀝니다. 미확정 날짜가 0이 되면(모두 확정 완료) 확정 버튼 자체가 사라집니다
  • 좌측 달력의 미확정 배지: 확정 작업이 한 번이라도 시작된 달에는, 달력 각 날짜 아래 그 날짜가 아직 미확정인 인원 수가 "미확정 N" 배지로 표시됩니다

계획 화면 - 직급 표시 ON

자동 채움 / 명시 입력의 확정 동작 차이

구분자동 채움 직원명시 입력 직원
평일 근무 자동 채움있음 — 패턴대로 자동 입력없음
입력한 오프·연차반영반영
미입력 날짜패턴 근무로 채움빈칸 유지

일반 직원은 항상 자동 채움입니다. 무계정 직원은 기본 명시 입력이지만 사용자 정보 편집 모달에서 자동 채움으로 바꿀 수 있습니다 (자세한 내용은 2.6 참고).

→ 두 그룹을 한 번에 확정해도 확정 결과는 다릅니다. 명시 입력 직원의 빈 스케줄을 막으려면, 사전에 "하루 근무" 등 명시 입력으로 근무일을 지정해 두어야 합니다.

개별 승인/반려

  1. 직원명 클릭 → 해당 직원의 계획 상세 보기
  2. "확정하기" 버튼 → 계획 확정 (상태: 확정 완료)
  3. "반려하기" 버튼 → 반려 사유를 선택하고 참고사항을 입력한 뒤 반려

반려 사유 예시:

  • 일정 조율 필요
  • 오프 일수 초과
  • 패턴 기준 불일치
  • 기타 (직접 입력)

단건 확정 — 명시 입력 모드 카운트 미리보기

명시 입력 모드 직원을 단건 확정하면, 명시 입력한 근무·오프·연차 일수가 다이얼로그에 미리 표시됩니다.

  • 명시 입력이 0건이면 ⚠️ 경고가 표시됩니다 — 그대로 확정하면 해당 직원의 스케줄은 비어 있게 됩니다
  • 자동 채움 모드 직원은 미리보기 없이 "평일 자동 채움" 안내만 표시됩니다

선택 일괄 확정 — 그룹별 미리보기

체크박스로 여러 직원을 선택하고 "선택 확정" 을 누르면, 다이얼로그에서 선택된 직원이 다시 자동 채움 직원 / 명시 입력 직원 두 섹션으로 분리되어 미리 표시됩니다.

  • 자동 채움 직원 섹션: 이름 뱃지로 표시 (무계정이면 옆에 회색 무계정 뱃지)
  • 명시 입력 직원 섹션: 멤버별 근무 N · 오프 N · 연차 N 카운트가 표시되며, 명시 0건 멤버는 amber 배경 + ⚠️ AlertTriangle로 강조됩니다
  • 하단에 "N명은 명시 입력이 0건입니다" 합계 경고가 함께 표시됩니다

→ 일괄 확정 전에 누가 빈 스케줄로 확정될지 한눈에 확인할 수 있습니다.

전체 일괄 확정

  • "제출 완료 N건 전체 확정" 버튼으로 현재 제출된 모든 계획을 한 번에 확정할 수 있습니다
  • 확정된 계획은 직원별 탭에 자동으로 반영됩니다

확정 다이얼로그 — 기간 지정 (선택)

개별 확정·선택 확정 다이얼로그에는 "기간 지정" 버튼이 있습니다.

  • 기본은 접힌 상태이며, 이 경우 이번 달 전체가 확정됩니다
  • **"기간 지정"**을 펼치면 달력이 나타나 원하는 기간만 골라 확정할 수 있습니다 (예: 이번 주까지만 먼저 확정)
  • 기간을 나눠 확정해도 직원 현황 배지에는 실제 확정된 날짜 수가 **"확정 N일"**로 표시됩니다

계획 확정 — 기간 지정 펼침

확정 취소 — 기간을 골라 취소하기

확정된 스케줄도 관리자가 원하는 기간만 골라 취소할 수 있습니다. 과거 날짜도 취소 대상으로 선택할 수 있습니다.

  1. 확정된 직원의 "확정 취소" 버튼을 클릭합니다 (여러 명을 선택한 뒤 **"선택 확정 취소"**도 가능 — 하단 "확정 전체" 체크박스로 확정된 직원만 한 번에 선택할 수 있습니다)
  2. 확정 취소 다이얼로그가 열리고, 달력에 취소 가능한 확정 날짜가 굵게 표시됩니다
  3. 달력에서 시작일을 클릭하면 자동으로 그 달 말일까지 선택됩니다. 이후 다른 날짜를 클릭하면 종료일로 좁혀집니다
    • "월말까지" / "끝까지(전체)" 칩으로 범위를 빠르게 선택할 수 있습니다
  4. 계획도 함께 지우려면 "계획도 함께 삭제" 체크박스를 켭니다 — 켜면 재확정 시 계획을 다시 입력해야 합니다
  5. "확정 취소" 버튼을 클릭하면 선택한 기간의 확정 스케줄이 삭제됩니다

이미 기록된 근태(출근·결근)는 삭제되지 않습니다. 확정 취소는 예정된 근무만 취소합니다. 과거 날짜를 선택하면 ⚠️ 경고가 표시됩니다 — 지난 근무를 취소하면 출근일·미출근 통계가 바뀔 수 있습니다.

확정 취소 — 기간 지정 달력

계획 삭제 — 멤버가 입력한 계획을 일괄 삭제하기

멤버가 입력한 계획(오프·연차·근무 입력)을 관리자가 기간을 지정해 일괄 삭제할 수 있습니다. 계획 자체를 지우는 기능이므로, 확정 여부와 무관하게 언제든 사용할 수 있습니다.

  1. 직원 목록에서 "계획 삭제" 버튼을 클릭합니다 (여러 명 선택 후 **"선택 계획 삭제"**도 가능)
  2. 달력에서 삭제할 기간을 선택합니다 (조작 방법은 확정 취소와 동일)
  3. "계획 삭제" 버튼을 클릭하면 선택한 기간의 계획이 삭제됩니다
  4. 삭제 후 그 달에 남은 계획이 없으면 해당 멤버의 상태가 자동으로 **"미입력"**으로 되돌아갑니다

확정된 날짜의 계획은 삭제되지 않습니다. 먼저 위의 확정 취소로 해당 날짜의 확정을 취소해야 계획도 삭제할 수 있습니다.

계획 삭제 — 기간 지정 달력


3.3 직원별 — 확정된 일정 조회하기

사이드바에서 "직원별" 탭을 클릭합니다.

직원별 화면 - 읽기 전용

화면 구성

  • 좌측: 직원 목록 (부서별 색상 구분, 연차 잔여일수 표시)
  • 중앙: 월별 일정 그리드
    • 각 직원 × 날짜별로 오전/오후/야간 3칸으로 나뉩니다
    • 파란색: 근무 / 초록색: 연차 / 주황색: 오프 / 회색: 미설정
    • 색상은 조직 디자인 시스템(시맨틱 토큰)을 따르며, 다크 모드에서도 동일한 의미가 유지됩니다
  • 상단: 월 이동 (← →), 부서 필터, 정렬 옵션
  • 범례: 우측 상단에 색상별 의미 표시

기본 상태는 읽기 전용

  • 직원별 탭은 기본적으로 읽기 전용입니다
  • 셀을 클릭해도 아무 반응이 없습니다
  • 확정된 일정을 실수로 변경하는 것을 방지합니다

날짜 셀 휴일 표시

  • 날짜 셀 아래에 휴일 이름이 빨간색으로 작게 표시됩니다 (예: 20(월) 아래 설날)
  • 휴일 지정은 근무시간 탭 → 날짜별 예외에서 설정합니다 (날짜 셀 클릭으로는 더 이상 지정되지 않습니다)

3.4 직원별 — 수정 모드로 일정 변경하기

확정된 일정을 변경해야 하는 경우, 관리자만 수정 모드를 활성화할 수 있습니다.

수정 모드 활성화

  1. 상단의 "수정 모드" 버튼을 클릭합니다
  2. 버튼이 "수정 모드 ON"(주황색)으로 변경됩니다
  3. 경고 배너가 표시됩니다: "수정 모드 — 변경사항은 사유와 함께 기록됩니다"
  4. 입력 모드 선택 버튼이 나타납니다: 근무 / 연차 / 오프

일정 수정 방법

  1. 입력 모드 선택 — 근무, 연차, 오프 중 하나를 선택합니다
  2. 셀 클릭 — 변경할 직원의 날짜/시간대 셀을 클릭합니다
  3. 수정 사유 입력 — 다이얼로그가 나타납니다:
    • 대상자: 변경 대상 직원명
    • 날짜: 변경 대상 날짜
    • 변경 내용: 생성/삭제 요약
    • 수정 사유 (필수, 2자 이상): 변경 이유를 입력합니다
  4. "확인" 버튼 클릭 → 변경이 반영되고 이력에 기록됩니다

사유를 입력하지 않으면 확인 버튼이 비활성화되어 수정할 수 없습니다.

일괄 작업

여러 셀을 한번에 변경할 수도 있습니다:

  1. 직원명 옆의 체크박스를 선택하여 대상 직원을 지정합니다
  2. 상단의 "작업" 버튼을 클릭합니다
  3. 작업 유형을 선택합니다:
    • 일괄 근무넣기: 선택한 직원에게 근무를 일괄 입력
    • 일괄 삭제: 선택한 직원의 일정을 일괄 삭제
  4. 일괄 작업 시에도 수정 사유 입력이 필수입니다

수정 모드 종료

  • "수정 모드 ON" 버튼을 다시 클릭하면 읽기 전용으로 돌아갑니다

3.5 수정 이력 확인하기

일정이 언제, 누가, 왜 변경되었는지 추적할 수 있습니다.

이력 열기

  1. 상단의 "수정 이력" 버튼을 클릭합니다
  2. 우측에서 일정 수정 이력 패널이 슬라이드로 열립니다

이력 정보

각 이력 항목에 표시되는 정보:

항목설명
수정 유형생성(초록), 수정(파란), 삭제(빨간) 배지로 표시
대상자일정이 변경된 직원명
일정 날짜변경된 일정의 날짜
변경 내용이전 값 → 새 값 비교
사유수정 시 입력한 사유
수정자변경을 수행한 관리자명
수정 시간변경된 시간

3.6 입력 규칙

근무 시간대별 설명

시간대아이콘일반적인 시간비고
오전☀️09:00 - 13:00오전 진료
오후🌅14:00 - 18:00오후 진료
야간🌙18:00 - 22:00야간 진료

참고: 실제 근무 시간은 조직 설정에서 변경 가능합니다.

조직 설정 - 비즈니스 타임 확인

연차 차감 규칙

입력 유형차감 일수비고
오전 반차0.5일오전만 휴가
오후 반차0.5일오후만 휴가
종일 연차1.0일하루 전체 휴가
  • 연차 입력 시 잔여 연차가 자동으로 차감됩니다
  • 잔여 연차가 부족하면 경고 메시지가 표시되어 입력할 수 없습니다

오프와 연차의 차이

구분오프연차
연차 차감없음있음
성격단순 휴무일유급 휴가
사용 예시주말, 공휴일, 정기 휴무개인 휴가, 병가

중복 입력 방지

  • 같은 날짜/시간대에 근무와 연차를 동시에 입력할 수 없습니다
  • 다른 유형의 일정으로 변경하면 기존 입력이 자동으로 교체됩니다

3.7 근무 시간 조정 — 신청 · 승인 · 알림

추가 근무(야근) 또는 단축 근무를 기록하는 기능입니다. 직원이 직접 신청하고 관리자가 승인하는 승인 워크플로우가 적용됩니다. 모든 신청·승인·반려 시점에 푸시 알림 + 알림톡(또는 SMS) 이 자동으로 발송됩니다.

전체 프로세스 요약

단계담당화면결과
1단계 — 신청직원내일정 탭의 [조정 신청]본인 행에 "대기 중" 뱃지 표시, 관리자 전원에게 알림
2단계 — 검토관리자직원별 탭의 "근무 조정" 섹션, 대기 중 탭승인 또는 반려 처리
3단계 — 알림시스템푸시 + 알림톡/SMS신청자에게 결과 통지

관리자가 직접 입력하는 경우: 관리자가 "근무 조정 추가" 버튼으로 입력한 조정은 즉시 확정 상태로 저장됩니다(승인 단계 없음). 본 섹션의 승인 플로우는 직원이 [조정 신청] 으로 제출한 건에만 적용됩니다.


3.7.1 직원: 조정 신청하기

직원은 자신의 일정에 대해서만 조정을 신청할 수 있습니다.

  1. 내일정 탭 열기

    • 사이드바에서 "내일정" 또는 직원 본인의 일정 화면으로 이동합니다.
  2. 신청 폼 열기

    • "근무 조정" 섹션 상단의 [+ 조정 신청] 버튼을 클릭합니다.
    • 신청 폼이 펼쳐집니다. 본인 명의로만 신청되므로 직원 선택 드롭다운은 표시되지 않습니다.
  3. 조정 정보 입력

    항목설명
    날짜조정할 날짜 (현재 보고 있는 월 안에서만 선택 가능)
    시간(분)1~600분 (1분 단위)
    조정 유형연장근무 / 축소근무
    메모사유(선택 — 권장) — 예: "응급 환자 대응"
  4. [생성] 클릭

    • 신청이 즉시 제출됩니다.
    • 본인 행에 회색 "대기 중" 뱃지가 표시됩니다.
    • 같은 순간 관리자 전원에게 알림이 발송됩니다(아래 3.7.4 참고).
  5. 상태 변화

    • 관리자가 승인 하면 → 뱃지가 사라지고 정식 조정으로 반영됩니다.
    • 관리자가 반려 하면 → 빨간 "반려됨" 뱃지로 변경됩니다.

신청 후 본인이 직접 취소하려면 대기 중 상태에서 행을 삭제할 수 있습니다. 승인된 후에는 관리자만 수정/삭제할 수 있습니다.


3.7.2 관리자: 조정 신청 검토 · 승인 · 반려

관리자(병원장 / 병원 관리자)는 직원별 탭의 "근무 조정" 섹션 또는 같은 섹션의 대기 중 탭에서 신청을 검토합니다.

화면 구성

  • 상태 필터 탭: 전체 / 대기 중 / 승인됨 / 반려됨 4개
  • 직원별로 묶기 체크박스: 기본 ON — 직원별로 행이 그룹핑되어 접혀 있습니다
  • 그룹 헤더를 클릭하면 해당 직원의 조정 내역이 펼쳐집니다
  • 대기 중 탭에서는 그룹핑이 자동으로 풀려 평면 테이블로 표시됩니다(승인할 항목을 빠르게 찾기 위함)

승인하기

  1. 대기 중 탭으로 전환합니다.
  2. 검토할 행에서 [승인] 버튼을 클릭합니다.
  3. 즉시 처리됩니다:
    • 행이 승인됨 탭으로 이동합니다
    • 신청자에게 자동 알림이 발송됩니다(아래 3.7.4)
    • 조정 내용이 해당 직원의 일정에 정식으로 반영됩니다

반려하기

  1. 대기 중 탭의 행에서 [반려] 버튼을 클릭합니다.
  2. 행이 반려됨 탭으로 이동합니다.
  3. 신청자에게 반려 알림이 발송됩니다.

관리자는 시스템 관리자(systemAdmin) / 병원장(owner) / 병원 관리자(admin) 권한을 가진 사용자입니다. 일반 직원에게는 [승인] / [반려] 버튼이 보이지 않습니다.

상태별 뱃지 색상

상태뱃지색상
대기 중"대기 중"회색
승인됨(뱃지 없음)— 정식 조정으로 표시
반려됨"반려됨"빨강

3.7.3 조정 예시

상황조정 유형시간메모
야근연장120분"응급 수술 지원"
조기 퇴근축소60분"개인 사유"
초과 근무연장180분"재고 정리"
점심 시간 단축축소30분"오전 진료 연장"

3.7.4 자동 알림 — 푸시 · 알림톡 · SMS

신청·승인·반려 각 시점에 시스템이 자동으로 알림을 발송합니다. 관리자가 별도로 메시지를 보낼 필요는 없습니다.

누구에게 가나요?

이벤트수신자발송 시점
신청 (submitted)조직의 병원장 + 병원 관리자 전원 (신청자 본인 제외)직원이 [생성] 클릭 즉시
승인 (approved)신청한 직원 1명관리자가 [승인] 클릭 즉시
반려 (rejected)신청한 직원 1명관리자가 [반려] 클릭 즉시

신청자 본인이 관리자(admin/owner) 라도 자기 신청에 대한 알림은 자기에게 가지 않습니다.

어떤 채널로 가나요?

알림은 두 갈래로 동시에 진행됩니다.

① 앱 푸시 (FCM) — 무조건 발송

  • 모바일 앱(iOS / Android)에 푸시 알림이 도착합니다
  • 푸시 토큰이 등록된 사용자에게만 가능 (모바일 앱 로그인 1회 이상 필요)
  • 푸시를 탭하면 해당 조정 화면으로 바로 이동합니다

② 메시지 채널 폴백 체인 — 푸시와 별개로 발송

  • 다음 순서로 시도하다가 첫 성공에서 멈춥니다:
    1. 알림톡 — 카카오 비즈메시지 (전화번호 등록 + 카카오 알림톡 동의 필요)
    2. 카카오톡 — 친구톡
    3. SMS — 전화번호로 문자
    4. 이메일 — 가입 이메일

즉, 푸시는 항상 가고, 추가로 알림톡/SMS/이메일 중 한 가지가 도달합니다.

알림 본문 예시

이벤트제목본문
신청근무 조정 신청김민수 님이 05월 13일 60분 연장 신청
승인근무 조정 승인됨05월 13일 60분 연장 신청이 승인되었습니다
반려근무 조정 반려됨05월 13일 60분 연장 신청이 반려되었습니다

알림이 안 오면?

  1. 모바일 앱 푸시 권한 확인 — 기기 설정 → 알림 → 스텝노트에서 알림이 허용되어 있는지
  2. 전화번호 등록 확인 — 멤버 관리에서 본인 또는 수신 대상자의 전화번호가 등록되어 있는지
  3. 이메일은 마지막 폴백 — 위 모두 안 되면 가입 이메일로 도착합니다 (스팸함도 확인)
  4. 재시도 정책 — 일시적 전송 실패는 시스템이 자동으로 최대 5회 재시도합니다 (30초 → 2분 → 10분 → 30분 → 1시간 간격)

알림은 신청 트랜잭션과 같은 시점에 큐(Queue) 에 등록되며, 별도의 발송 워커가 1분 주기로 처리합니다. 따라서 알림 도달까지 최대 1분 정도 지연이 있을 수 있습니다.

3.7.5 알림센터 — 헤더 벨 아이콘

푸시·알림톡·SMS 를 놓쳤거나, 푸시 권한이 꺼져 있어도 웹/앱 헤더 우측의 벨 아이콘 에서 받은 알림을 한눈에 확인할 수 있습니다.

어디에 있나요?

  • 데스크톱: 헤더 우측, 카카오톡 문의 버튼 옆
  • 모바일: 헤더 우측, QR 출퇴근 아이콘 옆

알림센터 벨 아이콘 — 안 읽은 알림이 있을 때 빨간 배지로 개수 표시

어떻게 동작하나요?

  1. 빨간 배지 — 안 읽은 알림 개수가 벨 아이콘 우측 상단에 표시됩니다 (99건 초과 시 99+).
  2. 실시간 갱신 — 새 알림이 도착하면 페이지 새로고침 없이 배지가 즉시 올라갑니다 (Supabase Realtime).
  3. 클릭 → 드롭다운 — 벨을 클릭하면 최근 30일치 알림 최대 50건이 최신순으로 표시됩니다.
  4. 열면 자동 읽음 — 드롭다운을 여는 순간 화면에 보이는 안 읽은 알림이 일괄 "읽음" 처리되고 배지가 0이 됩니다.
  5. 방금 읽은 표시 유지 — 드롭다운이 열려 있는 동안에는 "이번에 새로 본" 알림이 옅은 파란 배경 + 좌측 파란 바 + 우측 파란 점으로 강조 표시되어, 어떤 알림이 새로 도착한 것인지 시각적으로 구분할 수 있습니다.
  6. 항목 클릭 → 상세 화면 이동 — 알림을 클릭하면 해당 신청 건이 보이는 근무조정 탭 으로 자동 이동합니다.
  7. 모두 읽음 — 드롭다운 우측 상단의 [모두 읽음] 버튼으로 한 번에 읽음 처리할 수 있습니다.

알림센터 드롭다운 — 방금 읽은 알림은 옅은 파란 배경 + 좌측 파란 바 + 우측 파란 점으로 강조

푸시 알림과의 관계

항목푸시 알림알림센터 (벨)
발송 시점신청·승인·반려 즉시 (워커가 1분 주기 처리)신청·승인·반려와 동시에 즉시 적재
누구에게 가나요3.7.4 와 동일 (신청 → 관리자 전원, 승인·반려 → 신청자)푸시와 동일한 수신자
보관 기간기기 알림센터에 일시적 보관 (OS 정책)최근 30일 보관, 최대 50건 표시
권한 필요모바일 앱 푸시 권한 + 토큰 등록로그인만 되어 있으면 됨
읽음 처리별도 없음드롭다운 열면 자동

푸시를 받지 못해도 벨 아이콘에 들어오므로, 푸시 권한을 꺼 둔 사용자도 알림을 놓치지 않습니다.


3.8 근무시간 설정 탭

사이드바에서 "근무시간" 탭을 클릭하면, 병원 근무시간의 모든 설정을 한 곳에서 관리할 수 있습니다.

근무시간 탭

탭 구성

섹션설명
기본 근무시간병원의 오전·오후·야간 기본 시간대
요일별 근무시간월~일별로 기본값을 덮어쓸 수 있는 요일 패턴
멤버 패턴직원 개인의 요일별 고정 패턴 (멤버×요일 2차원 표로 한눈에 확인)
날짜별 예외특정 날짜에만 적용되는 휴일 / 병원 / 직원 커스텀

날짜별 예외 관리

특정 날짜에만 적용되는 예외를 휴일 · 병원 시간 변경 · 개인 커스텀 세 가지 유형으로 관리합니다.

날짜별 예외 — 리스트 보기

유형별 설명

유형배지 색용도
휴일빨강공휴일·병원 휴무 등 전체 휴무일
병원주황특정 날짜에만 적용되는 병원 전체 근무시간
직원파랑특정 직원의 특정 날짜 근무시간

필터와 보기 전환

  • 상단의 휴일 / 병원 / 직원 체크박스로 원하는 유형만 골라 볼 수 있습니다.
  • 리스트 / 달력 탭으로 보기 모드를 전환합니다.

날짜별 예외 — 달력 보기

  • 달력에서 각 일자에 표시되는 배지를 클릭하면 해당 예외의 편집 다이얼로그가 바로 열립니다.

예외 추가하기

상단의 + 휴일, + 병원, + 직원 버튼으로 각 유형의 예외를 새로 추가합니다.

  • + 휴일: 제목(예: "설 연휴"), 날짜, 설명(선택)을 입력합니다.
  • + 병원: 병원 전체에 적용될 근무시간(오전·오후·야간)을 지정합니다. 각 시간대에는 근무 없음 체크박스와 설명(선택) 입력이 있습니다.
  • + 직원: 대상 직원을 선택한 뒤 해당 직원의 그날 근무시간을 지정합니다. 설명(선택) 입력 가능.

근무시간 설정 다이얼로그

예외 수정 / 삭제

  • 리스트나 달력에서 항목을 클릭하면, 해당 유형에 맞는 편집 다이얼로그가 열립니다.
  • 휴일 · 병원 · 직원 편집 다이얼로그 각각에 삭제 버튼이 있어, 확인 대화상자를 거쳐 제거할 수 있습니다.

우선순위

근무시간은 다음 순서로 적용됩니다 (위가 우선):

  1. 개인 날짜별 — 특정 멤버의 특정 날짜 설정
  2. 병원 날짜별 — 병원 전체의 특정 날짜 설정
  3. 개인 요일별 — 멤버 패턴에서 설정한 개인 요일별 시간
  4. 병원 요일별 — 요일별 근무시간 섹션의 설정
  5. 병원 기본값 — 기본 근무시간 섹션의 값

참고: 개인 요일별 패턴이 있는 멤버는, 병원 날짜별 변경보다 개인 패턴이 우선합니다. 해당 멤버도 변경하려면 개인 날짜별로 별도 설정해 주세요.


멤버 패턴 테이블

멤버 패턴 섹션은 멤버 × 요일 2차원 표로 표시됩니다. 개인 설정 여부를 한눈에 파악할 수 있습니다.

표시의미
굵은 시간 (예: 10:00~15:00)해당 직원·요일에 커스텀 시간이 설정됨
빨간 뱃지 휴무해당 요일이 개인 휴무로 지정됨
회색 시간커스텀 없음 — 조직 기본값이 적용됨
  • 행(멤버)을 클릭하면 편집 다이얼로그가 열립니다 (관리자만)
  • "+ 멤버 패턴 추가" 버튼으로 아직 패턴이 없는 직원을 추가할 수 있습니다
  • 섹션 우측 상단의 "직급 표시" 체크박스를 켜면, 직원명 옆에 직급이 함께 표시되어 시니어/주니어를 한눈에 구분할 수 있습니다

멤버 패턴 — 직급 표시 ON


3.9 월간 근무 현황 조회 (날짜별)

월간 근무표 조회

  1. 사이드바에서 "날짜별" 탭을 클릭합니다

월간 근무 현황

  1. 표시 내용

    • 전체 직원의 월간 일정 한눈에 보기
    • 부서별 색상 구분
    • 근무/연차/오프 통계
  2. 필터 옵션

    • 부서별 필터
    • 특정 직원만 보기
    • 직급 표시 토글 — 체크하면 이름 위에 직급이 작게 표시됩니다

날짜별 — 직급 표시 ON

인쇄하기

헤더 우측의 프린터 아이콘 버튼을 클릭하면 인라인 인쇄 미리보기로 전환됩니다.

날짜별 — 인쇄 미리보기

  • 용지 크기: 가로×세로 mm 직접 입력
  • 페이지 모드:
    • 한 페이지로 축소: 전체를 한 장에 맞춰 자동 축소 (기본값)
    • 여러 페이지로 출력: 직원이 많으면 자동으로 다음 페이지로 분할
  • 미리보기 확인 후 "인쇄" 버튼 클릭
  • 미리보기를 닫으려면 "닫기" 버튼 클릭

3.10 달력보기 탭

사이드바에서 "달력보기" 탭을 클릭하면 월별 달력 형태로 근무 현황을 볼 수 있습니다.

서브탭: 한눈에 / 자세히

달력보기 탭에는 두 가지 서브탭이 있습니다.

서브탭설명
한눈에달력 형태로 근무 현황을 시각적으로 표시 (예전 "그래픽")
자세히날짜별로 오전·오후·야간 근무자 명단을 텍스트로 표시 (예전 "텍스트")

자세히 탭 특징:

  • 날짜별로 오전·오후·야간 시간대별 근무자 명단을 한눈에 확인
  • 부분 오프/연차 상태도 명확히 표기

선택한 서브탭은 자동으로 기억됩니다. 마지막으로 본 서브탭이 다음 방문 시에도 그대로 열립니다.

달력보기 — 자세히, 직급 표시 ON

달력보기 — 한눈에, 직급 표시 ON

화면 구성 (한눈에 탭)

  • 자체 월 네비게이션: ← → 버튼으로 달을 이동합니다
  • 부서 필터 동기화: 날짜별 탭과 부서 필터가 자동으로 연동됩니다
  • 직급 표시 토글: 부서 필터 옆에 위치 — 한눈에·자세히 양쪽에서 모두 적용됩니다
  • 범례: 근무(파란색) · 연차(초록색) · 오프(주황색) · 미설정(회색) · (야간) 야간 근무 요일 — 모바일에서는 접이식 범례로 표시되며, 인쇄 미리보기에도 동일하게 출력됩니다

야간 요일 헤더 표기

야간 근무가 설정된 요일은 달력 상단 요일 헤더에 (야간) 이 자동으로 표시됩니다.

예: 화 (야간) — 화요일이 야간 근무 요일인 경우

야간 근무 요일은 근무시간 탭 → 요일별 근무시간에서 설정합니다.

근무 필터

달력에 표시할 직원을 시간대 기준으로 필터링할 수 있습니다.

필터설명
근무있음 (전체)어떤 시간대든 근무가 있는 직원
오전오전 근무자만 표시
오후오후 근무자만 표시
야간야간 근무자만 표시
근무없음해당 날짜에 근무가 없는 직원 표시
  • 근무있음 체크박스 클릭 시 오전·오후·야간 하위 항목이 함께 켜지고 꺼집니다
  • 하위 항목을 일부만 선택하면 부모 체크박스가 일부 선택 상태(indeterminate)로 표시됩니다

달력 인쇄

  1. 우측 상단의 인쇄 아이콘 버튼을 클릭합니다

  2. 인라인 미리보기로 전환됩니다

    한눈에 탭 인쇄 옵션:

    • 용지 크기(가로×세로 mm) 조절
    • 한 페이지로 축소 / 여러 페이지로 출력 선택

    자세히 탭 인쇄 옵션:

    • 날짜 셀별 메모 영역 표시 여부 선택 가능
    • 글자 크기 조절 — 스테퍼 버튼으로 인쇄물 글자 크기를 단계별로 키우거나 줄일 수 있습니다
    • 주 단위 페이지 나눔 — 페이지가 날짜 칸 중간이 아닌 캘린더 주(월~토) 행 단위로 나뉘어, 한 주가 페이지 사이에서 잘리지 않습니다
    • 미리보기 폭이 A4 기준으로 표시되어 실제 인쇄 페이지 수와 일치합니다
    • 야간 근무가 있는 날은 날짜·요일 라벨에 (야간근무) 가 함께 표기됩니다
  3. "인쇄" 버튼을 클릭합니다


3.11 주의사항 및 팁

주의사항

  1. 연차 잔여 확인

    • 연차 입력 전 반드시 잔여 일수를 확인하세요
    • 부족한 경우 먼저 멤버 관리에서 연차를 부여해야 합니다
  2. 수정 모드 사용 시 주의

    • 확정된 일정 수정은 반드시 사유가 기록됩니다
    • 수정이 끝나면 수정 모드를 꺼서 실수를 방지하세요
    • 수정 이력은 삭제할 수 없으므로 신중하게 변경하세요
  3. 계획 제출 기한

    • 다음 달 계획은 가능한 월말까지 제출해 주세요
    • 관리자가 확정해야 직원별 탭에 반영됩니다

효율적인 사용 팁

  1. 자동 작성 활용

    • 주간 근무 패턴을 미리 설정하면 자동 작성으로 빠르게 입력 가능
    • 패턴 설정: 멤버 관리 → 직원 선택 → 주간 근무 패턴
  2. 관리자 일괄 확정

    • 모든 직원이 제출 완료하면 "전체 확정" 버튼으로 한 번에 처리
  3. 부서별 관리

    • 부서 필터를 활용하여 부서별로 일정을 확인하고 관리하세요
    • 한눈에 부서별 근무 현황을 파악할 수 있습니다
  4. 수정 이력 활용

    • 수정 이력을 통해 변경 사항을 투명하게 관리하세요
    • 분쟁 발생 시 수정 이력이 증빙 자료가 됩니다

3.12 근태·달력 UX 개선 안내 (2026-05 갱신)

근무 일정 관련 모든 화면(계획·직원별·날짜별·달력보기·근무시간 탭)이 조직 디자인 시스템(시맨틱 토큰)으로 정렬되었습니다.

  • 일관된 상태 색상: 근무 = 파랑 / 오프 = 주황 / 연차 = 초록 / 미설정 = 회색 표준이 계획·직원별·날짜별·달력보기·내 일정 등 모든 화면에 동일하게 적용됩니다. (2026-06 갱신 — 이전에 화면마다 달랐던 연차 색이 초록색으로 통일되었습니다)
  • 다크 모드 대응: 라이트/다크 테마 전환 시 모든 뱃지·셀·범례·토글 버튼이 같은 의미를 유지하면서 적절한 명도로 표시됩니다.
  • 포커스/호버 상태 통일: 입력 필드·체크박스·라디오·토글 버튼의 포커스 링이 조직 기본 컬러와 동일하게 표시되어 키보드 접근성이 개선되었습니다.
  • 인쇄 출력: 그래픽·텍스트 인쇄 미리보기의 범례, 카드, 뱃지가 동일한 시맨틱 색상을 사용하여 PDF 저장 시에도 일관된 인상을 제공합니다.

출퇴근 기록 탭 — 상태 시각 언어 (2026-05-29 갱신)

출퇴근 기록 화면의 상태 표시가 색 + 아이콘 + 텍스트 조합으로 개선되었습니다.

상태표시 방식
정상차분한 기본 텍스트 (예외만 강조하는 원칙)
지각↑ 화살표 아이콘 + 노란색 텍스트 + "지각 N분" 접근성 라벨
조퇴↓ 화살표 아이콘 + 노란색 텍스트
미기록기울임체 + 예정 시각 (09:00) 표시 — 결근(미기록)과 휴무를 명확히 구분
휴무·연차회색 — 해당 날짜에 근무 없음

추가된 기능:

  • 오늘 현황 스트립: 관리자 화면 상단에 오늘 출근 / 미출근 / 지각 인원이 숫자로 표시됩니다.
  • 범례 모바일 노출: 출퇴근 기록·달력보기 범례가 모바일 화면에서도 표시됩니다 (이전에는 데스크톱 전용).
  • 달력 야간 표기: 달력보기 탭 상단 요일 헤더에 야간 근무 요일이 (야간)으로 표시됩니다.

지각·조퇴는 색뿐 아니라 아이콘으로도 구분되므로 색약·흑백 환경에서도 식별할 수 있습니다.


3.13 모바일 가독성 개선 (2026-06 갱신)

모바일 화면에서 근무 일정을 보기 어렵다는 피드백을 반영하여 주요 화면의 모바일 레이아웃이 개선되었습니다.

내 일정 달력 (직원 모드)

  • 아이콘 전용 셀: 좁은 모바일 셀에서 글자가 잘리는 대신 시간대 아이콘(☀️ 오전 / 🌅 오후 / 🌙 야간)만 표시됩니다. 셀을 길게 누르거나 데스크톱에서는 텍스트 라벨이 함께 보입니다.
  • 상단 접이식 범례: 달력 위에 범례가 추가되어 색상(근무 / 오프 / 연차)과 시간대 아이콘의 의미를 바로 확인할 수 있습니다. 탭하여 접고 펼 수 있습니다.

관리자 달력 · 그 외 화면

  • 관리자 달력보기 → 한눈에 달력도 모바일에서 접이식 범례가 표시됩니다.
  • 출퇴근 기록·일정·통계·경영분석 입력·업무보드·메신저·예약·설정 화면의 모바일 레이아웃(글자 크기, 간격, 표 가로 스크롤)이 일괄 정비되었습니다.

연차 색 통일

이전에는 연차가 화면마다 다른 색(개인 달력 = 초록, 관리자 한눈에 달력 = 빨강, 날짜별 = 주황)으로 표시되었으나, 이제 모든 화면에서 초록색으로 통일되었습니다. 주황색은 항상 오프, 파란색은 항상 근무를 의미합니다.


3.14 통계 탭 — 근태 분석하기

대상: 병원장, 병원 관리자

사이드바에서 "통계" 탭을 클릭하면 조직의 근태 데이터를 다양한 각도로 분석할 수 있습니다.

공통 기간 필터 바

모든 통계 하위 탭 상단에는 기간 필터 바가 표시됩니다.

컨트롤설명
이번 달이번 달 1일 ~ 말일로 자동 설정
지난 달지난 달 전체 기간으로 자동 설정
올해1월 1일 ~ 12월 31일로 자동 설정
시작일 / 종료일원하는 날짜를 직접 입력
적용 버튼직접 입력한 날짜를 적용
  • 프리셋 버튼(이번 달/지난 달/올해)을 누르면 날짜 입력칸도 함께 동기화됩니다.
  • 현재 적용된 기간과 일치하는 프리셋 버튼은 진한 색으로 활성 표시됩니다.
  • 직접 날짜를 입력할 때는 시작일과 종료일을 모두 입력한 후 "적용" 버튼을 누르세요.

기간을 바꾸면 해당 탭의 데이터가 자동으로 다시 불러와집니다.


3.14.1 대시보드 탭

조직 전체의 근태 핵심 지표를 한눈에 확인합니다.

KPI 카드

카드설명
지각 일수선택 기간 내 전체 직원의 지각 발생 일수 합계
지각 시간전체 직원의 지각 시간(분) 합계
연장 근무전체 직원의 연장근무 시간 합계
주의 멤버지각·조퇴가 많은 직원 수

지각률 추이 차트

최근 6개월간 지각률 변화를 선 그래프로 보여줍니다. 특정 월에 지각이 몰렸는지, 개선되고 있는지 확인할 수 있습니다.

주의 멤버 테이블

지각 횟수가 많은 직원 목록이 표시됩니다. 직원 이름을 클릭하면 개인 근태 분석 탭으로 바로 이동합니다.


3.14.2 근태 요약 탭

선택 기간의 근태 현황을 사람별 또는 일자별로 요약합니다.

공통 필터

컨트롤설명
사람별 / 일자별보기 방식 전환
퇴직·비활성 제외 체크박스체크하면 퇴직자·비활성 직원은 집계에서 제외 (기본: 제외)
부서 필터특정 부서만 선택하여 조회

사람별 보기

직원 한 명씩 행으로 표시됩니다.

컬럼설명
이름직원명
지각 일수기간 내 지각 발생 일수
지각 시간기간 내 지각 시간 합계 (분)
연장 시간연장근무 시간 합계
단축 시간조퇴·단축근무 시간 합계
연차 부여기간 내 부여된 연차 일수
연차 사용기간 내 사용한 연차 일수
연차 잔여현재 잔여 연차
  • 컬럼 헤더를 클릭하면 해당 컬럼 기준으로 오름차순/내림차순 정렬됩니다.

일자별 보기

날짜를 행으로, 각 직원의 근태 상태(지각·연장·오프·연차)를 컬럼으로 표시합니다. 특정 날짜에 이슈가 몰렸는지 파악하기 좋습니다.


3.14.3 휴무 패턴 탭

직원들의 오프·연차 사용 패턴을 분석합니다.

보기 모드

설명
멤버별 비교직원별 오프·연차 사용 일수를 나란히 비교
요일별 분포요일별로 오프·연차가 얼마나 몰리는지 분포 표시
  • 기본 기간은 올해 전체로 설정됩니다.
  • 기간 필터 바로 원하는 기간을 자유롭게 변경할 수 있습니다.

3.14.4 개인 근태 분석 탭

직원 한 명씩 선택하여 월별·연도별 상세 근태 패턴을 분석합니다.

  • 대시보드 탭의 주의 멤버를 클릭하면 해당 직원이 자동 선택된 상태로 이동합니다.
  • 월별 지각 현황, 근무 시간 패턴, 연차 사용 추이를 개인별로 확인할 수 있습니다.

3.15 차트 프로그램 붙여넣기용 메모 (사이드바에 없음)

병원 자체 차트 프로그램(EMR)에 그날 출근자·휴무자를 매일 손으로 옮겨 적는 병원을 위한 기능입니다. 사이드바 메뉴에는 없고, 주소창에 URL을 직접 입력해야 열립니다: 스텝노트주소/organization/{조직ID}/chart-memo

  • 월 선택부서 선택·순서(드래그로 변경) 를 고르면, 날짜별로 그날 출근자(부서 순서대로 /로 구분)와 종일 휴무자 줄이 카드로 생성됩니다
  • 각 줄 옆의 복사 버튼으로 그 줄만 복사합니다 — 차트 프로그램에 붙여넣을 때 줄바꿈이 사라지는 문제 때문에 줄 단위로 따로 복사하도록 되어 있습니다
  • 부서 선택·순서는 이 기기에만 저장됩니다(서버 저장 없음)
  • 조직 멤버만 접근할 수 있어 URL을 안다고 다른 조직 데이터가 보이지는 않습니다

팁: 이 매뉴얼은 병원 관리 시스템을 처음 사용하시는 분들을 위한 가이드입니다. 각 단계를 천천히 따라하시면 쉽게 사용하실 수 있습니다.