3. 근무 일정 관리하기
3. 근무 일정 관리하기
대상: 병원장, 병원 관리자, 직원
목적
조직에 소속된 직원들의 근무 일정, 연차 사용, 휴무일을 체계적으로 관리합니다. 스텝노트의 근무 관리는 계획 → 승인 → 운영 3단계 프로세스로 이루어집니다.
전체 프로세스 요약
| 단계 | 탭 | 담당 | 설명 |
|---|---|---|---|
| 1단계 | 계획 | 직원 | 다음 달 오프/연차 계획을 입력하고 제출 |
| 2단계 | 계획 | 관리자 | 제출된 계획을 검토하고 확정 또는 반려 |
| 3단계 | 직원별 | 관리자 | 확정된 일정을 조회하고, 필요 시 수정 모드로 변경 |
핵심 원칙: 확정된 일정을 수정할 때는 반드시 수정 사유를 입력해야 하며, 모든 변경 이력이 기록됩니다.
공통 기능: 직급 표시 토글
근무 일정을 보여주는 모든 화면(계획, 날짜별, 달력보기, 근무시간의 멤버별 요일 패턴)에는 부서 필터 옆에 "직급 표시" 체크박스가 있습니다.
- 체크하면 직원 이름 위에 작게 직급이 함께 표시됩니다.
- 직급은 멤버 관리 → 직원 정보 편집에서 부서와 함께 설정합니다.
- 토글 상태는 조직별로 자동 저장되어 다음 방문 시에도 유지됩니다.
시니어 직원이 한 날에 몇 명 있는지 한눈에 파악할 때 유용합니다.
3.1 계획 — 직원이 계획 입력하기
사이드바에서 "계획" 탭을 클릭합니다.
계획 입력 방법
-
월 선택
- 상단의 ← / → 버튼으로 계획할 달을 선택합니다
- 일반적으로 다음 달의 계획을 미리 입력합니다
-
오프/연차 입력
- 달력에서 날짜를 클릭하여 입력합니다
- 오프: 해당 날짜에 오프 표시 (연차 차감 없음)
- 연차: 해당 날짜에 연차 표시 (연차 일수 차감)
- 오전만 선택 → 오전 반차 (0.5일)
- 오후만 선택 → 오후 반차 (0.5일)
- 오전+오후 모두 선택 → 종일 연차 (1.0일)
- 입력하지 않은 날짜는 자동으로 근무일로 처리됩니다
-
메모 추가 (선택 사항)
- 날짜 옆의 메모 아이콘을 클릭하면 최대 200자 메모를 남길 수 있습니다
- 예: "가족 행사", "병원 예약" 등
-
자동 작성 기능
- 상단의 자동 작성(지팡이 아이콘) 버튼을 클릭합니다
- 사전에 설정된 개인 주간 근무 패턴을 기반으로 오전/오후 근무를 자동 입력합니다
- 이미 입력된 연차는 보존됩니다
- 야간 근무는 자동 작성되지 않으며, 수동으로 입력해야 합니다
계획 제출
- 계획 입력이 완료되면 "제출" 버튼을 클릭합니다
- 제출이 완료되면 상태가 "제출 완료"(파란색)로 변경됩니다
- 제출 후에는 내용을 수정할 수 없습니다
제출 취소
- 관리자가 아직 확정하지 않은 경우, "제출 취소" 버튼으로 철회할 수 있습니다
- 철회 후 계획을 수정한 뒤 다시 제출할 수 있습니다
계획 상태
| 상태 | 색상 | 설명 |
|---|---|---|
| 미제출 | 회색 | 아직 제출하지 않은 상태, 자유롭게 편집 가능 |
| 제출 완료 | 파란색 | 관리자에게 전달됨, 수정 불가 |
| 확정 완료 | 초록색 | 관리자가 승인하여 확정됨, 읽기 전용 |
| 반려됨 | 빨간색 | 관리자가 반려함, 사유 확인 후 수정하여 재제출 |
다른 직원 상황 보기 (직원 모드)
계획 탭 하단의 **"다른 직원 상황 보기"**를 펼치면 같은 조직 다른 직원들의 계획 현황을 볼 수 있습니다.
- 기본은 접힌 상태입니다 — 체크박스가 본인 계획 입력에 영향을 준다고 오해하지 않도록, 명시적으로 펼쳐야 목록이 보입니다
- 보기 전용이며, 여기서 다른 직원을 선택해도 본인 계획 입력에는 영향이 없습니다

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

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

