필라테스 공정 대기 예약
화면 및 사용 흐름 문서
1. 문서 목적
정원 5~15명의 기구 필라테스 스튜디오에서 다음 업무를 웹으로 처리한다.
- 원장이 수업 날짜·시간·정원을 등록한다.
- 회원이 휴대폰 웹페이지에서 수업을 예약하거나 대기 신청한다.
- 취소 자리가 생기면 대기 신청 순서대로 문자 링크를 보낸다.
- 회원이 빈자리를 수락하면 원장이 최종 승인한다.
- 취소 시점에 따른 횟수 차감, 예외 복구, 노쇼를 기록한다.
- 원장이 처리 과정과 오류 수정 이력을 시간순으로 확인한다.
회원과 원장 모두 별도 앱 설치 없이 Next.js 기반 웹페이지를 사용한다.
2. 서비스 기본 정보
| 항목 | 내용 |
|---|---|
| 서비스명 | 필라테스 공정 대기 예약 |
| 회원 이용 환경 | 카카오톡이나 문자로 공유된 링크에서 여는 휴대폰 웹페이지 |
| 원장 이용 환경 | 휴대폰·PC 웹페이지 |
| 핵심 회원 규모 | 스튜디오당 약 31~60명 |
| 수업 정원 | 5~15명 |
| 회원 확인 방식 | 휴대폰 번호와 인증번호 |
| 회원권 결제 | 서비스 밖에서 처리 |
| 서비스 내 회원권 관리 | 횟수제 회원권의 총 횟수, 잔여 횟수, 기간, 회원권 이력 |
| 로고·색상 | 제공되지 않음. 확인 필요 |
| 화면 말투 | 공정한 기준과 처리 결과를 짧고 명확하게 안내하는 말투 |
공통 안내 문구 예시
대기 순번은 대기 신청 시각과 등록 순번에 따라 정해집니다.
무료 취소 마감 시각은 2026년 9월 3일 07:00입니다. 이후 취소는 원장이 횟수 차감 또는 미차감을 확인합니다.
다른 회원의 이름이나 연락처는 공개되지 않습니다.
3. 확정된 운영 규칙
3.1 예약과 대기
- 자리가 있으면 회원이 바로 예약한다.
- 만석이면 회원이 대기 신청한다.
- 대기 순번은 다음 두 값을 함께 사용한다.
- 대기 신청 시각
- 같은 시각의 신청을 구분하는 변경 불가능한 등록 순번
- 회원은 자신의 현재 대기 순번과 전체 대기 인원을 확인한다.
- 다른 회원의 이름과 휴대폰 번호는 볼 수 없다.
3.2 빈자리 제안
| 제안 발송 시점 | 회원 응답 시간 |
|---|---|
| 수업 시작 2시간 전까지 | 1시간 |
| 수업 시작 2시간 전 이후 | 10분 |
- 기준은 빈자리 제안 문자를 발송한 시각이다.
- “수업 시작 2시간 전까지”에는 정확히 2시간 전인 시각도 포함한다.
- 화면에는 남은 시간뿐 아니라 날짜가 포함된 응답 마감 시각을 표시한다.
- 응답하지 않으면 해당 제안은
대기 수락 만료가 되고 다음 대기 회원에게 제안한다.
예시:
- 수업 시작: 2026년 9월 3일 19:00
- 16:30 제안: 17:30까지 응답
- 17:00 제안: 18:00까지 응답
- 17:10 제안: 17:20까지 응답
3.3 빈자리 수락과 원장 승인
- 회원이 문자 링크에서 빈자리를 수락한다.
- 상태가
수락 대기에서승인 대기로 바뀐다. - 해당 좌석은 원장이 승인하거나 반려할 때까지 임시 보류한다.
- 이 시간에는 다음 대기 회원에게 같은 좌석을 제안하지 않는다.
- 원장이 회원권 상태와 예외 여부를 확인한다.
- 원장이 승인하면 예약이 확정된다.
- 원장이 반려하면 좌석 보류가 풀리고 다음 대기 회원에게 제안한다.
회원권 잔여 횟수가 부족하거나 회원권이 만료된 회원도 빈자리를 수락할 수 있다. 이 경우 원장이 최종 예약 여부를 결정한다.
3.4 취소와 횟수 처리
- 모든 취소에서 회원이 사유를 선택한다.
- 기본 선택지는
지각,건강,개인 사정,기타로 한다. - 필요한 경우 상세 내용을 추가한다.
- 수업 12시간 전까지는 회원권 횟수 미차감이 기본이다.
- 12시간 이내 취소는 원장이
차감또는미차감을 선택하고 이유를 기록한다. - 미차감 처리는 기존 차감 기록을 삭제하지 않고
예외 복구이력을 추가한다. - 회원의 예약이 취소되면 횟수 처리 완료 여부와 관계없이 빈자리 안내를 시작한다.
3.5 노쇼와 오류 수정
- 노쇼는 수업 시작 전 취소와 분리해 기록한다.
- 원장은 수업 후 출석 상태를
출석,지각 출석,노쇼,보류로 처리한다. - 기존 회원권 이력은 삭제하거나 덮어쓰지 않는다.
- 잘못된 차감이나 노쇼는 원본 이력에 연결된 조정 이력을 추가해 수정한다.
- 처리자, 처리 시각, 수정 전후 값, 사유를 남긴다.
4. 핵심 상태 흐름
대기 신청
→ 대기
→ 빈자리 발생
→ 수락 대기
├─ 무응답: 대기 수락 만료 → 다음 대기 회원에게 제안
└─ 수락: 승인 대기
├─ 원장 승인: 예약 확정
└─ 원장 반려: 다음 대기 회원에게 제안
좌석 수와 함께 바뀌어야 하는 정보
다음 정보는 한 번의 처리로 함께 저장해야 한다.
- 수업의 예약 인원
- 남은 좌석 수
- 대기 신청 상태
- 대기 제안 상태
- 원장 승인 상태
- 예약 상태
- 회원권 이력
일부 정보만 저장되면 정원 초과, 중복 승인, 순서 누락이 발생할 수 있다.
5. 전체 화면 구조
회원 화면 흐름
카카오톡 예약 링크
→ 회원용 휴대폰 인증 화면 [member-phone-auth]
→ 회원용 수업 목록·예약·대기 신청 화면 [member-class-list]
→ 회원용 내 예약·대기 순번·취소 화면 [member-reservations]
→ 회원 화면 [member]
빈자리 수락 문자 링크
→ 인증이 필요한 경우 회원용 휴대폰 인증 화면 [member-phone-auth]
→ 문자 링크에서 여는 빈자리 수락 화면 [vacancy-accept]
→ 회원용 내 예약·대기 순번·취소 화면 [member-reservations]
원장 화면 흐름
원장용 날짜별 수업·예약 인원·대기 현황 화면 [owner-class-status]
├─ 원장용 수업 등록·수정 화면 [MS1]
├─ 수업별 화면 [class]
│ ├─ 원장용 빈자리 수락 승인 화면 [MS2]
│ └─ 원장용 오류 수정·조정 이력 화면 [MS3]
└─ 원장용 회원별 회원권 횟수·취소 예외·노쇼 기록 화면 [owner-member-records]
├─ 원장용 회원·회원권 초기 등록 화면 [MS4]
└─ 원장용 오류 수정·조정 이력 화면 [MS3]
6. 회원 화면 상세
6.1 회원용 휴대폰 인증 화면 [member-phone-auth]
목적
회원가입을 따로 만들지 않고 휴대폰 번호와 인증번호로 회원을 확인한다. 인증 후에는 처음 열었던 수업, 내 예약 또는 빈자리 수락 화면으로 돌아간다.
진입 조건
- 카카오톡 등에 공유된 예약 링크를 연 경우
- 내 예약 확인 링크를 연 경우
- 빈자리 수락 문자 링크를 열었지만 유효한 인증 상태가 없는 경우
- 기존 인증 유지 기간이 끝난 경우
사용자가 보는 정보
- 스튜디오명
- 휴대폰 번호 입력란
- 인증번호 입력란
- 인증번호 유효 시간
- 재전송 가능 시각
- 인증 후 이동할 화면에 대한 짧은 안내
예시 문구:
스튜디오에 등록된 휴대폰 번호를 입력해 주세요.
인증이 완료되면 보려던 수업 화면으로 돌아갑니다.
할 수 있는 행동
- 휴대폰 번호 입력
- 인증번호 받기
- 인증번호 입력
- 인증번호 확인
- 제한 시간이 지난 후 인증번호 재전송
상태
| 상태 | 화면 처리 |
|---|---|
| 성공 | “휴대폰 확인이 완료됐어요.”를 보여주고 원래 요청한 화면으로 이동 |
| 빈 상태 | 휴대폰 번호 입력란과 인증번호 받기 버튼 표시 |
| 등록되지 않은 번호 | “스튜디오에 등록되지 않은 번호예요. 원장에게 등록된 번호를 확인해 주세요.” |
| 인증번호 불일치 | 남은 입력 가능 횟수와 함께 다시 입력 안내 |
| 인증번호 만료 | 새 인증번호 요청 안내 |
| 재전송 제한 | 다시 요청할 수 있는 시각 표시 |
| 전송 실패 | “문자를 보내지 못했어요. 잠시 후 다시 시도해 주세요.” |
| 반복 실패 | 일정 시간 입력을 제한하고 해제 시각 표시 |
완료 조건
- 입력한 번호가 등록된 회원 기록과 연결된다.
- 인증 완료 시각과 인증 상태가 저장된다.
- 처음 열었던 주소가 유지되어 해당 화면으로 복귀한다.
다음 화면
- 일반 예약 링크:
[member-class-list] - 내 예약 링크:
[member-reservations] - 빈자리 수락 링크:
[vacancy-accept]
6.2 회원용 수업 목록·예약·대기 신청 화면 [member-class-list]
목적
회원이 날짜별 수업을 확인하고 자리가 있으면 예약하며, 만석이면 대기 신청한다.
진입 조건
[member-phone-auth]에서 인증 완료- 인증 상태가 유지된 회원이 예약 링크로 재방문
[member-reservations]에서 다른 수업 찾기 선택
사용자가 보는 정보
수업 카드마다 다음 정보를 표시한다.
- 수업 날짜
- 시작·종료 시각
- 수업명
- 정원
- 현재 예약 인원
- 남은 자리 또는 전체 대기 인원
예약 가능,만석,대기 가능,예약 마감,휴강상태- 무료 취소 마감 시각
- 회원권 잔여 횟수
- 본인의 예약 또는 대기 신청 여부
예시:
2026년 9월 3일 19:00
그룹 리포머
예약 8/8명 · 대기 2명
신청하면 대기 3번이 됩니다.
할 수 있는 행동
- 날짜 변경
- 수업 선택
- 자리가 있는 수업 예약
- 만석 수업 대기 신청
- 내 예약·대기 보기
- 이미 예약하거나 대기 중인 수업 상태 확인
예약 처리
예약하기를 누르면 다음 내용을 확인한다.
- 정원이 남아 있는지
- 동일 회원이 같은 수업에 이미 예약했는지
- 회원권의 잔여 횟수와 만료일
- 같은 요청이 반복 전송된 것은 아닌지
마지막 자리를 여러 회원이 동시에 예약해도 한 명만 성공해야 한다.
대기 신청 처리
- 대기 신청 시각과 등록 순번을 저장한다.
- 신청 직후 현재 대기 순번을 보여준다.
- 대기 중에는 회원권 횟수를 차감하지 않는다.
상태
| 상태 | 화면 처리 |
|---|---|
| 예약 성공 | “예약이 확정됐어요.”와 수업 정보, 무료 취소 마감 시각 표시 |
| 대기 신청 성공 | “대기 신청이 완료됐어요. 현재 대기 3번이에요.” |
| 빈 상태 | “선택한 날짜에 등록된 수업이 없어요.” |
| 휴강 | 예약 버튼을 숨기고 휴강 상태 표시 |
| 동시 예약 실패 | “방금 마지막 자리가 예약됐어요. 대기 신청을 할 수 있어요.” |
| 중복 예약 | 새 예약을 만들지 않고 기존 예약 상태 표시 |
| 중복 대기 신청 | 새 대기 신청을 만들지 않고 기존 대기 순번 표시 |
| 회원권 확인 오류 | 예약을 확정하지 않고 다시 시도 안내 |
| 통신 오류 | 좌석과 회원권이 일부만 처리되지 않도록 전체 요청 취소 후 재시도 안내 |
완료 조건
- 예약 성공 시 정원을 넘지 않는다.
- 대기 신청 성공 시 변경 불가능한 등록 순번이 부여된다.
- 회원이 새로고침해도 같은 예약·대기 상태가 표시된다.
다음 화면
- 예약 완료 또는 대기 신청 완료:
[member-reservations] - 대기 순번 상세 확인:
[member]
6.3 회원용 내 예약·대기 순번·취소 화면 [member-reservations]
목적
회원이 자신의 예약, 대기 신청, 승인 대기 상태를 한곳에서 확인하고 예약을 취소한다.
진입 조건
[member-class-list]에서 내 예약·대기 선택- 예약 또는 대기 신청 완료
- 빈자리 수락 후 현재 상태 확인
- 내 예약 확인 링크로 접속
사용자가 보는 정보
예약 항목
- 수업 날짜·시간·수업명
- 예약 상태
- 무료 취소 마감 시각
- 현재 시점에 취소할 경우 예상되는 횟수 처리
- 사용한 회원권과 잔여 횟수
대기 항목
- 대기 신청 시각
- 현재 내 대기 순번
- 전체 대기 인원
대기,수락 대기,대기 수락 만료,승인 대기상태- 응답 마감 시각
- 대기 중에는 회원권이 차감되지 않는다는 안내
할 수 있는 행동
- 예약 상세 확인
- 예약 취소
- 취소 사유 선택
- 취소 상세 내용 입력
- 대기 순번 상세 보기
- 다른 수업 찾기
- 승인 대기 결과 확인
취소 입력
모든 취소에서 다음을 받는다.
- 취소 사유: 지각 / 건강 / 개인 사정 / 기타
- 상세 내용: 선택 입력
- 취소 결과 확인
12시간 이내 취소 안내 예시:
무료 취소 마감 시각이 지났습니다.
취소 후 원장이 회원권 횟수의 차감 또는 미차감을 확인합니다.
상태
| 상태 | 화면 처리 |
|---|---|
| 무료 취소 성공 | 취소 완료와 회원권 처리 결과 표시 |
| 12시간 이내 취소 성공 | “취소됐어요. 회원권 횟수 처리는 원장 확인 후 결정됩니다.” |
| 빈 상태 | “현재 예약하거나 대기 중인 수업이 없어요.” |
| 이미 취소된 예약 | 중복 취소하지 않고 기존 취소 시각과 처리 결과 표시 |
| 수업 시작 후 취소 요청 | 취소 가능 여부를 확인하지 못한 경우 요청을 처리하지 않고 안내 |
| 처리 중 좌석 변경 | 최신 예약 상태를 다시 불러오고 중복 처리 방지 |
| 취소 사유 미선택 | 사유 선택 전에는 취소 확정 버튼 비활성화 |
| 오류 | 예약과 회원권 이력이 일부만 변경되지 않도록 전체 처리 취소 |
완료 조건
- 취소 사유와 취소 시각이 저장된다.
- 좌석이 비면 첫 번째 대기 회원에게 안내 절차가 시작된다.
- 12시간 이내 취소는 원장 처리 항목에 표시된다.
- 무료 취소는 회원권 이력과 잔여 횟수가 일치한다.
다음 화면
- 대기 상세:
[member] - 다른 수업 예약:
[member-class-list] - 빈자리 수락 상태 확인:
[vacancy-accept]
6.4 회원 화면 [member]
목적
특정 수업의 대기 신청 상태와 현재 내 대기 순번을 자세히 보여준다.
진입 조건
[member-class-list]에서 대기 신청 완료[member-reservations]에서 대기 중인 수업 선택- 대기 상태 안내 링크 접속
사용자가 보는 정보
- 수업 날짜·시간·수업명
- 대기 신청 시각
- 현재 내 대기 순번
- 전체 대기 인원
- 대기 운영 기준
- 빈자리 제안 시 응답 시간
- 회원권 미차감 안내
- 개인정보 비공개 안내
예시:
현재 대기 3번입니다.
앞선 대기 회원의 예약 확정 또는 대기 수락 만료에 따라 순번이 달라질 수 있습니다.
할 수 있는 행동
- 최신 대기 순번 새로 확인
- 내 예약·대기 목록으로 이동
- 다른 수업 보기
- 대기 신청 취소는 지원 여부 확인 필요
상태
| 상태 | 화면 처리 |
|---|---|
| 정상 | 현재 순번과 마지막 갱신 시각 표시 |
| 순번 변경 | 변경된 순번을 즉시 표시 |
| 수락 대기 | 응답 마감 시각과 문자 링크 확인 안내 |
| 승인 대기 | “빈자리를 수락했어요. 원장 승인을 기다리고 있습니다.” |
| 예약 확정 | 대기 순번 대신 확정된 예약 정보 표시 |
| 대기 수락 만료 | 제안 발송·만료 시각과 현재 처리 결과 표시 |
| 빈 상태 | 해당 수업의 활성 대기 신청이 없다는 안내 |
| 오류 | 순번을 임의로 계산하지 않고 다시 불러오기 안내 |
완료 조건
- 다른 회원의 개인정보가 노출되지 않는다.
- 대기 순번은 서버에 저장된 신청 시각과 등록 순번으로 계산된다.
- 화면의 순번과 원장 화면의 순번이 일치한다.
다음 화면
[member-reservations][member-class-list]- 활성 제안이 있는 경우
[vacancy-accept]
6.5 문자 링크에서 여는 빈자리 수락 화면 [vacancy-accept]
목적
대기 회원이 자신에게 제안된 빈자리를 응답 마감 시각 안에 수락한다.
진입 조건
- 대기 회원에게 발송된 문자 링크를 연 경우
- 링크가 해당 회원과 대기 제안 건에 연결된 경우
- 인증 상태가 없으면
[member-phone-auth]를 먼저 완료
사용자가 보는 정보
- 스튜디오명
- 수업 날짜·시간·수업명
- 빈자리 제안 발송 시각
- 날짜가 포함된 응답 마감 시각
- 남은 응답 시간
- 회원권 잔여 횟수와 만료일
- 수락 후
승인 대기가 된다는 안내 - 회원권 횟수가 부족한 경우 원장 확인이 필요하다는 안내
예시:
2026년 9월 3일 19:00 그룹 리포머 수업에 자리가 생겼습니다.
2026년 9월 3일 17:20까지 수락해 주세요.
수락 후 원장의 최종 승인을 거쳐 예약이 확정됩니다.
할 수 있는 행동
- 빈자리 수락
- 내 예약·대기 현황 보기
- 응답하지 않고 화면 닫기
첫 개발 범위에서는 별도의 거절 버튼이 확인되지 않았다.
상태
| 상태 | 화면 처리 |
|---|---|
| 수락 성공 | 상태를 승인 대기로 변경하고 원장 확인 안내 |
| 승인 성공 | “예약이 확정됐어요.”와 회원권 처리 결과 표시 |
| 원장 반려 | 반려 결과와 처리 시각 표시 |
| 빈 상태 | 유효한 제안 정보가 없는 경우 링크 확인 안내 |
| 대기 수락 만료 | “응답 시간이 지나 이번 제안이 종료됐어요.”와 만료 시각 표시 |
| 이미 수락 | 다시 처리하지 않고 기존 수락 시각과 승인 상태 표시 |
| 이미 다른 회원에게 배정 | 현재 처리 결과 표시 |
| 잘못된 회원 | 수락을 막고 본인 휴대폰 인증 안내 |
| 변조되거나 잘못된 링크 | 수업 정보와 회원 정보를 노출하지 않고 유효하지 않은 링크 안내 |
| 동시 처리 오류 | 좌석이 중복 확보되지 않도록 요청을 중단하고 최신 상태 표시 |
완료 조건
- 같은 링크를 여러 번 눌러도 한 번만 수락된다.
- 수락 시 좌석이
승인 대기상태로 임시 보류된다. - 원장에게 승인 요청이 생성된다.
- 원장 승인 전에는 예약 확정으로 표시하지 않는다.
다음 화면
- 현재 상태 확인:
[member-reservations] - 원장 처리 화면:
[MS2]
7. 원장 화면 상세
7.1 원장용 날짜별 수업·예약 인원·대기 현황 화면 [owner-class-status]
목적
원장이 날짜별 수업과 예약 인원, 대기 현황, 처리할 업무를 한눈에 확인한다.
진입 조건
- 원장 권한으로 웹서비스에 접속
- 원장 인증 방식은 별도 확인 필요
사용자가 보는 정보
날짜별로 다음 정보를 표시한다.
- 수업 날짜·시간·수업명
- 정원과 예약 인원
- 대기 인원
- 수락 대기 인원
- 승인 대기 인원
- 12시간 이내 취소 처리 대기 건수
- 출석·노쇼 처리 상태
예약 가능,만석,휴강,종료상태- 문자 발송 실패 여부
- 오류 확인 필요 표시
상단 처리 항목:
- 승인 대기
- 곧 만료되는 대기 제안
- 문자 발송 실패
- 취소 예외 처리 대기
- 출석·노쇼 처리 대기
- 잔여 횟수 부족 회원
할 수 있는 행동
- 날짜 변경
- 수업 등록
- 수업 수정
- 수업별 상세 열기
- 승인 대기 건 처리
- 회원 기록 열기
- 오류 수정 화면 열기
상태
| 상태 | 화면 처리 |
|---|---|
| 정상 | 날짜별 수업과 최신 인원 표시 |
| 빈 상태 | “이 날짜에는 등록된 수업이 없어요.”와 수업 등록 버튼 표시 |
| 승인 대기 있음 | 화면 상단에 건수와 가장 오래된 대기 시간 표시 |
| 문자 발송 실패 | 실패 수업과 회원, 재시도 상태 표시 |
| 인원 불일치 | 정원·예약·보류 좌석 계산 오류 경고 |
| 불러오기 오류 | 마지막 갱신 시각을 표시하고 최신 정보 재요청 |
| 일부 처리 실패 | 자동 수정하지 않고 오류 확인 항목에 등록 |
완료 조건
- 수업별 예약 인원과 실제 예약 기록 수가 일치한다.
- 대기 인원과 활성 대기 신청 수가 일치한다.
- 승인 대기 좌석이 남은 좌석 계산에 포함된다.
- 원장이 가장 급한 처리 항목을 첫 화면에서 확인할 수 있다.
다음 화면
- 수업 등록·수정:
[MS1] - 수업 상세:
[class] - 승인 처리:
[MS2] - 회원 기록:
[owner-member-records] - 오류 수정:
[MS3]
7.2 수업별 화면 [class]
목적
원장이 특정 수업의 예약자, 대기 순번, 취소 사유, 문자 제안, 회원 응답, 최종 처리 상태를 시간순으로 확인한다.
진입 조건
[owner-class-status]에서 수업 선택- 승인·오류 알림에서 특정 수업 선택
사용자가 보는 정보
수업 요약
- 수업 날짜·시작·종료 시각
- 수업명
- 정원
- 예약 인원
- 임시 보류 좌석
- 대기 인원
- 무료 취소 마감 시각
- 수업 상태
예약자 목록
- 회원 이름
- 마스킹된 휴대폰 번호
- 예약 확정 시각
- 회원권 잔여 횟수
- 취소 또는 출석 상태
- 노쇼 처리 여부
대기 목록
- 대기 순번
- 대기 신청 시각
- 등록 순번
- 현재 상태
- 제안 발송 시각
- 응답 마감 시각
- 응답 시각
시간순 처리 기록
- 예약
- 취소와 취소 사유
- 빈자리 발생
- 문자 발송 요청과 결과
- 대기 제안
- 대기 수락 만료
- 회원 수락
- 원장 승인 또는 반려
- 회원권 차감·예외 복구
- 출석·노쇼
- 오류 수정
할 수 있는 행동
- 예약자와 대기자 상세 확인
- 승인 대기 처리
- 출석 상태 기록
- 노쇼 기록
- 취소 예외 처리
- 오류 수정 화면 열기
- 수업 정보 수정
상태
| 상태 | 화면 처리 |
|---|---|
| 정상 | 예약자·대기자·처리 기록을 최신 순서로 표시 |
| 대기 없음 | “현재 대기 신청자가 없어요.” |
| 처리 기록 없음 | 수업 등록 기록만 표시 |
| 승인 대기 | 보류 중인 좌석과 대기 시간을 강조 |
| 문자 실패 | 실패 코드와 재시도 횟수 표시 |
| 순번 불일치 | 자동 재배정하지 않고 오류 확인 표시 |
| 정원 초과 | 추가 승인을 막고 오류 수정 안내 |
| 불러오기 오류 | 마지막으로 확인된 자료임을 표시하고 재시도 제공 |
완료 조건
- 모든 처리 기록에 시각과 처리 주체가 남는다.
- 대기 목록의 순번과 회원 화면의 순번이 일치한다.
- 기존 기록이 수정되면 원본과 조정 이력을 함께 확인할 수 있다.
다음 화면
- 수업 수정:
[MS1] - 승인 처리:
[MS2] - 회원 기록:
[owner-member-records] - 오류 수정:
[MS3] - 목록 복귀:
[owner-class-status]
7.3 원장용 회원별 회원권 횟수·취소 예외·노쇼 기록 화면 [owner-member-records]
목적
원장이 회원별 회원권 잔여 횟수, 취소 예외, 노쇼, 예약·대기 이력을 확인하고 처리한다.
진입 조건
[owner-class-status]에서 회원 관리 선택[class]에서 회원 이름 선택- 취소 예외 또는 노쇼 처리 항목 선택
사용자가 보는 정보
회원 요약
- 회원 이름
- 마스킹된 휴대폰 번호
- 휴대폰 인증 여부
- 활성 상태
- 내부 메모
회원권
- 회원권명
- 총 횟수
- 현재 잔여 횟수
- 시작일
- 만료일
- 사용 상태
이용 기록
- 예약
- 대기 신청
- 무료 취소
- 12시간 이내 취소
- 예외 복구
- 출석
- 지각 출석
- 노쇼
- 보류
- 대기 제안 무응답
회원권 이력
- 처리 일시
- 처리 유형
- 증감 횟수
- 처리 전후 잔여 횟수
- 연결 수업
- 원본 이력
- 처리자
- 처리 사유
할 수 있는 행동
- 회원 검색
- 회원 상세 확인
- 12시간 이내 취소의
차감또는미차감선택 - 처리 이유 입력
- 예외 복구 승인
- 노쇼 기록
- 회원권 이력 확인
- 회원·회원권 신규 등록
- 잘못된 기록 수정
12시간 이내 취소 처리
| 선택 | 처리 |
|---|---|
| 차감 | 기존 차감을 유지하고 선택 이유 기록 |
| 미차감 | 원본 차감 이력에 연결된 예외 복구 +1회 생성 |
| 나중에 확인 | 처리 대기 상태 유지 |
상태
| 상태 | 화면 처리 |
|---|---|
| 정상 | 회원 요약과 최신 이력 표시 |
| 회원 없음 | “등록된 회원이 없어요.”와 회원 등록 버튼 표시 |
| 검색 결과 없음 | 입력한 이름 또는 번호와 일치하는 회원이 없다는 안내 |
| 예외 처리 대기 | 미처리 취소 건과 경과 시간 표시 |
| 이력 불일치 | 현재 잔여 횟수와 회원권 이력 합계가 다르다는 경고 |
| 중복 회원 | 같은 휴대폰 번호로 등록된 회원 기록 표시 |
| 저장 오류 | 기존 값을 유지하고 새 조정 이력을 생성하지 않음 |
완료 조건
- 잔여 횟수와 회원권 이력 합계가 일치한다.
- 예외 복구는 반드시 원본 이력과 연결된다.
- 노쇼에는 연결 수업, 처리자, 처리 시각이 남는다.
- 기존 이력은 삭제하거나 덮어쓰지 않는다.
다음 화면
- 회원·회원권 등록:
[MS4] - 오류 수정:
[MS3] - 연결 수업:
[class] - 목록 복귀:
[owner-class-status]
7.4 원장용 수업 등록·수정 화면 [MS1]
목적
원장이 수업 날짜, 시간, 수업명, 정원과 예약·대기 가능 상태를 등록하거나 수정한다.
진입 조건
[owner-class-status]에서 수업 등록 선택[owner-class-status]또는[class]에서 수업 수정 선택
사용자가 보는 정보
- 수업명
- 수업 날짜
- 시작 시각
- 종료 시각
- 정원
- 예약 가능 여부
- 대기 신청 가능 여부
- 현재 예약·대기 인원
- 계산된 무료 취소 마감 시각
- 수업 상태
할 수 있는 행동
- 새 수업 등록
- 수업명·날짜·시간 수정
- 정원을 5~15명 범위에서 설정
- 예약과 대기 신청 상태 변경
- 휴강 처리
- 변경 취소
상태
| 상태 | 화면 처리 |
|---|---|
| 등록 성공 | 수업 목록에 새 수업 표시 |
| 수정 성공 | 변경된 날짜·시간·정원과 처리 시각 표시 |
| 빈 상태 | 새 수업 입력 양식 표시 |
| 정원 범위 오류 | 5명 미만 또는 15명 초과 저장 방지 |
| 종료 시각 오류 | 종료 시각이 시작 시각보다 빠르면 저장 방지 |
| 정원 축소 오류 | 현재 예약·보류 좌석보다 작은 정원으로 저장 방지 |
| 중복 수업 경고 | 같은 날짜·시간의 기존 수업을 보여주고 확인 필요 표시 |
| 저장 실패 | 기존 수업 정보를 유지하고 재시도 안내 |
완료 조건
- 날짜·시작 시각·종료 시각·수업명·정원이 저장된다.
- 무료 취소 마감 시각이 수업 시작 12시간 전으로 계산된다.
- 수정 전후 값과 수정 시각이 기록된다.
- 예약자나 대기자가 있는 수업의 중요 변경은 기록으로 남는다.
다음 화면
- 저장 후
[owner-class-status] - 수업 상세 확인
[class]
7.5 원장용 빈자리 수락 승인 화면 [MS2]
목적
원장이 빈자리를 수락한 회원의 회원권 상태와 응답 정보를 확인하고 최종 예약 승인 또는 반려한다.
진입 조건
- 회원이
[vacancy-accept]에서 빈자리 수락 완료 [owner-class-status]의 승인 대기 항목 선택[class]의 승인 대기 회원 선택- 원장 확인 링크 접속
사용자가 보는 정보
- 회원 이름과 마스킹된 휴대폰 번호
- 수업 날짜·시간·수업명
- 대기 신청 시각과 당시 대기 순번
- 빈자리 제안 발송 시각
- 응답 마감 시각
- 회원 수락 시각
- 승인 대기 경과 시간
- 임시 보류 좌석 수
- 회원권명, 잔여 횟수, 만료일
- 최근 취소 예외와 노쇼 기록
- 회원권 부족 또는 만료 경고
- 수락 전후 시간순 처리 기록
할 수 있는 행동
- 예약 승인
- 예약 반려
- 승인 또는 반려 이유 입력
- 회원 상세 열기
- 수업 상세 열기
승인 처리
승인 시 다음 정보가 함께 처리되어야 한다.
- 예약 상태를
예약 확정으로 변경 - 좌석 보류를 실제 예약 좌석으로 변경
- 대기 상태를 승인 완료로 변경
- 회원권 횟수 처리
- 처리자와 처리 시각 기록
- 같은 좌석에 대한 다음 대기 안내 중단
반려 처리
- 승인 대기 상태 종료
- 좌석 보류 해제
- 반려 이유 기록
- 다음 대기 회원에게 순차 안내 시작
상태
| 상태 | 화면 처리 |
|---|---|
| 승인 성공 | 예약 확정과 회원권 처리 결과 표시 |
| 반려 성공 | 다음 대기 회원 안내 시작 여부 표시 |
| 빈 상태 | 현재 승인 대기 건이 없다는 안내 |
| 회원권 부족 | 경고를 표시하되 원장이 예약 여부를 결정할 수 있게 함 |
| 회원권 만료 | 만료일과 원장 확인 필요 표시 |
| 이미 처리됨 | 중복 승인하지 않고 기존 처리자와 시각 표시 |
| 좌석 없음 | 승인을 막고 정원·보류 좌석 오류 확인 안내 |
| 동시 승인 | 한 요청만 성공하고 나머지는 최신 상태 표시 |
| 저장 오류 | 승인과 회원권 횟수가 일부만 처리되지 않도록 전체 처리 취소 |
완료 조건
- 승인 후 정원을 넘지 않는다.
- 한 빈자리에 한 회원만 승인된다.
- 회원권 처리와 예약 확정이 함께 완료된다.
- 반려 후 다음 대기 회원 안내가 누락되지 않는다.
- 모든 결정에 원장과 처리 시각이 남는다.
다음 화면
- 수업 상세:
[class] - 회원 상세:
[owner-member-records] - 목록:
[owner-class-status]
7.6 원장용 오류 수정·조정 이력 화면 [MS3]
목적
중복 예약, 대기 순서 누락, 잘못된 취소·노쇼·회원권 횟수 처리를 원본 기록을 보존하며 수정한다.
진입 조건
[class]에서 오류 수정 선택[owner-member-records]에서 회원권 이력 수정 선택[owner-class-status]의 오류 확인 항목 선택- 시스템이 인원·회원권 이력 불일치를 감지한 경우
사용자가 보는 정보
- 오류 유형
- 관련 회원과 수업
- 원본 예약·대기·출석·회원권 이력
- 현재 화면에 표시되는 값
- 수정 전 값
- 연결된 제안·승인·차감 기록
- 기존 수정 이력
- 오류가 좌석과 회원권에 미치는 영향
할 수 있는 행동
- 오류 유형 선택
- 수정할 값 입력
- 수정 이유 입력
- 원본 이력에 연결된 조정 이력 추가
- 수정 전후 결과 미리 확인
- 수정 확정
- 수정 취소
지원할 오류 유형:
- 중복 예약
- 대기 순서 누락
- 잘못된 예약 취소
- 잘못된 노쇼
- 회원권 횟수 오류
- 잘못된 예외 복구
- 잘못된 원장 승인 또는 반려
상태
| 상태 | 화면 처리 |
|---|---|
| 수정 성공 | 원본과 새 조정 이력을 함께 표시 |
| 빈 상태 | 선택된 오류 기록이 없다는 안내 |
| 수정 이유 미입력 | 저장 버튼 비활성화 |
| 원본 이력 없음 | 수정 진행을 막고 원본 확인 안내 |
| 다른 처리와 충돌 | 최신 기록을 다시 불러온 뒤 재확인 요청 |
| 잔여 횟수 불일치 | 수정 후 예상 잔여 횟수와 이력 합계를 비교 |
| 저장 오류 | 원본을 유지하고 조정 이력을 생성하지 않음 |
완료 조건
- 원본 기록을 삭제하거나 덮어쓰지 않는다.
- 새 조정 이력이 원본 이력과 연결된다.
- 수정 전후 값, 사유, 처리자, 처리 시각이 남는다.
- 좌석 수와 회원권 잔여 횟수를 다시 계산한다.
- 수정 후에도 정원을 넘지 않는다.
다음 화면
- 연결 수업:
[class] - 연결 회원:
[owner-member-records] - 날짜별 현황:
[owner-class-status]
7.7 원장용 회원·회원권 초기 등록 화면 [MS4]
목적
기존 회원과 서비스 밖에서 결제한 횟수제 회원권 정보를 등록한다.
진입 조건
[owner-member-records]에서 회원 등록 선택- 기존 회원의 회원권을 새로 연결하는 경우
사용자가 보는 정보
회원 정보
- 이름
- 휴대폰 번호
- 활성 상태
- 내부 메모
회원권 정보
- 회원권명
- 총 횟수
- 현재 잔여 횟수
- 시작일
- 만료일
- 등록 경로
할 수 있는 행동
- 회원 등록
- 기존 회원 검색
- 휴대폰 번호 중복 확인
- 횟수제 회원권 등록
- 회원과 회원권 연결
- 입력 취소
상태
| 상태 | 화면 처리 |
|---|---|
| 등록 성공 | 회원과 회원권 요약 표시 |
| 빈 상태 | 새 회원 입력 양식 표시 |
| 휴대폰 번호 중복 | 기존 회원 기록을 보여주고 중복 등록 방지 |
| 총 횟수 오류 | 0 이하의 총 횟수 저장 방지 |
| 잔여 횟수 오류 | 잔여 횟수가 총 횟수보다 크면 확인 필요 표시 |
| 날짜 오류 | 만료일이 시작일보다 빠르면 저장 방지 |
| 저장 실패 | 일부 정보만 등록하지 않고 전체 요청 취소 |
완료 조건
- 회원에게 고유한 회원 ID가 생성된다.
- 휴대폰 번호가 회원 기록에 연결된다.
- 회원권 등록 이력이 생성된다.
- 현재 잔여 횟수와 등록 이력의 합계가 일치한다.
- 이후 회원이 해당 번호로 인증할 수 있다.
다음 화면
- 등록된 회원 확인:
[owner-member-records] - 수업 현황:
[owner-class-status]
8. 핵심 사용 흐름
8.1 원장이 첫 운영을 준비하는 흐름
원장 접속
→ 기존 회원 등록 [MS4]
→ 회원권 총 횟수·잔여 횟수·기간 입력
→ 수업 등록 [MS1]
→ 수업 목록 확인 [owner-class-status]
→ 카카오톡 단체방에 예약 링크 공유
완료 조건
- 기존 회원이 휴대폰 번호로 인증된다.
- 수업 정원이 5~15명 범위로 등록된다.
- 예약 링크를 연 회원이 해당 스튜디오의 수업 목록을 볼 수 있다.
8.2 회원이 수업을 예약하는 흐름
카카오톡 예약 링크
→ 휴대폰 번호 입력
→ 인증번호 확인
→ 수업 목록
→ 자리가 있는 수업 선택
→ 예약하기
→ 예약 확정
→ 내 예약 확인
완료 조건
- 같은 회원의 동일 수업 중복 예약이 없다.
- 수업 정원을 넘지 않는다.
- 예약 정보와 회원권 이력이 함께 저장된다.
- 무료 취소 마감 시각이 표시된다.
8.3 회원이 대기 신청하는 흐름
만석 수업 선택
→ 현재 대기 인원 확인
→ 대기 신청
→ 신청 시각과 등록 순번 저장
→ 현재 내 대기 순번 표시
→ 내 예약·대기 화면에서 재확인
완료 조건
- 대기 신청 순서가 변경되지 않는다.
- 같은 수업에 중복 대기 신청할 수 없다.
- 회원은 다른 회원의 개인정보를 볼 수 없다.
8.4 취소 자리 자동 안내 흐름
기존 예약자 취소
→ 좌석 1개 발생
→ 활성 대기 신청 중 가장 빠른 회원 확인
→ 문자 수락 링크 발송
→ 상태를 수락 대기로 변경
→ 응답 마감 시각 저장
회원이 응답하지 않은 경우:
응답 마감 시각 도달
→ 대기 수락 만료
→ 다음 대기 회원 확인
→ 새 문자 링크 발송
완료 조건
- 동시에 여러 회원에게 같은 좌석을 제안하지 않는다.
- 문자 발송 요청과 실제 전달 결과를 구분해 기록한다.
- 자동 처리 중 서버 장애가 발생해도 누락된 만료 건을 다시 확인한다.
8.5 빈자리 수락과 원장 승인 흐름
회원이 문자 링크 열기
→ 필요하면 휴대폰 인증
→ 수업과 응답 마감 시각 확인
→ 빈자리 수락
→ 좌석 임시 보류
→ 승인 대기
→ 원장 승인 화면 표시
원장 승인:
회원권과 예외 상태 확인
→ 예약 승인
→ 예약 확정
→ 회원권 횟수 처리
→ 회원 화면에 확정 표시
원장 반려:
반려 이유 입력
→ 좌석 보류 해제
→ 다음 대기 회원에게 제안
8.6 회원이 예약을 취소하는 흐름
내 예약 선택
→ 취소 선택
→ 지각·건강·개인 사정·기타 중 사유 선택
→ 필요하면 상세 내용 입력
→ 취소 결과 확인
무료 취소:
무료 취소 마감 이전
→ 예약 취소
→ 회원권 미차감 또는 기존 차감 복구
→ 빈자리 대기 안내 시작
12시간 이내 취소:
무료 취소 마감 이후
→ 예약 취소
→ 원장 처리 대기
→ 원장이 차감 또는 미차감 선택
→ 이유 기록
→ 미차감이면 예외 복구 이력 추가
8.7 노쇼 기록 흐름
수업 종료
→ 원장이 수업별 예약자 확인
→ 출석 / 지각 출석 / 노쇼 / 보류 선택
→ 노쇼 확정
→ 회원별 기록에 반영
→ 회원권 처리와 연결
완료 조건
- 예약 시 이미 횟수를 차감했다면 노쇼에서 다시 차감하지 않는다.
- 노쇼 기록과 회원권 이력이 연결된다.
- 노쇼 예외는 기존 노쇼를 삭제하지 않고 복구 이력을 추가한다.
9. 화면별 기능 연결
| 화면 | 주요 연결 기능 |
|---|---|
[member-phone-auth] | F13, F24 |
[member-class-list] | F14, F25, MF3 |
[member-reservations] | F14, F18, F26 |
[member] | F3 |
[vacancy-accept] | F6, F17, F28, MF3 |
[owner-class-status] | F15, F23, MF2 |
[class] | F15, F20, F21 |
[owner-member-records] | F9, F18, F19, F20, F29 |
[MS1] | F23 |
[MS2] | F7, F28, MF4 |
[MS3] | F22 |
[MS4] | MF1 |
첫 개발과 후속 기능의 구분
- 취소 사유 입력은 F26에 따라 첫 개발에 포함한다.
- 기본 노쇼 기록은 F20에 따라 첫 개발에 포함한다.
- 노쇼 횟수를 자동으로 대기 우선순위나 예약 제한에 반영하는 기능은 F10의 후속 범위다.
- 첫 개발에서는 확정된
12시간·2시간·1시간·10분기준을 고정 적용한다. - 원장이 운영 규칙을 직접 바꾸는 설정 화면은 F11의 후속 범위다.
- 원장의 월 구독료 결제 F30은 후속 기능이다. 제공된 화면 목록에 결제 화면이 없으므로 화면과 결제 방식은 별도 확정이 필요하다.
10. 확인 필요 사항
우선 확인이 필요한 운영 규칙
-
회원권 횟수 차감 시점
- 가정: 예약 확정 시 1회 차감하고, 무료 취소 시 1회를 복구한다.
- 회원이 직접 선택한 내용은 아니므로 개발 전에 확정이 필요하다.
-
일반 예약에서 회원권 횟수가 부족한 경우
- 대기 수락 후 부족한 경우는 원장이 결정한다.
- 자리가 있는 수업을 바로 예약할 때 부족한 회원을 막을지, 원장 승인으로 넘길지는 확인 필요하다.
-
회원권 부족 상태에서 원장이 예약을 승인한 경우
- 잔여 횟수를 음수로 만들지, 회원권 등록 후 차감할지, 횟수 처리를 별도로 보류할지 확인 필요하다.
- 회원권 결제와 충전은 서비스 밖에서 계속 처리한다.
-
대기 수락 만료 후 기존 대기 신청
- 현재 빈자리 제안에서는 다음 회원에게 넘어간다.
- 만료된 회원의 대기 신청을 종료할지, 다음 빈자리에서는 기존 순번을 유지할지 확인 필요하다.
-
원장 승인 대기 좌석의 만료 시간
- 회원 수락 후 원장이 언제까지 승인해야 하는지 확인 필요하다.
- 만료되면 자동 반려할지, 좌석 보류를 계속 유지할지도 정해야 한다.
-
수업 시작 10분 미만에 빈자리가 생긴 경우
- 확정 규칙대로 10분을 주면 응답 마감이 수업 시작 이후가 될 수 있다.
- 응답 마감을 수업 시작 시각으로 제한할지 확인 필요하다.
-
문자 발송 실패 처리
- 같은 회원에게 자동 재시도할지, 원장이 확인할지, 다음 대기 회원에게 넘길지 확인 필요하다.
-
원장 반려·예약 확정 결과 알림
- 회원 화면에는 결과를 표시한다.
- 결과를 문자로도 보낼지는 확인 필요하다.
-
대기 신청 취소
- 회원이 직접 대기 신청을 취소할 수 있게 할지 확인 필요하다.
-
수업 수정·휴강 알림
- 예약자가 있는 수업의 시간 변경이나 휴강 시 회원에게 문자를 보낼지 확인 필요하다.
-
원장 인증
- 원장 화면의 로그인 방식과 인증 유지 기간, 비밀번호 재설정 방식이 확인되지 않았다.
연동 및 운영 확인
- 휴대폰 번호 소유 확인용 인증 수준
- 인증번호 만료 시간과 입력 실패 제한
- 문자 발송 업체와 발신번호 등록
- 문자별 발송 요청·성공·실패·재시도 기록 방식
- 회원 연락처, 예약·취소·노쇼 기록의 보관 기간
- 원장 화면에서 휴대폰 번호 전체를 볼 수 있는 권한
- 월 구독료에 문자 비용을 포함할지 별도 과금할지
- 로고, 대표 색상, 스튜디오별 이름 표시 방식