미창조㈜ · AX 사업추진 TF
16-A. 예약·스케줄 기능 상세 — 19개
15번 목록의 A 도메인을 와이어프레임 작성자가 화면에 무엇을 놓을지 판단할 수 있는 수준까지 폈다. 기능 하나를 여섯 줄(목적·트리거·입력·규칙·결과·예외)로 정의한다.
19개1차192차0미결 02차 미작성 1
상위: 15. RIAHN CONNECT 기능 목록 · 화면 목록 — A 도메인
필드 정의와 표기(⚑ 분리 검토 · ▷ 2차 상세 미작성)는 16-C 0-1과 같다
작성: 이원섭 PM · 2026-08-11
0. 이 도메인을 관통하는 제약 다섯
- 점유 자원이 셋이다 — 디자이너·좌석·장비. 하나만 봐서는 예약이 성립하지 않는다. 모든 배치 판단은 3중 검증(A-05)을 거친다.
- 소요시간은 고정값이 아니다. 메뉴 표준시간에 디자이너 실측 보정과 정리 버퍼가 얹힌다(A-06). 시술을 바꾸면 시간이 다시 계산되고, 그 결과 후속 예약과 충돌할 수 있다.
- 채널은 데이터다. 네이버·카카오·전화·앱·워크인을 화면에 하드코딩하지 않는다. 네이버 API가 열리지 않아도 헤어짱·핸드SOS 어댑터로 대체되어야 한다(I-01 플러그인 구조).
- 정책 숫자는 K-05·K-12에 있다. 최소 리드타임·당일 마감·선예약 한도·리마인더 시점·미입금 자동취소 시간을 화면에 적지 않는다.
- 네트워크가 끊겨도 예약은 돌아간다. 예약 등록·변경·조회는 로컬에서 계속되고 재연결 시 병합한다(L-03·L-04). 결제만 예외다 — 카드 승인은 외부 통신이 필요하다.
0-2. 군집
| 군집 |
기능 |
주 화면 |
| A-1 캘린더·배치 |
7 |
SC-M03 일 · SC-M04 주 · SC-M05 좌석·장비 레인 |
| A-2 예약 생명주기 |
5 |
SC-M06 등록·수정 · SC-M07 상세 · SC-M08 취소·노쇼 |
| A-3 대기·유입 |
4 |
SC-M09 대기자 보드 · SC-M40 채널 슬롯 배분 |
| A-4 예외 상황 |
3 |
SC-M03 · SC-M27 근무표 |
16-A. 예약·스케줄 — RIAHN CONNECT 기능 상세
A-1. 캘린더·배치 — 7개
RC-A-01통합 예약 캘린더1차
- 목적
- 매장의 하루를 한 화면에 담는다. 매니저가 가장 오래 보고 있는 화면
- 트리거
- 로그인 직후, 상시 열려 있음
- 입력
- 예약 전체 · 근무표(F-01) · 좌석·장비 마스터(K-02) · 영업시간(K-01) · 채널 뱃지(A-09)
- 규칙
- 일/주 뷰를 전환하고, 디자이너 컬럼과 좌석·장비 레인을 축 전환한다 — 같은 데이터를 다른 축으로 본다. 15/30분 그리드는 매장별 설정. 다른 기기의 변경이 즉시 반영된다(L-06)
- 결과
- 조회. 여기서 등록(A-02)·변경(A-03)·상세(A-10)로 진입
- 예외
- 네트워크가 끊기면 배너를 띄우고 로컬 데이터로 계속 동작한다. 재연결 시 충돌은 L-04로 해소
RC-A-05충돌 방지1차
- 목적
- 같은 자원을 두 번 팔지 않는다. 이 도메인에서 가장 중요한 판정
- 트리거
- 예약 등록·변경·재배정 시 자동
- 입력
- 디자이너 근무·기존 예약 · 좌석 점유 · 장비 점유(K-02) · 동시 편집 상태
- 규칙
- 디자이너·좌석·장비 3중 점유를 모두 검증한다. 하나라도 겹치면 막고 어느 자원이 겹치는지 알린다. 여러 사람이 같은 슬롯을 동시에 만지면 락으로 직렬화하고 뒤 요청에 안내한다. 방치 시간(A-07) 중에는 디자이너 점유가 풀리지만 좌석은 유지된다
- 결과
- 배치 가능/불가 판정
- 예외
- 단절 중 등록된 예약이 재연결 시 충돌하면 L-04 충돌 해소 UI로 넘긴다
RC-A-06표준 소요시간·버퍼1차
- 목적
- 시술 시간을 자동으로 잡아 매니저가 매번 계산하지 않게 한다
- 트리거
- 예약 등록·변경에서 시술 선택 시
- 입력
- 메뉴 표준시간(K-03) · 디자이너별 실측 이력 · 정리 버퍼 설정
- 규칙
- 표준시간 + 디자이너 실측 보정 + 정리 버퍼로 계산한다. 실측 보정은 과거 시술 기록(G-01)의 소요시간에서 나온다 — 신입은 표준시간을 그대로 쓰고 이력이 쌓이면 보정된다(F-10과 연결). 매니저가 수동 조정할 수 있되 조정분을 남긴다
- 결과
- 예약 종료 시각 확정, 후속 슬롯 계산
- 예외
- 실측 이력이 부족하면 보정하지 않는다. 보정 여부를 표시한다
RC-A-07복합 시술 시간 계산1차
- 목적
- 커트+펌+컬러처럼 겹치는 시술의 실제 점유를 계산한다
- 트리거
- 두 개 이상 시술 선택
- 입력
- 각 시술의 표준시간 · 방치 시간 구간 · 배치 허용 규칙
- 규칙
- 시술을 단순 합산하지 않는다. 방치 시간(펌 웨이브 대기 등) 중에는 디자이너를 다른 고객에게 배치할 수 있다 — 이게 미용실 회전율의 핵심이다. 방치 구간을 시간축에 명시하고, 그 구간에 다른 예약을 넣을 수 있게 한다. 좌석은 계속 점유된다
- 결과
- 실제 점유 구간 확정, 방치 구간 노출
- 예외
- 방치 중 배치를 허용할지는 매장 정책이다. 끄면 단순 합산으로 동작한다
RC-A-09채널 뱃지·필터1차
- 목적
- 예약이 어디서 왔는지 보고 필터한다
- 트리거
- 캘린더 조회
- 입력
- 채널 목록(K-09, I-01 플러그인) · 예약별 유입 채널
- 규칙
- 채널 목록을 하드코딩하지 않는다. 네이버가 열리지 않아 헤어짱 어댑터로 대체되어도 화면은 그대로여야 한다. 뱃지 색·아이콘은 채널 설정에서 온다
- 결과
- 시각 구분, 필터 적용
- 예외
- 미매핑 채널에서 들어온 건은 "기타"로 표시하고 I-03 매핑 규칙 보완을 유도한다
RC-A-15슬롯 최적화 제안1차
- 목적
- 공백을 줄이는 배치를 제안한다
- 규칙
- 제안만 하고 실행은 사람이 정한다. 수용·거절 로그를 쌓아 제안 품질을 개선한다
▷ 2차 상세 미작성 — 최적화 기준(공백 최소 vs 매출 최대)이 정해져야 규칙을 적을 수 있다
RC-A-18채널별 슬롯 배분·재고 관리1차
- 목적
- 같은 슬롯이 여러 채널에 동시 노출돼 오버부킹이 나는 것을 막는다
- 트리거
- 슬롯 배분 설정, 예약 발생 시 자동 재계산
- 입력
- 전체 슬롯 · 채널별 할당 규칙 · 타임딜 전용 슬롯(K-08)
- 규칙
- 슬롯을 채널별로 나눠 배분한다 — 네이버 노출분 / 앱 전용 / 타임딜 전용. 어느 채널에서 예약이 잡히면 그 슬롯을 나머지 채널에서 즉시 내린다(I-12 역동기화). 배분 비율은 요일·시간대별로 다르게 둘 수 있다
- 결과
- 채널별 가용 슬롯 확정, 외부 채널로 push
- 예외
- 역동기화가 실패하면 오버부킹 위험이 생긴다. 실패 건은 I-04 실패 큐로 보내고 해당 슬롯을 보수적으로 잠근다
A-2. 예약 생명주기 — 5개
RC-A-02예약 등록1차
- 목적
- 예약을 만든다. 이 도메인의 진입점
- 트리거
- 전화 접수, 워크인 방문, 캘린더 빈 슬롯 클릭
- 입력
- 고객(B-01) · 시술 메뉴(K-03) · 디자이너 · 시간(A-06 자동) · 예약 정책(K-05)
- 규칙
- 고객검색 → 시술 → 디자이너 → 시간 자동 계산 순으로 진행한다. 재시술(C-25) 예약은 유형을 구분해 잡는다 — 매출 집계에서 빠져야 한다. 워크인은 즉시 등록으로 분기한다. 최소 리드타임·선예약 한도는 K-05를 따른다
- 결과
- 예약 1건 생성, 상태 = 요청 또는 확정(A-08), 확정 알림 발송(A-13)
- 예외
- 충돌(A-05) 시 대체 슬롯을 제안한다. 예약금이 필요하면 결제대기 홀드로 만든다(C-22)
RC-A-03예약 변경1차
- 목적
- 시간·디자이너·시술을 바꾼다
- 트리거
- 고객 요청, 캘린더에서 드래그 이동
- 입력
- 기존 예약 · 변경 내용 · 충돌 검증(A-05)
- 규칙
- 드래그로 옮기면 즉시 충돌을 검증한다. 시술을 바꾸면 소요시간이 재계산되어 종료 시각이 바뀌고, 그 결과 후속 예약과 겹칠 수 있다. 변경 이력을 보존한다 — 누가 언제 무엇을 바꿨는지가 분쟁에서 필요하다. 변경 알림을 발송한다(A-13)
- 결과
- 예약 갱신, 변경 이력 1행, 알림 발송
- 예외
- 단절 중 변경한 건이 재연결 시 서버 변경과 충돌하면 L-04로 넘긴다
RC-A-04취소·노쇼 처리1차
- 목적
- 오지 않은 예약을 정리하고 그 결과를 정책대로 처리한다
- 트리거
- 고객 취소 통보, 예약 시각 경과 후 미방문
- 입력
- 취소 사유 코드 · 예약금 유무(A-12) · 취소·노쇼 정책(K-05)
- 규칙
- 사유 코드를 반드시 고른다 — 사유별 통계가 노쇼 예측(A-14)의 입력이 된다. 예약금은 K-05 정책에 따라 몰수 또는 환불로 분기하며 환불은 C-05 경로를 탄다. 노쇼는 고객별로 카운트를 누적해 다음 예약 시 선결제 권장(A-14)의 근거가 된다
- 결과
- 예약 상태 = 취소/노쇼, 슬롯 해제 → 대기자 매칭(A-11) 트리거, 노쇼 카운트 갱신
- 예외
- 취소는 슬롯을 즉시 풀지만 노쇼는 시간이 지난 뒤 판정되므로 슬롯이 이미 비어버린 상태다. 둘의 처리 시점이 다르다
RC-A-08예약 상태 관리1차
- 목적
- 예약이 어느 단계에 있는지 한 값으로 표현한다. 다른 기능들이 이 값으로 분기한다
- 트리거
- 각 단계의 사용자 행동 또는 시스템 이벤트
- 입력
- 이전 상태 · 전이 조건
- 규칙
- 요청 · 결제대기(슬롯 홀드) · 확정 · 방문 · 시술중 · 완료 · 취소 · 노쇼. 결제대기는 C-22 링크 결제를 기다리는 동안 슬롯을 잡아두는 상태다 — 이게 없으면 링크를 보낸 사이에 슬롯이 팔린다. 허용되지 않는 전이는 막는다(완료 → 요청 등)
- 결과
- 상태 확정. 캘린더 표시·결제 가능 여부·알림 발송이 여기에 걸린다
- 예외
- 결제대기가 만료되면 자동으로 취소로 전이하고 슬롯을 푼다(K-05 시간)
RC-A-10예약 상세 패널1차
- 목적
- 예약 하나에 필요한 모든 것을 한 패널에서 본다. 컨테이너
- 트리거
- 캘린더에서 예약 선택
- 입력
- 예약 정보 · 고객 요약(B-02) · 브리핑(B-13) · 레시피(G-08) · 결제 상태(C-01) · 노쇼 위험(A-14)
- 규칙
- 캘린더를 벗어나지 않고 확인·조치가 끝나야 한다. 여기서 변경·취소·결제로 바로 진입한다. 고객 개인정보는 마스킹 규칙(J-03)을 따른다
- 결과
- 조회 + 하위 액션 진입
- 예외
- 이관 고객은 이력이 비어 있다. "없음"과 "이관되지 않음"을 구분한다
A-3. 대기·유입 — 4개
RC-A-11대기자 관리1차
- 목적
- 원하는 시간이 찼을 때 놓치지 않고 잡아둔다
- 트리거
- 원하는 슬롯이 만석일 때 대기 등록
- 입력
- 희망 조건(날짜·시간대·디자이너) · 취소 발생 이벤트(A-04)
- 규칙
- 취소가 나면 조건이 맞는 대기자를 자동 매칭해 알림을 보낸다. 선착순 응답으로 확정하되 응답 유효시간을 둔다 — 무한정 잡아두면 슬롯이 죽는다. 알림은 정보성(K-06)
- 결과
- 대기 등록, 매칭 시 알림 발송(E-14), 응답 시 예약 확정
- 예외
- 여러 대기자에게 동시 발송하면 먼저 응답한 사람이 가져간다. 나머지에게 마감 통보를 보내야 신뢰가 유지된다
RC-A-17워크인 대기열·호출1차
- 목적
- 예약 없이 온 고객의 순번을 관리한다. A-11(취소 대기)과 완전히 별개다
- 트리거
- 예약 없는 고객 방문
- 입력
- 현재 진행 중인 시술 · 디자이너별 예상 종료 시각(A-06)
- 규칙
- 순번을 매기고 예상 대기시간을 계산해 알려준다 — 모르고 기다리는 것이 가장 큰 불만이다. 호출은 매장 내 표시 또는 문자로 한다. 예약 고객이 우선이며 워크인은 빈 슬롯에 들어간다
- 결과
- 대기열 등록, 호출 시 예약 등록(A-02)으로 전환
- 예외
- 대기 중 이탈한 고객을 정리하는 수단이 필요하다
RC-A-12예약금·선결제1차
- 목적
- 노쇼를 줄이고 고가 시술의 이행을 담보한다
- 트리거
- 예약 등록 시 정책상 필요하거나 노쇼 이력이 있는 고객
- 입력
- 예약금 비율(K-05) · 노쇼 카운트(A-04) · 결제 링크(C-22)
- 규칙
- 예약금 필요 여부를 자동 판정하되 매니저가 면제할 수 있다. 발송은 C-22 링크로 하고 입금 확인까지 슬롯을 홀드한다(A-08). 결제 시 최종 금액에서 차감(C-11)
- 결과
- 예약금 결제 이력, 예약 확정
- 예외
- 미입금 상태로 유효기간이 지나면 자동 취소 + 슬롯 해제
RC-A-13예약 알림 발송1차
- 목적
- 고객이 예약을 잊지 않게 한다. 노쇼 방지의 1차 수단
- 트리거
- 예약 확정·변경 시 즉시. 리마인더는 K-12 시점(D-1, H-3)
- 입력
- 알림 템플릿(K-06) · 발송 시점(K-12) · 발신번호(K-13) · 발송 인프라(E-14)
- 규칙
- 확정·변경·리마인더 세 종을 보낸다. 전부 정보성이므로 야간 차단과 발송 상한의 예외다(K-06). 리마인더 시점은 복수로 설정할 수 있다. 발송 결과·실패·대체발송은 E-14가 처리한다
- 결과
- 알림 발송, 전송 상태 기록
- 예외
- 알림톡 실패 시 SMS 대체발송(E-14). 수신거부한 고객이라도 정보성 알림은 발송한다 — 법적으로 광고가 아니다
A-4. 예외 상황 — 3개
RC-A-14노쇼 위험 표시1차
- 목적
- 오지 않을 것 같은 예약을 미리 알아 대응한다
- 트리거
- 예약 생성 시, 캘린더 조회 시
- 입력
- 고객 노쇼 카운트(A-04) · 취소 이력 · 예약 채널(A-09) · 리드타임
- 규칙
- 예약별로 위험 뱃지를 붙이고 대응 액션을 제안한다 — 선결제 권장(A-12), 리마인더 추가 발송(A-13). 판단은 사람이 한다. 고객에게 보이는 화면(D4)에는 이 뱃지를 띄우지 않는다
- 결과
- 위험 등급 표시, 액션 제안
- 예외
- 신규 고객은 이력이 없어 판정하지 않는다. 채널별 노쇼율 차이는 데이터가 쌓인 뒤 반영한다
RC-A-16결원 시 일괄 재배정1차
- 목적
- 디자이너가 갑자기 빠졌을 때 그날 예약을 살린다
- 트리거
- 결근·조퇴 등록(F-01)
- 입력
- 해당 디자이너의 당일 예약 전체 · 다른 디자이너의 가용 슬롯 · 고객 지정 여부
- 규칙
- 재배정 후보를 제시하고 일괄 처리한다. 지명 예약(F-02 지명료)은 고객 동의가 필요하므로 자동 재배정하지 않고 개별 연락 대상으로 분리한다. 재배정 결과를 고객에게 일괄 통보(A-13)
- 결과
- 예약 담당자 변경, 변경 이력, 고객 통보
- 예외
- 재배정할 자원이 없으면 취소·일정 변경 제안으로 넘어간다
RC-A-19매장 임시 휴업 처리1차
- 목적
- 정전·설비 고장 같은 갑작스러운 휴업 때 예약을 정리한다. A-16의 매장 단위 판
- 트리거
- 점주가 임시 휴업 등록
- 입력
- 휴업 기간 · 해당 기간 예약 전체 · 대체 가능 슬롯
- 규칙
- 해당 기간 예약을 일괄 취소하고 대체 시간을 제안한 뒤 일괄 통보한다. 취소 사유는 매장 귀책이므로 노쇼 카운트에 넣지 않고 예약금은 전액 환불한다. 외부 채널의 노출 슬롯도 함께 내린다(I-12)
- 결과
- 예약 일괄 취소, 대체 제안 발송, 채널 슬롯 마감
- 예외
- K-01 휴무일은 사전 계획용이라 이 경우를 다루지 않는다. 휴업이 길어지면 예약 접수 자체를 막아야 한다