자동 채움 / 명시 입력의 확정 동작 차이
| 구분 | 자동 채움 직원 | 명시 입력 직원 |
|---|---|---|
| 평일 근무 자동 채움 | 있음 — 패턴대로 자동 입력 | 없음 |
| 입력한 오프·연차 | 반영 | 반영 |
| 미입력 날짜 | 패턴 근무로 채움 | 빈칸 유지 |
일반 직원은 항상 자동 채움입니다. 무계정 직원은 기본 명시 입력이지만 사용자 정보 편집 모달에서 자동 채움으로 바꿀 수 있습니다 (자세한 내용은 2.6 참고).
→ 두 그룹을 한 번에 확정해도 확정 결과는 다릅니다. 명시 입력 직원의 빈 스케줄을 막으려면, 사전에 "하루 근무" 등 명시 입력으로 근무일을 지정해 두어야 합니다.
개별 승인/반려
- 직원명 클릭 → 해당 직원의 계획 상세 보기
- "확정하기" 버튼 → 계획 확정 (상태: 확정 완료)
- "반려하기" 버튼 → 반려 사유를 선택하고 참고사항을 입력한 뒤 반려
반려 사유 예시:
- 일정 조율 필요
- 오프 일수 초과
- 패턴 기준 불일치
- 기타 (직접 입력)
단건 확정 — 명시 입력 모드 카운트 미리보기
명시 입력 모드 직원을 단건 확정하면, 명시 입력한 근무·오프·연차 일수가 다이얼로그에 미리 표시됩니다.
- 명시 입력이 0건이면 ⚠️ 경고가 표시됩니다 — 그대로 확정하면 해당 직원의 스케줄은 비어 있게 됩니다
- 자동 채움 모드 직원은 미리보기 없이 "평일 자동 채움" 안내만 표시됩니다
선택 일괄 확정 — 그룹별 미리보기
체크박스로 여러 직원을 선택하고 "선택 확정" 을 누르면, 다이얼로그에서 선택된 직원이 다시 자동 채움 직원 / 명시 입력 직원 두 섹션으로 분리되어 미리 표시됩니다.
- 자동 채움 직원 섹션: 이름 뱃지로 표시 (무계정이면 옆에 회색 무계정 뱃지)
- 명시 입력 직원 섹션: 멤버별 근무 N · 오프 N · 연차 N 카운트가 표시되며, 명시 0건 멤버는 amber 배경 + ⚠️ AlertTriangle로 강조됩니다
- 하단에 "N명은 명시 입력이 0건입니다" 합계 경고가 함께 표시됩니다
→ 일괄 확정 전에 누가 빈 스케줄로 확정될지 한눈에 확인할 수 있습니다.
전체 일괄 확정
- "제출 완료 N건 전체 확정" 버튼으로 현재 제출된 모든 계획을 한 번에 확정할 수 있습니다
- 확정된 계획은 직원별 탭에 자동으로 반영됩니다
확정 다이얼로그 — 기간 지정 (선택)
개별 확정·선택 확정 다이얼로그에는 "기간 지정" 버튼이 있습니다.
- 기본은 접힌 상태이며, 이 경우 이번 달 전체가 확정됩니다
- **"기간 지정"**을 펼치면 달력이 나타나 원하는 기간만 골라 확정할 수 있습니다 (예: 이번 주까지만 먼저 확정)
- 기간을 나눠 확정해도 직원 현황 배지에는 실제 확정된 날짜 수가 **"확정 N일"**로 표시됩니다

