콘텐츠로 이동

브라우저 알림 (Web Push)

StockClaw는 로그인한 모든 브라우저로 시스템 수준 알림을 보낼 수 있습니다 — FLASH나 ALERT 시그널이 도착하는 순간, 탭을 열어둘 필요 없이 알림을 받습니다. 알림을 클릭하면 대시보드로 딥링크되어 해당 시그널로 이동합니다.

받게 되는 것

  • 데스크톱: macOS 알림 센터, Windows 알림 센터, Linux DE 알림. FLASH 배너는 해제할 때까지 스티키로 유지되고, ALERT는 OS 기본값에 따라 사라집니다.
  • Android: 잠금 화면 배너 + 알림 섀이드의 지속 항목.
  • iOS Safari: StockClaw를 PWA로 설치한 뒤에만 — 공유 메뉴에서 "홈 화면에 추가", iOS 16.4 이상. Apple 규정상 일반 Safari 탭은 Web Push를 지원하지 않습니다.

배너를 클릭하면:

  • StockClaw 탭이 이미 열려 있으면 그 탭에 포커스하고 해당 시그널로 이동합니다.
  • 열려 있지 않으면 시그널이 있는 새 탭을 엽니다.

어느 쪽이든 대시보드가 해당 시그널 카드로 스크롤하고 약 2초간 강조 테두리를 깜빡여 찾기 쉽게 합니다.

활성화

설정 → 브라우저 알림 → Enable. 플로우:

  1. StockClaw가 무엇에 동의하는지 짧게 설명합니다.
  2. 브라우저가 네이티브 권한 프롬프트를 띄웁니다 — Allow를 선택합니다.
  3. StockClaw가 브라우저의 푸시 엔드포인트를 백엔드에 등록합니다.
  4. 버튼이 Disable로 바뀝니다.

로그인하는 각 브라우저는 별도로 구독합니다 — 휴대폰과 노트북이 둘 다 받을 수도, 하나만 받을 수도 있습니다. 한 기기에서 구독을 해제해도 다른 기기에는 영향이 없습니다.

비활성화 / 철회

  • StockClaw 내부에서: 설정 → 브라우저 알림 → Disable. 한 번 클릭. 해당 브라우저의 구독을 해제하고 백엔드에 행을 정리하도록 알립니다.
  • 브라우저 전체에서: Chrome의 사이트 권한(또는 동등 기능) → StockClaw에 대한 알림 권한을 철회합니다. 서버 쪽 구독 행은 다음 전송 시도 시 정리됩니다(푸시 서비스에서 404/410 응답).

iOS PWA 설치

iPhone / iPad에서 웹 푸시를 받으려면:

  1. Safari에서 StockClaw를 엽니다(iOS의 Chrome은 해당되지 않습니다 — WebKit을 사용하지만 PWA 기능이 더 적습니다).
  2. 공유 아이콘 → 홈 화면에 추가를 누릅니다.
  3. 홈 화면 아이콘에서 StockClaw를 실행합니다(Safari에서 열지 마세요). 이렇게 하면 독립 PWA 모드로 시작됩니다.
  4. 설정 → 브라우저 알림 → Enable. iOS가 권한을 요청합니다.
  5. 앱을 닫습니다. 이제 잠금 화면에 알림이 도착합니다.

개인정보

페이로드 내용은 VAPID와 구독 고유의 P-256 키로 백엔드와 당신의 브라우저 사이에서 엔드투엔드로 암호화됩니다 — 중간의 푸시 릴레이(Apple, Google FCM, Mozilla autopush)는 페이로드를 읽지 못하고 라우팅만 할 수 있습니다. 구독 정보(엔드포인트 URL, 공개 키, user agent)는 당신의 push_subscriptions 행에 저장되며, 다른 테이블과 동일한 행 수준 보안이 적용됩니다. 다른 사람의 브라우저는 당신의 시그널을 받을 수 없습니다.

문제 해결

"Enable" 버튼이 회색이고 "Unsupported"로 표시됨:

  • 브라우저에 PushManager가 없습니다(매우 오래된 Safari, 구버전 Firefox). 브라우저를 업그레이드하세요.

"Enable" 버튼이 "Blocked in browser"로 표시됨:

  • 이전에 권한 프롬프트를 거부했고 브라우저가 기억하고 있습니다. URL 바의 자물쇠 아이콘 클릭 → 알림을 "Ask"로 재설정한 뒤 새로고침하세요.

구독했는데 알림이 오지 않음:

  • Celery worker가 실행 중이어야 합니다(파이프라인 기록과 전송이 거기서 일어납니다).
  • FLASH와 ALERT만 푸시됩니다; NOTE/FYI는 대시보드 전용.
  • 로그인 페이지 문서의 Console 스모크 테스트로 로컬 알림을 자신에게 보내 서비스 워커가 살아 있는지 확인해보세요.

시그널당이 아니라 Beat 주기마다 알림 하나씩 옴:

  • 여러 시그널이 함께 도착할 때 예상되는 동작입니다 — 각자 별도의 배너가 되지만 공통 아이콘을 공유하고 각자 해당 시그널로 돌아가는 딥링크를 공유합니다.