매장 대기 접수와 호출을 연결하는 앱 제작하기
외식업 대기 앱과 직원 관리자 웹의 제작 범위를 설명합니다. 동일 방문의 중복 접수, 순번 동시 변경, 입장 호출과 노쇼, 알림 후 실제 대기표 확인까지 필요한 개발 로직과 검수 기준을 정리합니다.
핵심 요약
1. 고객의 대기 접수와 직원의 입장 호출을 연결해 양쪽 화면에서 같은 접수표를 확인하도록 만듭니다. 2. Next.js로 관리자 입력을 처리하고, PostgreSQL로 DB 변경을 묶으며, Firebase Cloud Messaging으로 호출 알림을 연결합니다. 3. 동일 방문의 중복 접수 방지, 확정 순번의 동시 변경 제어, 노쇼 판단과 실제 대기표 조회는 직접 개발합니다.
대기 접수 앱 제작을 발주할 때는 접수 버튼 이후의 매장 업무까지 정해야 합니다. 고객이 버튼을 두 번 누르거나 직원 두 명이 동시에 다음 손님을 호출해도 안내가 엇갈리지 않아야 합니다. 아래 내용은 이런 상황을 처리하기 위한 구현 방향과 검수 기준입니다.
Next.js로 접수 입력과 직원 권한 확인하기
고객 앱의 접수 화면에서는 매장, 방문 인원, 연락처를 입력받습니다. 관리자 웹 개발에는 현장에서 직원이 대신 접수하는 화면도 포함합니다. Next.js는 폼의 입력값 묶음인 FormData를 서버 함수에서 받아 처리할 수 있습니다.
입력을 받는 기능과 접수를 허용하는 규칙은 나누어 개발합니다. 서버에서 필수 항목, 매장별 접수 가능 인원, 직원의 담당 매장 권한을 확인한 뒤 접수표를 발급합니다. 빈 인원으로 제출하거나 다른 매장의 직원이 접수하려 할 때는 저장을 막고 수정할 항목을 화면에 안내해야 합니다.

동일 방문의 중복 접수 막기
같은 방문에서 접수 버튼을 반복해서 눌러도 대기표는 하나만 발급하도록 만듭니다. 이를 위해 방문을 구분하는 값을 두고, 해당 매장의 기존 접수와 연결해 확인합니다. 연락처가 같다는 이유만으로 다른 날의 방문이나 식사 후 재방문까지 막지 않도록 새 방문을 시작하는 기준도 정합니다.
앱에서 버튼을 잠시 비활성화하는 것만으로 검수를 끝내지 않습니다. 서버에서 같은 방문의 요청을 확인하고, 재전송이면 새 순번 대신 기존 접수표를 돌려주는 로직이 필요합니다. 접수 직후 통신이 끊겨 고객이 다시 눌렀을 때도 관리자 목록에는 한 팀만 나타나야 합니다.
PostgreSQL로 확정 순번의 동시 변경 처리하기
접수 확정에는 새 접수표 저장과 순번 반영이 함께 필요합니다. PostgreSQL의 트랜잭션은 여러 DB 변경을 모두 반영하거나 취소하며, 외부 API 호출은 이 취소 범위에 포함하지 않습니다. 이 기능을 접수표와 순번이 함께 확정되도록 묶는 데 사용합니다.

순번 충돌을 막는 규칙은 별도 개발 범위로 잡습니다. 같은 매장의 순번을 바꾸는 요청은 DB에서 처리 순서를 제어하고, 앞선 변경을 확인한 뒤 다음 순번을 확정하도록 만듭니다. 두 기기에서 동시에 접수했을 때 같은 확정 순번이 발급되거나, 접수표 없이 순번만 반영되는 실패가 없는지 검수합니다.
입장 호출과 노쇼 처리를 직원 화면에 연결하기
직원 대기열에는 접수 순서, 방문 인원, 호출 여부를 표시하고 각 팀에 ‘입장 호출’과 ‘입장 완료’ 버튼을 둡니다. 두 직원이 같은 팀을 호출하면 먼저 처리된 결과를 확인해 중복 호출을 막도록 개발합니다. 한 직원이 처리한 뒤 다른 화면에서도 갱신된 결과를 볼 수 있어야 합니다.
노쇼, 즉 호출 후 오지 않은 손님의 처리 기준도 매장 업무에 맞춰 정합니다. 호출 시각과 대기 시간을 표시하고, 직원이 실제 방문 여부를 확인한 뒤 ‘미입장 처리’를 확정하도록 만듭니다. 입장을 마친 팀에 다른 직원이 미입장 처리를 시도하면 변경을 막고 최신 접수표를 다시 보여주는지 확인합니다.

Firebase Cloud Messaging 알림과 실제 대기표 연결하기
Firebase Cloud Messaging은 여러 플랫폼의 앱에 알림이나 데이터 메시지를 보내는 기능을 제공합니다. 구현할 서비스에서는 DB에 호출 결과를 먼저 확정한 뒤 알림 발송을 요청하도록 연결합니다. 알림 전송이 실패했을 때 직원이 확인하고 다시 보낼 수 있는 기능도 별도로 만듭니다.
고객이 알림을 누르거나 앱을 다시 열면 서버에서 해당 방문의 최신 접수표를 조회하도록 개발합니다. 알림 도착 자체를 입장 완료로 취급하지 않고, 직원이 확인한 결과를 고객 화면에 표시합니다. 이미 입장한 손님이 늦게 도착한 호출 알림을 눌렀을 때도 현재 접수표가 나타나는지 검수합니다.
인원별 접수 기준표와 호출 후 대기 시간·미입장 확정 담당자가 적힌 운영표를 준비해, 고객 대기 앱과 직원 관리자 웹의 개발 범위를 문의해 주세요. 트램스 AI 제작 문의 (https://trams.co.kr/ai-si/contact/#inquiry)
참고 자료
비슷한 AI 서비스를
사업에 적용하고 싶으신가요?
아이디어와 필요한 기능을 알려주시면 제작 범위와 방법을 검토합니다.