확정 취소 — 기간을 골라 취소하기
확정된 스케줄도 관리자가 원하는 기간만 골라 취소할 수 있습니다. 과거 날짜도 취소 대상으로 선택할 수 있습니다.
- 확정된 직원의 "확정 취소" 버튼을 클릭합니다 (여러 명을 선택한 뒤 **"선택 확정 취소"**도 가능 — 하단 "확정 전체" 체크박스로 확정된 직원만 한 번에 선택할 수 있습니다)
- 확정 취소 다이얼로그가 열리고, 달력에 취소 가능한 확정 날짜가 굵게 표시됩니다
- 달력에서 시작일을 클릭하면 자동으로 그 달 말일까지 선택됩니다. 이후 다른 날짜를 클릭하면 종료일로 좁혀집니다
- "월말까지" / "끝까지(전체)" 칩으로 범위를 빠르게 선택할 수 있습니다
- 계획도 함께 지우려면 "계획도 함께 삭제" 체크박스를 켭니다 — 켜면 재확정 시 계획을 다시 입력해야 합니다
- "확정 취소" 버튼을 클릭하면 선택한 기간의 확정 스케줄이 삭제됩니다
이미 기록된 근태(출근·결근)는 삭제되지 않습니다. 확정 취소는 예정된 근무만 취소합니다. 과거 날짜를 선택하면 ⚠️ 경고가 표시됩니다 — 지난 근무를 취소하면 출근일·미출근 통계가 바뀔 수 있습니다.

계획 삭제 — 멤버가 입력한 계획을 일괄 삭제하기
멤버가 입력한 계획(오프·연차·근무 입력)을 관리자가 기간을 지정해 일괄 삭제할 수 있습니다. 계획 자체를 지우는 기능이므로, 확정 여부와 무관하게 언제든 사용할 수 있습니다.
- 직원 목록에서 "계획 삭제" 버튼을 클릭합니다 (여러 명 선택 후 **"선택 계획 삭제"**도 가능)
- 달력에서 삭제할 기간을 선택합니다 (조작 방법은 확정 취소와 동일)
- "계획 삭제" 버튼을 클릭하면 선택한 기간의 계획이 삭제됩니다
- 삭제 후 그 달에 남은 계획이 없으면 해당 멤버의 상태가 자동으로 **"미입력"**으로 되돌아갑니다
확정된 날짜의 계획은 삭제되지 않습니다. 먼저 위의 확정 취소로 해당 날짜의 확정을 취소해야 계획도 삭제할 수 있습니다.

3.3 직원별 — 확정된 일정 조회하기
사이드바에서 "직원별" 탭을 클릭합니다.

