골프장 락커 배정 시스템

비개발자 공유용: 정의서와 더미 데이터 프로토타입

아래 화면은 더미 데이터 기반 테스트용입니다. 고객명 선택 후 실제 방문 시간을 넣고 자동 확정을 눌러보세요.

골프장 락커 배정 시스템 최종 정의

1. 목적

이 시스템의 목적은 락커 번호를 단순 순번으로 배정하는 것이 아니라, 회원 간 환복 공간이 겹치지 않도록 D-1 가배정을 수행하고 D-Day 방문 시점에 자동 확정하는 것이다.

현장에서 매번 직원이 다시 판단하게 만들면 기존 수기 운영과 다르지 않다. 따라서 핵심 방향은 다음과 같다.

D-1에 가능한 한 정확한 가배정을 만든다.

D-Day에는 고객명 입력 후 시스템이 자동 검증한다.

문제 없으면 바로 배정완료 및 출력한다.

예외 상황에서만 자동 대체한다.

시스템이 자동 처리할 수 없는 극소수 상황만 직원 확인으로 보낸다.

VVIP 등 변경 불가 배정은 절대 자동 변경하지 않는다.

2. 핵심 개념

2.1 가배정

D-1에 예약정보와 고객정보를 기준으로 미리 계산한 후보 락커 번호다.

가배정은 고객에게 안내되기 전 상태이며, 시스템이 최적 후보로 잡아둔 값이다. 단, VVIP 지정 번호처럼 잠금 배정인 경우에는 사실상 고정값으로 취급한다.

2.2 방문 시 자동 확정

D-Day에 고객이 방문하면 직원은 고객명을 입력한다.

시스템은 가배정 번호를 현재 시점 기준으로 자동 검사한다.


고객명 입력

-> 가배정 번호 확인

-> 현재 IN 사용 상태 확인

-> OUT 예상 복귀 충돌 확인

-> 잠금 배정 여부 확인

-> 문제 없으면 바로 배정완료

-> 문제 있으면 자동 대체 후보 1개 출력

-> 자동 처리 불가 시 직원 확인

2.3 자동대체

가배정 번호가 실제 방문 시점에 충돌되는 경우, 시스템이 가장 적합한 다른 존/번호를 자동으로 선택하는 것이다.

직원에게 후보 여러 개를 비교하게 하지 않는 것이 원칙이다. 후보 목록은 상세 보기에서만 확인하도록 한다.

2.4 잠금 배정

VVIP 지정락커, 의전상 변경 불가 고객 등 절대 바꾸면 안 되는 배정이다.

잠금 배정은 충돌이 있어도 자동 변경하지 않는다. 충돌이 발생하면 변경 가능한 다른 고객 또는 현재 고객을 대체해야 한다.

3. 고객정보 연동과 확장 컬럼

고객관리 시스템 원본 DB에 컬럼을 추가하기 어렵다고 가정한다.

따라서 락커 배정 시스템은 기본 고객정보를 연동으로 가져온 뒤, 자체 확장 컬럼을 별도로 관리한다.


고객관리 시스템

-> 기본 고객정보 연동

-> 락커 배정 시스템에 고객 리스트 저장 또는 캐시

-> 락커 배정용 확장 컬럼 관리

-> 배정 시 원본 등급이 아니라 배정용 등급/순위 기준 사용

필요한 확장 컬럼은 다음과 같다.

컬럼설명
locker_member_grade락커 배정용 등급. VVIP, VIP, 일반
locker_priority_rank등급 내 우선순위. 예: VVIP 1번, VVIP 10번
locker_fixed_no지정 락커 번호
locker_preferred_zone선호 존
locker_protected_zone_required보호 존 필요 여부
locker_condition_note조건부 요청
locker_staff_memo직원 참고 메모
change_policy변경 정책. LOCKED, APPROVAL, FLEXIBLE
lock_reason변경 불가 또는 승인 필요 사유

4. 우선순위 설정

우선순위는 개발단에서 하드코딩하면 안 된다.

일반적인 시스템 권한 설정처럼 관리자 화면 또는 팝업에서 순서를 조정할 수 있어야 한다.

기본 디폴트 순서는 제공하되, 골프장 상황에 맞게 수정 가능해야 한다.

기본 순서 예시는 다음과 같다.

1. VVIP 내부 순위

2. VIP 내부 순위

3. 변경 불가 지정락커

4. 보호 존

5. 일반 지정락커

6. 지정 존/위치 선호

7. 조건부 요청

8. 일반 회원 분산

9. 비회원 실시간 추천

예를 들어 어떤 골프장은 VVIP 내부 순위보다 지정락커를 더 강하게 볼 수 있다. 이 경우 설정 화면에서 순서를 변경해야 한다.

5. 시간 기준

5.1 티타임 기준만으로는 부족함

기존 프로토타입처럼 티타임 기준으로만 ±40분을 검사하면 실제 현장과 맞지 않는다.

예를 들어 08:00 티타임 고객과 08:50 티타임 고객은 티타임 기준으로는 겹치지 않아 보일 수 있다.

하지만 08:50 고객이 07:00에 먼저 방문하면 08:00 고객과 IN 환복 시간이 겹칠 수 있다.

5.2 IN 시간

IN 시간은 예측이 어렵다.

고객은 티타임 1시간 전, 2시간 전, 그보다 더 일찍 올 수 있다.

따라서 IN은 두 단계로 처리한다.

