불친절한 예약 시스템
제가 정말 좋아하는 방탈출 테마가 있습니다.
서울 여러 지점에 걸쳐 다양한 테마를 운영하는 아주 유명한 방탈출 카페입니다.
이 방탈출 카페는 온라인 예약제로 운영되는데요,
전체 예약 프로세스는 다음과 같습니다.
<전체 예약 프로세스>
1. 예약 페이지로 이동
2. 지점/날짜/테마 선택
3. 예약 정보 입력
4. 결제
5. 예약 완료
이 예약 프로세스에서 정말 불친절하다고 느낀 부분은 바로
[1. 예약 페이지로 이동] 단계, [2. 지점/날짜/테마 선택] 단계와 [3. 예약 정보 입력] 단계입니다.
하나씩 살펴보면요,
하나. [1. 예약 페이지로 이동]: 1단계부터 불친절하다.
가장 먼저 예약 페이지로 이동할 때 이런 알림창을 보게 됩니다.
접속자 수가 많아서 다음에 다시 시도하세요. (20)
그리고 다시 메인 페이지로 랜딩되다가도 400 Bad Request 에러 페이지로 랜딩됩니다. 😨
예약페이지로 이동하기 위해선 '뒤로가기'도 안되고 다시 메인 페이지로 이동 후, '예약하기' 버튼을 눌러 예약 페이지로 이동해야 합니다.
알림창 확인 버튼을 누르고 다시 시도하면, '접속자 수가 많아서 다음에 다시 시도하세요.' 라는 응답을 받기 일쑤입니다.
그리고 알림 메시지에 표기된 괄호 안의 숫자는 아마 접속 대기자 수로 추측이 됩니다.
저처럼 예약 중인 사람들이 몇 명인지 알려줬으면 좋을 텐데 말이죠. 🤔 (포기라도 하니까요)
둘. [2. 지점/날짜/테마]: 어찌어찌 1단계를 통과해도 2단계(지점/테마/날짜 선택 단계)에서 다시 1단계로 돌아간다.
제가 정말 실망했던 예약 단계입니다.
2단계에서 예약자가 해야 하는 행동들이 있습니다.
<2단계에서 예약자가 해야 하는 행동들>
1. 지점을 선택한다.
2. 날짜를 선택한다.
3. 테마를 선택한다.
4. 시간을 선택한다.
5. 예약하기 버튼을 누른다.
문제가 되는 부분은 매 선택을 위한 클릭마다 위에서 봤던 알림창이 뜬다는 겁니다. 🤯
이 예약 페이지는 SPA로 구현되어 있는데,
사용자가 예약하기 위해 클릭이 필요한 1. 지점 선택, 2. 날짜 선택, 3. 테마 선택을 누를 때마다 접속자가 많으면 보고 싶지 않은 알림창이 뜨고, 다시 400 Bad Request 에러 페이지로 이동 돼버립니다. 🤯
만약 지점을 클릭할 때 알림창이 안 뜨는 행운을 만나도, 날짜를 클릭하거나(혹은 다음 달로 이동하는 버튼을 누르거나) 테마를 클릭할 때 지옥에서 온 알림창과 함께 메인 페이지로 이동 돼버립니다. 🤯
또다시 1단계를 힘들게 통과해야 하죠... (에휴.. 그 사이에 이미 누가 예약 했겠죠.. 😮💨)
셋. [3. 예약 정보 입력]: 힘들게 3단계까지 와서 이미 예약된 시간이라 예약이 되지 않는다.
이 부분이 문제가 되는 게 의아해하실 수도 있는데요, 물론 일반적인 예약 시스템이라면 이미 예약된 시간에는 예약이 되지 않는 것이 정상이죠.
하지만 1단계와 2단계에서 선착순으로 예약자를 받는 것처럼 보이는데, 3단계에서 이미 예약이 되었다는 알림창을 보게 되기 일쑤이기 때문입니다.
이 3단계를 보기 위해 수십 번의 클릭을 1단계부터 해왔지만, 막상 3단계에 와서 신나게 입력하다가 예약이 이미 됐다는 알림을 받으면 정말 기분이 좋지 않게 되죠. 🫣
다시 3단계로 오기 위해 수십 번의 클릭을 해야 하는데, 어느 유저가 좋아할까요?
차라리 2단계까지는 접속 제한을 하지 않되, 선착순으로 예약을 받았더라면 좀 더 유저 친화적인 예약 시스템이 아닐까요?
답답하니까 직접 만들게요
이런 문제들을 겪고 해당 사이트에 불친절한 예약 시스템을 개선해 달라는 건의를 몇 번 했으나, 불행히도 아직 개선되지 않았습니다.
백문불여일견(百聞不如一見)
저는 오늘도 포기하지 않고 하고 싶은 방탈출 예약에 도전했는데요,
그러다 문득 유저 친화적인 예약 시스템을 구현해서 직접 보여주면 개선해 줄까?라는 생각이 들었습니다.
물론, 이미 (불친절하지만) 완성된 시스템을 운영하는 입장에서 선뜻 개선하기가 쉽지 않을 수 있습니다.
하지만, 포기를 모르는 저는 예약에 도전할 때마다 고통을 받고 답답함을 호소하지만, 이를 풀 곳이 없습니다. 정말 재밌어 보이는 방탈출이거든요.
그래서 직접 안정적이고 유저 친화적인 시스템을 보여드려서 제가 좋아하는 방탈출 카페의 예약 시스템이 개선되도록 설득하고자 합니다. (저도 성장하구요)
마일스톤 설정하기
프로젝트의 마일스톤들은 다음과 같은 우선순위로 정했습니다.
마일스톤 1. 어드민 시스템 구현: 예약 정보를 관리하는 시스템
지점/일자/테마/시간 등 방탈출에 관련된 예약 정보를 등록/수정/삭제 할 수 있는 시스템을 먼저 구현합니다.
우선순위가 가장 먼저인 이유로는
1) 어드민 페이지는 굳이 SPA 로 구현하지 않아도 된다. => 개발이 빠르다.
2) 어드민 시스템의 수정/삭제 api 와 예약 시스템의 예약 api 가 충돌을 일으킬 수 있는 문제를 예약 시스템 구현 시 잡을 수 있다.
2)에 대해 부연 설명을 하자면, 관리자가 어떤 문제로 운영 시간에 방탈출 테마의 정보를 수정해야 할 때 예약자가 예약을 하는 상황에서 발생할 수 있는 문제입니다.
관리자가 방탈출 테마를 수정하는 중이라면, 예약자가 수정 중인 방탈출 테마를 예약하는 프로세스에 있더라도 최종적으로 예약이 불가능하도록 막아야 하는 부분입니다.
마일스톤 2. 오버 부킹이 없는 선착순 예약 시스템
숙박이나 항공권 같은 예약 시스템에선 예약 건이 취소되는 상황이 빈번하고, 그럴 때 발생하는 손실이 크다고 합니다.
그래서 운영 정책상 오버 부킹을 받는 곳이 많습니다.
하지만 일반적으로 방탈출은 숙박이나 항공권과 비교해서 규모가 상대적으로 작고, 그에 따라 취소되는 상황이 적을 것입니다.
예약 취소에 의한 손실보다 오버 부킹으로 인한 손실(보상 또는 이미지 하락 등)이 더 클 것으로 생각됩니다.
따라서 이 프로젝트에서는 오버 부킹이 없는 선착순 예약 시스템을 구현합니다.
다음 포스팅에선 마일스톤 1. 어드민 시스템 구현에 필요한 데이터 모델링과 프로젝트 세팅에 대해 포스팅할 예정입니다.
읽어주셔서 감사합니다.
'Project' 카테고리의 다른 글
[올려올려 라디오] 올려올려 라디오 서비스 개발기 - 2 (2) | 2024.10.08 |
---|---|
[올려올려 라디오] 올려올려 라디오 서비스 개발기 - 1 (4) | 2024.10.07 |
[예약 대기 시스템] 4. 컨테이너 환경에서 테스트하기 (Testcontainers) (5) | 2024.09.16 |
[예약 대기 시스템] 3. 프로젝트 설정 (어드민 시스템) (4) | 2024.09.13 |
[예약 대기 시스템] 2. 어드민 시스템 데이터 모델링 (개체-관계 모델, ERD) (2) | 2024.09.12 |