화면 구성
- 좌측: 직원 목록 (부서별 색상 구분, 연차 잔여일수 표시)
- 중앙: 월별 일정 그리드
- 각 직원 × 날짜별로 오전/오후/야간 3칸으로 나뉩니다
- 파란색: 근무 / 초록색: 연차 / 주황색: 오프 / 회색: 미설정
- 색상은 조직 디자인 시스템(시맨틱 토큰)을 따르며, 다크 모드에서도 동일한 의미가 유지됩니다
- 상단: 월 이동 (← →), 부서 필터, 정렬 옵션
- 범례: 우측 상단에 색상별 의미 표시
기본 상태는 읽기 전용
- 직원별 탭은 기본적으로 읽기 전용입니다
- 셀을 클릭해도 아무 반응이 없습니다
- 확정된 일정을 실수로 변경하는 것을 방지합니다
날짜 셀 휴일 표시
- 날짜 셀 아래에 휴일 이름이 빨간색으로 작게 표시됩니다 (예:
20(월)아래설날) - 휴일 지정은 근무시간 탭 → 날짜별 예외에서 설정합니다 (날짜 셀 클릭으로는 더 이상 지정되지 않습니다)
3.4 직원별 — 수정 모드로 일정 변경하기
확정된 일정을 변경해야 하는 경우, 관리자만 수정 모드를 활성화할 수 있습니다.
수정 모드 활성화
- 상단의 "수정 모드" 버튼을 클릭합니다
- 버튼이 "수정 모드 ON"(주황색)으로 변경됩니다
- 경고 배너가 표시됩니다: "수정 모드 — 변경사항은 사유와 함께 기록됩니다"
- 입력 모드 선택 버튼이 나타납니다: 근무 / 연차 / 오프
일정 수정 방법
- 입력 모드 선택 — 근무, 연차, 오프 중 하나를 선택합니다
- 셀 클릭 — 변경할 직원의 날짜/시간대 셀을 클릭합니다
- 수정 사유 입력 — 다이얼로그가 나타납니다:
- 대상자: 변경 대상 직원명
- 날짜: 변경 대상 날짜
- 변경 내용: 생성/삭제 요약
- 수정 사유 (필수, 2자 이상): 변경 이유를 입력합니다
- "확인" 버튼 클릭 → 변경이 반영되고 이력에 기록됩니다
사유를 입력하지 않으면 확인 버튼이 비활성화되어 수정할 수 없습니다.
일괄 작업
여러 셀을 한번에 변경할 수도 있습니다:
- 직원명 옆의 체크박스를 선택하여 대상 직원을 지정합니다
- 상단의 "작업" 버튼을 클릭합니다
- 작업 유형을 선택합니다:
- 일괄 근무넣기: 선택한 직원에게 근무를 일괄 입력
- 일괄 삭제: 선택한 직원의 일정을 일괄 삭제
- 일괄 작업 시에도 수정 사유 입력이 필수입니다
수정 모드 종료
- "수정 모드 ON" 버튼을 다시 클릭하면 읽기 전용으로 돌아갑니다
3.5 수정 이력 확인하기
일정이 언제, 누가, 왜 변경되었는지 추적할 수 있습니다.
이력 열기
- 상단의 "수정 이력" 버튼을 클릭합니다
- 우측에서 일정 수정 이력 패널이 슬라이드로 열립니다
이력 정보
각 이력 항목에 표시되는 정보:
| 항목 | 설명 |
|---|---|
| 수정 유형 | 생성(초록), 수정(파란), 삭제(빨간) 배지로 표시 |
| 대상자 | 일정이 변경된 직원명 |
| 일정 날짜 | 변경된 일정의 날짜 |
| 변경 내용 | 이전 값 → 새 값 비교 |
| 사유 | 수정 시 입력한 사유 |
| 수정자 | 변경을 수행한 관리자명 |
| 수정 시간 | 변경된 시간 |
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~600분 (1분 단위) 조정 유형 연장근무 / 축소근무 메모 사유(선택 — 권장) — 예: "응급 환자 대응" -
[생성] 클릭
- 신청이 즉시 제출됩니다.
- 본인 행에 회색 "대기 중" 뱃지가 표시됩니다.
- 같은 순간 관리자 전원에게 알림이 발송됩니다(아래 3.7.4 참고).
-
상태 변화
- 관리자가 승인 하면 → 뱃지가 사라지고 정식 조정으로 반영됩니다.
- 관리자가 반려 하면 → 빨간 "반려됨" 뱃지로 변경됩니다.
신청 후 본인이 직접 취소하려면 대기 중 상태에서 행을 삭제할 수 있습니다. 승인된 후에는 관리자만 수정/삭제할 수 있습니다.
3.7.2 관리자: 조정 신청 검토 · 승인 · 반려
관리자(병원장 / 병원 관리자)는 직원별 탭의 "근무 조정" 섹션 또는 같은 섹션의 대기 중 탭에서 신청을 검토합니다.
화면 구성
- 상태 필터 탭: 전체 / 대기 중 / 승인됨 / 반려됨 4개
- 직원별로 묶기 체크박스: 기본 ON — 직원별로 행이 그룹핑되어 접혀 있습니다
- 그룹 헤더를 클릭하면 해당 직원의 조정 내역이 펼쳐집니다
- 대기 중 탭에서는 그룹핑이 자동으로 풀려 평면 테이블로 표시됩니다(승인할 항목을 빠르게 찾기 위함)
승인하기
- 대기 중 탭으로 전환합니다.
- 검토할 행에서 [승인] 버튼을 클릭합니다.
- 즉시 처리됩니다:
- 행이 승인됨 탭으로 이동합니다
- 신청자에게 자동 알림이 발송됩니다(아래 3.7.4)
- 조정 내용이 해당 직원의 일정에 정식으로 반영됩니다
반려하기
- 대기 중 탭의 행에서 [반려] 버튼을 클릭합니다.
- 행이 반려됨 탭으로 이동합니다.
- 신청자에게 반려 알림이 발송됩니다.
관리자는 시스템 관리자(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회 이상 필요)
- 푸시를 탭하면 해당 조정 화면으로 바로 이동합니다
② 메시지 채널 폴백 체인 — 푸시와 별개로 발송
- 다음 순서로 시도하다가 첫 성공에서 멈춥니다:
- 알림톡 — 카카오 비즈메시지 (전화번호 등록 + 카카오 알림톡 동의 필요)
- 카카오톡 — 친구톡
- SMS — 전화번호로 문자
- 이메일 — 가입 이메일
즉, 푸시는 항상 가고, 추가로 알림톡/SMS/이메일 중 한 가지가 도달합니다.
알림 본문 예시
| 이벤트 | 제목 | 본문 |
|---|---|---|
| 신청 | 근무 조정 신청 | 김민수 님이 05월 13일 60분 연장 신청 |
| 승인 | 근무 조정 승인됨 | 05월 13일 60분 연장 신청이 승인되었습니다 |
| 반려 | 근무 조정 반려됨 | 05월 13일 60분 연장 신청이 반려되었습니다 |
알림이 안 오면?
- 모바일 앱 푸시 권한 확인 — 기기 설정 → 알림 → 스텝노트에서 알림이 허용되어 있는지
- 전화번호 등록 확인 — 멤버 관리에서 본인 또는 수신 대상자의 전화번호가 등록되어 있는지
- 이메일은 마지막 폴백 — 위 모두 안 되면 가입 이메일로 도착합니다 (스팸함도 확인)
- 재시도 정책 — 일시적 전송 실패는 시스템이 자동으로 최대 5회 재시도합니다 (30초 → 2분 → 10분 → 30분 → 1시간 간격)
알림은 신청 트랜잭션과 같은 시점에 큐(Queue) 에 등록되며, 별도의 발송 워커가 1분 주기로 처리합니다. 따라서 알림 도달까지 최대 1분 정도 지연이 있을 수 있습니다.
3.7.5 알림센터 — 헤더 벨 아이콘
푸시·알림톡·SMS 를 놓쳤거나, 푸시 권한이 꺼져 있어도 웹/앱 헤더 우측의 벨 아이콘 에서 받은 알림을 한눈에 확인할 수 있습니다.
어디에 있나요?
- 데스크톱: 헤더 우측, 카카오톡 문의 버튼 옆
- 모바일: 헤더 우측, QR 출퇴근 아이콘 옆

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