단계처리 방식
D-1 가배정티타임 기준 사전 위험 구간으로 보수 계산
D-Day 방문실제 체크인 시간 기준으로 실시간 재검사

D-1 기본 설정 예시:


IN 사전 위험 구간 = 티타임 120분 전 ~ 티타임 10분 전

IN 실제 사용 시간 = 30분

5.3 OUT 시간

OUT 시간은 티타임 기준으로 계산 가능하다.

라운딩 시간은 골프장 설정값으로 관리한다.


OUT 예상 시작 = 티타임 + 4시간 30분

OUT 예상 종료 = 티타임 + 5시간 + OUT 사용 시간

기본 설정 예시:


라운딩 시간 범위 = 4시간 30분 ~ 5시간

OUT 사용 시간 = 30분

5.4 충돌 검사 기준

락커 충돌은 번호만이 아니라 존과 시간 구간으로 판단한다.


같은 존 + 시간 구간 겹침 = 충돌

검사 대상:

IN 사전 위험 구간

D-Day 실제 IN 사용 구간

OUT 예상 복귀 구간

현재 사용 중인 존

잠금 배정 존

보호 존

6. D-1 가배정 로직

D-1 가배정은 현장 피로도를 줄이기 위한 핵심 단계다.

여기서 최대한 많은 충돌을 사전에 해결해야 한다.

처리 순서:


1. 익일 예약정보 불러오기

2. 고객관리 시스템에서 기본 고객정보 연동

3. 락커 배정용 등급/순위 매칭

4. VVIP/VIP 내부 순위 기준 정렬

5. LOCKED 배정 선점

6. 지정 락커 반영

7. 지정 존/위치 선호 반영

8. 조건부 요청 확인 표시

9. IN 사전 위험 구간 생성

10. OUT 예상 복귀 구간 생성

11. 남은 회원을 시간 구간과 존 기준으로 분산

12. 충돌 가능 건 표시

13. 직원 검토 후 가배정 저장

7. D-Day 방문 시 자동 확정 로직

현장 직원 화면은 단순해야 한다.

정상 케이스:


고객명 입력

-> 배정완료 E-100

-> 출력

자동대체 케이스:


고객명 입력

-> 기존 가배정 G-180

-> G존 현재 사용 중

-> 시스템 자동 대체 B-142

-> 배정완료 B-142

-> 출력

직원확인 케이스:


고객명 입력

-> 변경 불가 배정 간 충돌

-> 자동 처리 불가

-> 직원 확인 필요

8. 변경 정책

배정 변경 가능 여부는 고객 등급과 별도 컬럼으로 관리해야 한다.

VVIP라고 모두 변경 불가인 것은 아니고, 변경 불가인 VVIP도 있다.

정책의미처리
LOCKED변경 불가자동 변경 금지
APPROVAL승인 후 변경 가능직원 승인 필요
FLEXIBLE자동 변경 가능시스템 자동대체 가능

D-Day 충돌 시 처리 순서:


1. 현재 고객의 change_policy 확인

2. 충돌 대상의 change_policy 확인

3. LOCKED 배정은 유지

4. FLEXIBLE 배정부터 자동대체

5. APPROVAL은 직원 승인 필요

6. 모두 LOCKED면 직원확인으로 중단

9. 비회원 배정

비회원은 전일 개인별 가배정 대상이 아니다.

비회원은 당일 방문 시 실시간으로 추천한다.


비회원 방문

-> 다음 유효 번호 후보 확인

-> 후보 번호의 존 확인

-> 해당 존 사용 중 여부 확인

-> 비어 있으면 바로 출력

-> 사용 중이면 다음 비어 있는 존의 번호 자동 추천

비회원도 직원이 후보를 계속 고르는 구조가 아니라, 시스템이 가장 적합한 1개를 바로 제시하는 구조가 적합하다.

10. 화면 원칙

10.1 D-1 화면

직원이 검토해야 할 화면이다.

필수 기능:

예약 목록

VVIP/VIP 내부 순위 표시

변경 정책 표시

지정 락커/지정 존 표시

IN 위험 구간 표시

OUT 예상 구간 표시

충돌 가능 건 표시

우선순위 설정 팝업

가배정 저장

10.2 D-Day 화면

직원이 판단하지 않도록 단순해야 한다.

필수 기능:

고객명 검색

실제 방문 시간 자동 입력 또는 수동 입력

자동 확정

배정완료 번호 크게 표시

출력 버튼

자동대체 시 변경 사유만 간단히 표시

직원확인 필요 시에만 상세 표시

11. 상태 정의

상태의미
가배정D-1에 계산된 후보
확정가능방문 시 그대로 출력 가능
자동대체실시간 충돌로 시스템이 자동 변경
직원확인자동 처리 불가
배정완료고객에게 안내/출력 완료
사용중현재 IN 또는 OUT 환복 중
잠금배정변경 불가 배정

12. 핵심 문장

이 시스템은 현장에서 매번 직원이 다시 판단하게 만드는 재배정 시스템이 아니라, D-1에 가배정 품질을 최대한 높이고 D-Day에는 고객명 입력만으로 자동 확정 또는 자동대체가 이루어지도록 하는 운영 자동화 시스템이다.

가장 중요한 제약은 회원 간 환복 공간 겹침 방지이며, 시스템은 락커 번호가 아니라 그 번호가 속한 존과 실제 사용 시간 구간을 기준으로 판단해야 한다.