매장 재고 변화를 단골 손님 화면에 실시간으로 알리기
한정 수량 상품을 판매할 때, 남은 수량을 직접 타이핑해 안내하지 않아도 재고 데이터가 바뀌는 순간 접속 중인 손님 화면에 자동으로 반영되는 공간을 만들 수 있습니다.
이런 상황에서 활용해 보세요
- 한정 수량 상품을 판매하면서, 남은 수량을 실시간으로 안내하고 싶은데 매번 손으로 공지하기 번거로운 경우
- 여러 사람이 동시에 접속해도 모두에게 같은 재고 정보가 즉시 보여야 하는 경우
- 메신저 채팅방으로 안내하다 보니 정보가 계속 밀려 올라가 중요한 공지를 놓치는 경우
이렇게 구성해 보세요
- 스키마 파일(.sfn)에 상품명과 남은 수량을 저장하는 테이블을 정의합니다.
- 수량 컬럼이 갱신될 때 접속 중인 화면에 실시간으로 전달하는 WebSocket 기능을 사용합니다. 실시간 오목 게임 예제에서 방 참가와 착수 결과를 실시간으로 전달하는 것과 같은 원리를, "재고 갱신" 이벤트를 방송하는 형태로 응용할 수 있습니다.
- 팀 내부용 웹서비스로 담당자가 재고를 입력하는 화면을 만들고, 손님이 보는 현황판은 외부 공개용 웹서비스로 분리해 운영할 수 있습니다.
업무 흐름에 적용하기
- 상품명, 총수량, 남은 수량을 담는 테이블을 스키마 파일로 만듭니다.
- API 빌드에서 재고 조회 API는 누구나 볼 수 있게, 수량 변경 API는 담당자 레벨 이상만 호출할 수 있게 권한을 나눕니다.
- 담당자가 재고를 입력하면 실시간 소켓 이벤트로 갱신 내역이 전달되도록 기능 엔드포인트를 연결합니다.
- 손님이 접속하는 화면에서는 WebSocket으로 전달받은 값을 그대로 표시해, 별도 새로고침 없이 실시간으로 갱신되게 합니다.
함께 사용하면 좋은 기능
- 회원 레벨: 담당자와 일반 손님의 권한을 나눠, 재고 변경은 담당자만 할 수 있게 제한합니다.
- 접속 도메인 설정: 매장 이름으로 된 주소를 연결하면 손님들이 접속 링크를 기억하기 쉬워집니다.
적용할 때 확인할 점
- 동시 접속자가 많아질 경우를 대비해 서비스 및 용량에서 실시간 연결 한도를 확인합니다.
- 재고 수량처럼 자주 바뀌는 값은 쓰기 권한을 최소한의 담당자로 좁혀 시작하는 것이 안전합니다.
- 담당자용 화면과 손님용 화면을 분리했다면, 각각의 접근 범위가 의도한 대로 설정됐는지 확인합니다.