푸시 알림과의 관계
| 항목 | 푸시 알림 | 알림센터 (벨) |
|---|---|---|
| 발송 시점 | 신청·승인·반려 즉시 (워커가 1분 주기 처리) | 신청·승인·반려와 동시에 즉시 적재 |
| 누구에게 가나요 | 위 3.7.4 와 동일 (신청 → 관리자 전원, 승인·반려 → 신청자) | 푸시와 동일한 수신자 |
| 보관 기간 | 기기 알림센터에 일시적 보관 (OS 정책) | 최근 30일 보관, 최대 50건 표시 |
| 권한 필요 | 모바일 앱 푸시 권한 + 토큰 등록 | 로그인만 되어 있으면 됨 |
| 읽음 처리 | 별도 없음 | 드롭다운 열면 자동 |
푸시를 받지 못해도 벨 아이콘에 들어오므로, 푸시 권한을 꺼 둔 사용자도 알림을 놓치지 않습니다.
3.8 근무시간 설정 탭
사이드바에서 "근무시간" 탭을 클릭하면, 병원 근무시간의 모든 설정을 한 곳에서 관리할 수 있습니다.

탭 구성
| 섹션 | 설명 |
|---|---|
| 기본 근무시간 | 병원의 오전·오후·야간 기본 시간대 |
| 요일별 근무시간 | 월~일별로 기본값을 덮어쓸 수 있는 요일 패턴 |
| 멤버 패턴 | 직원 개인의 요일별 고정 패턴 (멤버×요일 2차원 표로 한눈에 확인) |
| 날짜별 예외 | 특정 날짜에만 적용되는 휴일 / 병원 / 직원 커스텀 |
날짜별 예외 관리
특정 날짜에만 적용되는 예외를 휴일 · 병원 시간 변경 · 개인 커스텀 세 가지 유형으로 관리합니다.

유형별 설명
| 유형 | 배지 색 | 용도 |
|---|---|---|
| 휴일 | 빨강 | 공휴일·병원 휴무 등 전체 휴무일 |
| 병원 | 주황 | 특정 날짜에만 적용되는 병원 전체 근무시간 |
| 직원 | 파랑 | 특정 직원의 특정 날짜 근무시간 |
필터와 보기 전환
- 상단의 휴일 / 병원 / 직원 체크박스로 원하는 유형만 골라 볼 수 있습니다.
- 리스트 / 달력 탭으로 보기 모드를 전환합니다.

