휴대폰 및 브라우저 알림 (Web Push)¶
StockClaw는 휴대폰과 로그인한 모든 브라우저로 시스템 수준 알림을 보낼 수 있습니다 — 탭을 열어둘 필요가 없습니다. 내용은 Telegram 다이제스트와 같고, 도착하는 주기도 같습니다. 알림을 클릭하면 대시보드가 열리며, 시그널 하나에 대한 알림이면 해당 시그널로 바로 이동합니다.
Telegram이 없어도 됩니다. 푸시는 단독으로 동작하며, Telegram을 연결하지 않았다면 아래 기본값이 적용됩니다.
받게 되는 것¶
휴대폰 및 브라우저 알림은 Telegram 다이제스트와 완전히 동일합니다. 설정 → 알림 등급과 빈도의 값이 둘 다에 적용됩니다:
- 등급. 기본은 FLASH와 ALERT. NOTE와 FYI는 켰을 때만 푸시됩니다.
- 빈도. 시그널은 푸시 주기에 맞춰 묶여서 전송됩니다(최소 30분마다, 최대 하루 한 번). FLASH도 마찬가지로 즉시가 아니라 다음 다이제스트와 함께 도착합니다.
- 방해 금지 시간. 설정 → 방해 금지 시간을 켜면 내 시간대 기준 시작부터 종료 시간까지 휴대폰과 Telegram으로 아무것도 보내지 않습니다(FLASH 포함). 알림은 사라지지 않고, 보류된 알림은 방해 금지 시간이 끝난 뒤 다음 다이제스트에 함께 전송됩니다. 시간대는 설정을 처음 열 때 기기에서 가져오며 설정에서 바꿀 수 있습니다. 방해 금지 시간 중의 Market Wire 알림도 보류되며, 끝나면 최신 10개까지 보내집니다.
- 관심종목 필터. 관심종목 중 하나에 대한 영향도가 0.60 이상인 시그널만.
- 무료 버전. FLASH와 ALERT만, 최대 30분마다, 방해 금지 시간 없음. 등급, 빈도, 방해 금지 시간 설정은 잠긴 상태로 표시됩니다. 비용은 얼마인가요?를 보세요.
- 언어. 앱 표시 언어로 전송됩니다. 모든 기기에서 앱에 표시되는 언어입니다(설정 → 표시). 중국어는 중국어 요약, 영어는 영어만 사용하며 영어 요약이 없는 시그널은 "자세한 내용은 앱에서"라는 한 줄로 표시됩니다. 일본어와 한국어는 제목과 버튼이 번역되고 요약은 영어입니다.
다이제스트마다 시그널 하나당 알림 하나가 아니라 등급별로 알림 하나를 보냅니다. 예: FLASH · NVDA, AAPL, 3 ALERT signals · NVDA, TSLA, AMD. 시그널 하나짜리 알림은 해당 시그널로 딥링크되고, 여러 개를 담은 알림은 대시보드를 엽니다.
Market Wire. 영향도 0.80 이상의 시장 전체 이벤트도 알림을 켜고 FLASH 등급을 활성화한 모든 사용자에게 푸시됩니다.
알림은 파이프라인이 이미 점수를 매긴 시장 이벤트를 설명할 뿐이며 투자 조언이 아닙니다.
지원 환경¶
- 데스크톱: macOS 알림 센터, Windows 알림 센터, Linux DE 알림. FLASH 배너는 해제할 때까지 스티키로 유지되고, ALERT는 OS 기본값에 따라 사라집니다.
- Android: 잠금 화면 배너 + 알림 섀이드의 지속 항목.
- iOS Safari: StockClaw를 PWA로 설치한 뒤에만 — 공유 메뉴에서 "홈 화면에 추가", iOS 16.4 이상. Apple 규정상 일반 Safari 탭은 Web Push를 지원하지 않습니다.
- Android 앱(Google Play, 현재 테스트 중): 활성화 방법은 브라우저와 같고, Android가 시스템 알림 권한 프롬프트를 띄웁니다.
배너를 클릭하면:
- StockClaw 탭이 이미 열려 있으면 그 탭에 포커스하고 해당 시그널로 이동합니다(여러 시그널 알림이면 대시보드로).
- 열려 있지 않으면 그곳으로 새 탭을 엽니다.
시그널 하나짜리 알림이면 대시보드가 해당 시그널 카드로 스크롤하고 약 2초간 강조 테두리를 깜빡여 찾기 쉽게 합니다.
활성화¶
두 가지 방법이 있습니다.
대시보드에서. 로그인하면 이 휴대폰에서 알림을 받으시겠어요? 카드가 보입니다. 켜기를 누르고 이어지는 권한 프롬프트에서 허용하세요(Android 13 이상은 시스템 프롬프트). 나중에를 누르면 카드가 14일 동안 숨겨집니다.
설정에서. 설정 → 휴대폰 및 브라우저 알림 → 활성화. 플로우:
- 브라우저(또는 Android)가 네이티브 권한 프롬프트를 띄웁니다 — Allow를 선택합니다.
- StockClaw가 이 기기의 푸시 엔드포인트를 백엔드에 등록합니다.
- 버튼이 비활성화로 바뀝니다.
로그인하는 각 브라우저는 별도로 구독합니다 — 휴대폰과 노트북이 둘 다 받을 수도, 하나만 받을 수도 있습니다. 한 기기에서 구독을 해제해도 다른 기기에는 영향이 없습니다.
테스트 보내기¶
기기를 구독한 뒤 설정 → 휴대폰 및 브라우저 알림 → 테스트 보내기를 누르면 내 기기로 테스트 알림을 보내, 이 기기가 실제로 받는지 확인할 수 있습니다. 버튼에는 30초 쿨다운이 있습니다.
비활성화 / 철회¶
- StockClaw 내부에서: 설정 → 휴대폰 및 브라우저 알림 → 비활성화. 한 번 클릭. 해당 브라우저의 구독을 해제하고 백엔드에 행을 정리하도록 알립니다.
- 브라우저 전체에서: Chrome의 사이트 권한(또는 동등 기능) → StockClaw에 대한 알림 권한을 철회합니다. 서버 쪽 구독 행은 다음 전송 시도 시 정리됩니다(푸시 서비스에서 404/410 응답).
iOS PWA 설치¶
iPhone / iPad에서 웹 푸시를 받으려면:
- Safari에서 StockClaw를 엽니다(iOS의 Chrome은 해당되지 않습니다 — WebKit을 사용하지만 PWA 기능이 더 적습니다).
- 공유 아이콘 → 홈 화면에 추가를 누릅니다.
- 홈 화면 아이콘에서 StockClaw를 실행합니다(Safari에서 열지 마세요). 이렇게 하면 독립 PWA 모드로 시작됩니다.
- 설정 → 휴대폰 및 브라우저 알림 → 활성화. iOS가 권한을 요청합니다.
- 앱을 닫습니다. 이제 잠금 화면에 알림이 도착합니다.
개인정보¶
페이로드 내용은 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가 실행 중이어야 합니다(파이프라인 기록과 전송이 거기서 일어납니다).
- 설정 → 알림 등급과 빈도에서 등급과 빈도를 확인하세요. 알림은 같은 다이제스트를 따르므로 빈도가 4시간마다면 그 사이에는 아무것도 오지 않고, NOTE/FYI는 켰을 때만 푸시됩니다. 관심종목 영향도가 0.60 미만인 시그널은 대시보드에만 표시됩니다.
- 테스트 보내기를 눌러 보세요. 테스트가 도착하면 전송은 정상이며, 지난 다이제스트 이후 조건에 맞는 시그널이 아직 없는 것뿐입니다.
- 해당 기기에서 StockClaw를 한 번 여세요. 앱은 실행할 때마다 브라우저의 현재 구독을 백엔드에 다시 등록하며, 설정 화면은 백엔드가 그 기기의 구독을 실제로 보유하고 있을 때만 Disable을 표시합니다. 브라우저(특히 iOS 홈 화면 앱)는 구독을 때때로 교체합니다. 2026-09 이전에는 구독이 교체되거나 서버에서 정리된 뒤에도 버튼이 Disable로 표시된 채 아무것도 도착하지 않을 수 있었습니다. 구독했다고 생각한 기기의 설정 화면이 Enable로 보이면 클릭해 다시 등록하세요.
- 로그인 페이지 문서의 Console 스모크 테스트로 로컬 알림을 자신에게 보내 서비스 워커가 살아 있는지 확인해보세요.
알림 하나에 시그널 여러 개:
- 예상된 동작입니다. 다이제스트마다 등급별로 알림 하나를 보냅니다(
3 ALERT signals · NVDA, TSLA, AMD). Telegram과 같은 묶음 방식입니다. 누르면 대시보드가 열려 그 묶음의 시그널을 모두 볼 수 있습니다.