매장 재고 변화를 단골 손님 화면에 실시간으로 알리기

한정 수량 상품을 판매할 때, 남은 수량을 직접 타이핑해 안내하지 않아도 재고 데이터가 바뀌는 순간 접속 중인 손님 화면에 자동으로 반영되는 공간을 만들 수 있습니다.

이런 상황에서 활용해 보세요

  • 한정 수량 상품을 판매하면서, 남은 수량을 실시간으로 안내하고 싶은데 매번 손으로 공지하기 번거로운 경우
  • 여러 사람이 동시에 접속해도 모두에게 같은 재고 정보가 즉시 보여야 하는 경우
  • 메신저 채팅방으로 안내하다 보니 정보가 계속 밀려 올라가 중요한 공지를 놓치는 경우

이렇게 구성해 보세요

  • 스키마 파일(.sfn)에 상품명과 남은 수량을 저장하는 테이블을 정의합니다.
  • 수량 컬럼이 갱신될 때 접속 중인 화면에 실시간으로 전달하는 WebSocket 기능을 사용합니다. 실시간 오목 게임 예제에서 방 참가와 착수 결과를 실시간으로 전달하는 것과 같은 원리를, "재고 갱신" 이벤트를 방송하는 형태로 응용할 수 있습니다.
  • 팀 내부용 웹서비스로 담당자가 재고를 입력하는 화면을 만들고, 손님이 보는 현황판은 외부 공개용 웹서비스로 분리해 운영할 수 있습니다.

업무 흐름에 적용하기

  1. 상품명, 총수량, 남은 수량을 담는 테이블을 스키마 파일로 만듭니다.
  2. API 빌드에서 재고 조회 API는 누구나 볼 수 있게, 수량 변경 API는 담당자 레벨 이상만 호출할 수 있게 권한을 나눕니다.
  3. 담당자가 재고를 입력하면 실시간 소켓 이벤트로 갱신 내역이 전달되도록 기능 엔드포인트를 연결합니다.
  4. 손님이 접속하는 화면에서는 WebSocket으로 전달받은 값을 그대로 표시해, 별도 새로고침 없이 실시간으로 갱신되게 합니다.

함께 사용하면 좋은 기능

  • 회원 레벨: 담당자와 일반 손님의 권한을 나눠, 재고 변경은 담당자만 할 수 있게 제한합니다.
  • 접속 도메인 설정: 매장 이름으로 된 주소를 연결하면 손님들이 접속 링크를 기억하기 쉬워집니다.

적용할 때 확인할 점

  • 동시 접속자가 많아질 경우를 대비해 서비스 및 용량에서 실시간 연결 한도를 확인합니다.
  • 재고 수량처럼 자주 바뀌는 값은 쓰기 권한을 최소한의 담당자로 좁혀 시작하는 것이 안전합니다.
  • 담당자용 화면과 손님용 화면을 분리했다면, 각각의 접근 범위가 의도한 대로 설정됐는지 확인합니다.

관련 문서