- 달력에서 각 일자에 표시되는 배지를 클릭하면 해당 예외의 편집 다이얼로그가 바로 열립니다.
예외 추가하기
상단의 + 휴일, + 병원, + 직원 버튼으로 각 유형의 예외를 새로 추가합니다.
- + 휴일: 제목(예: "설 연휴"), 날짜, 설명(선택)을 입력합니다.
- + 병원: 병원 전체에 적용될 근무시간(오전·오후·야간)을 지정합니다. 각 시간대에는 근무 없음 체크박스와 설명(선택) 입력이 있습니다.
- + 직원: 대상 직원을 선택한 뒤 해당 직원의 그날 근무시간을 지정합니다. 설명(선택) 입력 가능.

예외 수정 / 삭제
- 리스트나 달력에서 항목을 클릭하면, 해당 유형에 맞는 편집 다이얼로그가 열립니다.
- 휴일 · 병원 · 직원 편집 다이얼로그 각각에 삭제 버튼이 있어, 확인 대화상자를 거쳐 제거할 수 있습니다.
우선순위
근무시간은 다음 순서로 적용됩니다 (위가 우선):
- 개인 날짜별 — 특정 멤버의 특정 날짜 설정
- 병원 날짜별 — 병원 전체의 특정 날짜 설정
- 개인 요일별 — 멤버 패턴에서 설정한 개인 요일별 시간
- 병원 요일별 — 요일별 근무시간 섹션의 설정
- 병원 기본값 — 기본 근무시간 섹션의 값
참고: 개인 요일별 패턴이 있는 멤버는, 병원 날짜별 변경보다 개인 패턴이 우선합니다. 해당 멤버도 변경하려면 개인 날짜별로 별도 설정해 주세요.
멤버 패턴 테이블
멤버 패턴 섹션은 멤버 × 요일 2차원 표로 표시됩니다. 개인 설정 여부를 한눈에 파악할 수 있습니다.
| 표시 | 의미 |
|---|---|
굵은 시간 (예: 10:00~15:00) | 해당 직원·요일에 커스텀 시간이 설정됨 |
빨간 뱃지 휴무 | 해당 요일이 개인 휴무로 지정됨 |
| 회색 시간 | 커스텀 없음 — 조직 기본값이 적용됨 |
- 행(멤버)을 클릭하면 편집 다이얼로그가 열립니다 (관리자만)
- "+ 멤버 패턴 추가" 버튼으로 아직 패턴이 없는 직원을 추가할 수 있습니다
- 섹션 우측 상단의 "직급 표시" 체크박스를 켜면, 직원명 옆에 직급이 함께 표시되어 시니어/주니어를 한눈에 구분할 수 있습니다

3.9 월간 근무 현황 조회 (날짜별)
월간 근무표 조회
- 사이드바에서 "날짜별" 탭을 클릭합니다

-
표시 내용
- 전체 직원의 월간 일정 한눈에 보기
- 부서별 색상 구분
- 근무/연차/오프 통계
-
필터 옵션
- 부서별 필터
- 특정 직원만 보기
- 직급 표시 토글 — 체크하면 이름 위에 직급이 작게 표시됩니다

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

- 용지 크기: 가로×세로 mm 직접 입력
- 페이지 모드:
- 한 페이지로 축소: 전체를 한 장에 맞춰 자동 축소 (기본값)
- 여러 페이지로 출력: 직원이 많으면 자동으로 다음 페이지로 분할
- 미리보기 확인 후 "인쇄" 버튼 클릭
- 미리보기를 닫으려면 "닫기" 버튼 클릭
3.10 달력보기 탭
사이드바에서 "달력보기" 탭을 클릭하면 월별 달력 형태로 근무 현황을 볼 수 있습니다.
서브탭: 한눈에 / 자세히
달력보기 탭에는 두 가지 서브탭이 있습니다.
| 서브탭 | 설명 |
|---|---|
| 한눈에 | 달력 형태로 근무 현황을 시각적으로 표시 (예전 "그래픽") |
| 자세히 | 날짜별로 오전·오후·야간 근무자 명단을 텍스트로 표시 (예전 "텍스트") |
자세히 탭 특징:
- 날짜별로 오전·오후·야간 시간대별 근무자 명단을 한눈에 확인
- 부분 오프/연차 상태도 명확히 표기
선택한 서브탭은 자동으로 기억됩니다. 마지막으로 본 서브탭이 다음 방문 시에도 그대로 열립니다.


