{ "schemaVersion": "1.0", "title": "교대근무 스케줄 관리 시스템", "lang": "ko", "prd": { "oneLiner": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "goal": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "whyNow": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "category": "사내 운영 시스템", "platforms": [ "웹" ], "problem": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "solution": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "alternatives": "이메일, 메신저, 스프레드시트, 수동 대장", "differentiator": "요청·처리·운영 데이터를 하나의 연결된 기준으로 관리한다.", "targets": [ { "name": "근무 가능 시간을 제출하는 현장 직원", "role": "요청자·실무 사용자", "needs": "필요한 업무를 빠르게 등록하고 상태를 알고 싶다.", "pain": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다." }, { "name": "현장 운영·근무 편성 담당자", "role": "운영 관리자", "needs": "처리 우선순위와 이력을 관리하고 지표를 확인하고 싶다.", "pain": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다." }, { "name": "시스템·정책 관리자", "role": "운영·보안 관리자", "needs": "권한, 정책, 감사 기록을 관리하고 싶다.", "pain": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다." } ], "scenarios": [ { "text": "실무 사용자는 필요한 업무를 등록하고 상태를 확인한다.", "start": "P1" }, { "text": "운영 담당자는 대기 업무를 처리하고 예외를 조치한다.", "start": "P5" }, { "text": "시스템·정책 관리자는 정책과 권한을 검토한다.", "start": "P9" }, { "text": "시스템·정책 관리자는 감사 기록과 운영 지표를 검토한다.", "start": "P10" } ], "northStar": "기한 내 완료된 운영 요청 비율", "kpis": [ { "name": "기한 내 처리 비율", "target": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "baseline": "측정 전", "method": "상태 변경과 목표 기한을 월별 집계", "refs": [ "F6" ] }, { "name": "운영 가시성", "target": "핵심 업무 100% 추적", "baseline": "측정 전", "method": "등록 기록과 리포트 연결 비율", "refs": [ "F11" ] }, { "name": "감사 가능 운영 비율", "target": "핵심 변경 100% 기록", "baseline": "측정 전", "method": "감사 로그와 변경 이력 월별 점검", "refs": [ "F12" ] } ], "inScope": [ "근무 가능 시간과 휴무 요청 등록", "근무표·교대·인력 충원·변경 이력 조회", "근무 편성·교체 요청·결원 알림·승인 처리", "교대 충원율·결원·근무 시간 리포트", "근무 가능 시간과 휴무 요청 등록 유효성·중복 검증", "검색·필터·이력 관리", "담당자·우선순위·SLA 관리", "승인·정책 검토", "예외·반려·재처리", "알림·구독 관리", "외부 연동·데이터 동기화", "역할·권한·감사 관리" ], "nonGoals": [ "외부 고객 포털", "회계·급여 등 인접 시스템 전체 대체" ], "assumptions": [ "사용자와 조직 정보는 사내 SSO에서 제공된다.", "운영 정책과 분류 기준을 담당자가 관리한다." ], "risks": [ "초기 분류와 운영 기준이 불명확하면 잘못된 처리로 이어질 수 있다.", "기준 데이터가 갱신되지 않으면 운영 신뢰가 떨어진다." ], "openQuestions": [ "긴급 처리 기준과 승인 절차는 무엇인가?", "완료 후 검증과 재오픈 기준은 무엇인가?" ], "constraints": [ "상태·담당자·우선순위 변경은 감사 로그로 남긴다.", "접근 권한은 역할별로 제한한다.", "권한, 정책, 상태 변경은 감사 로그로 남긴다." ] }, "requirements": [ { "id": "R1", "title": "접수와 데이터 품질", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F1", "title": "근무 가능 시간과 휴무 요청 등록", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "근무 가능 시간과 휴무 요청 등록 기본 처리 규칙", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "근무 가능 시간과 휴무 요청 등록 예외·감사 처리", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F2", "title": "근무 가능 시간과 휴무 요청 등록 유효성·중복 검증", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "근무 가능 시간과 휴무 요청 등록 유효성·중복 검증 기본 처리 규칙", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "근무 가능 시간과 휴무 요청 등록 유효성·중복 검증 예외·감사 처리", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R2", "title": "업무 기록과 검색", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F3", "title": "근무표·교대·인력 충원·변경 이력 조회", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "근무표·교대·인력 충원·변경 이력 조회 기본 처리 규칙", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "근무표·교대·인력 충원·변경 이력 조회 예외·감사 처리", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F4", "title": "검색·필터·이력 관리", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "검색·필터·이력 관리 기본 처리 규칙", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "검색·필터·이력 관리 예외·감사 처리", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R3", "title": "처리와 책임", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F5", "title": "근무 편성·교체 요청·결원 알림·승인 처리", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "근무 편성·교체 요청·결원 알림·승인 처리 기본 처리 규칙", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "근무 편성·교체 요청·결원 알림·승인 처리 예외·감사 처리", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F6", "title": "담당자·우선순위·SLA 관리", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "담당자·우선순위·SLA 관리 기본 처리 규칙", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "담당자·우선순위·SLA 관리 예외·감사 처리", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R4", "title": "승인과 예외", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F7", "title": "승인·정책 검토", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "승인·정책 검토 기본 처리 규칙", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "승인·정책 검토 예외·감사 처리", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F8", "title": "예외·반려·재처리", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "예외·반려·재처리 기본 처리 규칙", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "예외·반려·재처리 예외·감사 처리", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R5", "title": "알림과 연동", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F9", "title": "알림·구독 관리", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "알림·구독 관리 기본 처리 규칙", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "알림·구독 관리 예외·감사 처리", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F10", "title": "외부 연동·데이터 동기화", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "외부 연동·데이터 동기화 기본 처리 규칙", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "외부 연동·데이터 동기화 예외·감사 처리", "desc": "근무 가능 시간, 교대 템플릿, 배정·교체, 결원 알림과 운영 리포트를 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R6", "title": "운영 분석과 통제", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F11", "title": "교대 충원율·결원·근무 시간 리포트", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "교대 충원율·결원·근무 시간 리포트 기본 처리 규칙", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "교대 충원율·결원·근무 시간 리포트 예외·감사 처리", "desc": "근무 가능 시간, 휴무, 교체 요청이 메신저와 스프레드시트에 흩어져 결원 대응과 공정한 배정이 어렵다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F12", "title": "역할·권한·감사 관리", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "역할·권한·감사 관리 기본 처리 규칙", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "역할·권한·감사 관리 예외·감사 처리", "desc": "계획된 교대 근무의 필수 인력 충원율을 98% 이상으로 유지한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] } ], "ia": { "sections": [ { "id": "S1", "title": "접수와 데이터 품질", "pages": [ { "id": "P1", "title": "운영 대시보드", "type": "top", "refs": [ "F1", "F1:0", "F3", "F4:0", "F7:1", "F11" ], "children": [] }, { "id": "P2", "title": "업무 목록", "type": "page", "refs": [ "F3", "F3:0", "F4", "F1:0", "F4:1", "F8", "F11:0" ], "children": [] }, { "id": "P3", "title": "등록 화면", "type": "page", "refs": [ "F1", "F1:1", "F2", "F5", "F8:0", "F11:1" ], "children": [] } ] }, { "id": "S2", "title": "업무 기록과 검색", "pages": [ { "id": "P4", "title": "상세 기록", "type": "page", "refs": [ "F3:1", "F4:1", "F11", "F2", "F5:0", "F8:1", "F12" ], "children": [] }, { "id": "P5", "title": "처리 작업 공간", "type": "page", "refs": [ "F5", "F5:0", "F6", "F2:0", "F5:1", "F9", "F12:0" ], "children": [] } ] }, { "id": "S3", "title": "처리와 책임", "pages": [ { "id": "P6", "title": "승인·예외 큐", "type": "page", "refs": [ "F7", "F7:0", "F8", "F2:1", "F6", "F9:0", "F12:1" ], "children": [] }, { "id": "P7", "title": "알림·연동", "type": "page", "refs": [ "F9", "F9:0", "F10", "F3", "F6:0", "F9:1" ], "children": [] } ] }, { "id": "S4", "title": "운영 분석과 통제", "pages": [ { "id": "P8", "title": "운영 리포트", "type": "page", "refs": [ "F11", "F11:0", "F3:0", "F6:1", "F10" ], "children": [] }, { "id": "P9", "title": "정책·권한 설정", "type": "page", "refs": [ "F10:1", "F12", "F3:1", "F7", "F10:0" ], "children": [] }, { "id": "P10", "title": "감사 로그", "type": "page", "refs": [ "F8:1", "F12:0", "F12:1", "F4", "F7:0", "F10:1" ], "children": [] } ] } ] }, "flow": { "start": "P1", "transitions": [ { "from": "P1", "to": "P2", "ref": "F1" }, { "from": "P2", "to": "P3", "ref": "F2" }, { "from": "P3", "to": "P4", "ref": "F3" }, { "from": "P4", "to": "P5", "ref": "F4" }, { "from": "P5", "to": "P6", "ref": "F5" }, { "from": "P6", "to": "P5", "ref": "F8" }, { "from": "P5", "to": "P7", "ref": "F6" }, { "from": "P7", "to": "P8", "ref": "F9" }, { "from": "P8", "to": "P9", "ref": "F10" }, { "from": "P9", "to": "P10", "ref": "F12" }, { "from": "P10", "to": "P4", "ref": "F11" }, { "from": "P4", "to": "P1", "label": "운영 현황 갱신" }, { "from": "P5", "to": "P6", "ref": "F7" } ] } }