화면 구성 (한눈에 탭)
- 자체 월 네비게이션: ← → 버튼으로 달을 이동합니다
- 부서 필터 동기화: 날짜별 탭과 부서 필터가 자동으로 연동됩니다
- 직급 표시 토글: 부서 필터 옆에 위치 — 한눈에·자세히 양쪽에서 모두 적용됩니다
- 범례: 근무(파란색) · 연차(초록색) · 오프(주황색) · 미설정(회색) · (야간) 야간 근무 요일 — 모바일에서는 접이식 범례로 표시되며, 인쇄 미리보기에도 동일하게 출력됩니다
야간 요일 헤더 표기
야간 근무가 설정된 요일은 달력 상단 요일 헤더에 (야간) 이 자동으로 표시됩니다.
예: 화 (야간) — 화요일이 야간 근무 요일인 경우
야간 근무 요일은 근무시간 탭 → 요일별 근무시간에서 설정합니다.
근무 필터
달력에 표시할 직원을 시간대 기준으로 필터링할 수 있습니다.
| 필터 | 설명 |
|---|---|
| 근무있음 (전체) | 어떤 시간대든 근무가 있는 직원 |
| 오전 | 오전 근무자만 표시 |
| 오후 | 오후 근무자만 표시 |
| 야간 | 야간 근무자만 표시 |
| 근무없음 | 해당 날짜에 근무가 없는 직원 표시 |
근무있음체크박스 클릭 시 오전·오후·야간 하위 항목이 함께 켜지고 꺼집니다- 하위 항목을 일부만 선택하면 부모 체크박스가 일부 선택 상태(indeterminate)로 표시됩니다
달력 인쇄
-
우측 상단의 인쇄 아이콘 버튼을 클릭합니다
-
인라인 미리보기로 전환됩니다
한눈에 탭 인쇄 옵션:
- 용지 크기(가로×세로 mm) 조절
- 한 페이지로 축소 / 여러 페이지로 출력 선택
자세히 탭 인쇄 옵션:
- 날짜 셀별 메모 영역 표시 여부 선택 가능
- 글자 크기 조절 — 스테퍼 버튼으로 인쇄물 글자 크기를 단계별로 키우거나 줄일 수 있습니다
- 주 단위 페이지 나눔 — 페이지가 날짜 칸 중간이 아닌 캘린더 주(월~토) 행 단위로 나뉘어, 한 주가 페이지 사이에서 잘리지 않습니다
- 미리보기 폭이 A4 기준으로 표시되어 실제 인쇄 페이지 수와 일치합니다
- 야간 근무가 있는 날은 날짜·요일 라벨에 (야간근무) 가 함께 표기됩니다
-
"인쇄" 버튼을 클릭합니다
3.11 주의사항 및 팁
주의사항
-
연차 잔여 확인
- 연차 입력 전 반드시 잔여 일수를 확인하세요
- 부족한 경우 먼저 멤버 관리에서 연차를 부여해야 합니다
-
수정 모드 사용 시 주의
- 확정된 일정 수정은 반드시 사유가 기록됩니다
- 수정이 끝나면 수정 모드를 꺼서 실수를 방지하세요
- 수정 이력은 삭제할 수 없으므로 신중하게 변경하세요
-
계획 제출 기한
- 다음 달 계획은 가능한 월말까지 제출해 주세요
- 관리자가 확정해야 직원별 탭에 반영됩니다
효율적인 사용 팁
-
자동 작성 활용
- 주간 근무 패턴을 미리 설정하면 자동 작성으로 빠르게 입력 가능
- 패턴 설정: 멤버 관리 → 직원 선택 → 주간 근무 패턴
-
관리자 일괄 확정
- 모든 직원이 제출 완료하면 "전체 확정" 버튼으로 한 번에 처리
-
부서별 관리
- 부서 필터를 활용하여 부서별로 일정을 확인하고 관리하세요
- 한눈에 부서별 근무 현황을 파악할 수 있습니다
-
수정 이력 활용
- 수정 이력을 통해 변경 사항을 투명하게 관리하세요
- 분쟁 발생 시 수정 이력이 증빙 자료가 됩니다
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을 안다고 다른 조직 데이터가 보이지는 않습니다