메인 콘텐츠로 건너뛰기

개요

푸시 제한은 OneSignal이 푸시 알림을 전달하는 속도를 제어합니다. 제한을 사용하여 전달을 시간에 걸쳐 분산시키면 서버 과부하를 방지하고, 대량 전송 중 성능 저하를 피하며, 기기 전반에 걸쳐 일관된 사용자 경험을 유지할 수 있습니다.

푸시 전송이 서버에 영향을 미치는 이유

대규모 대상에게 푸시 알림을 보내면 클릭률이 낮더라도 자체 서버에 갑작스러운 트래픽 급증이 발생할 수 있습니다. 이는 전달 자체(클릭뿐만 아니라)가 인프라로의 여러 유형의 요청을 트리거하기 때문입니다. 이러한 소스를 이해하면 올바른 완화 전략을 선택하는 데 도움이 됩니다.

자체 호스팅 이미지 및 미디어

푸시 알림에 이미지(big_picture 또는 chrome_web_image 등)가 포함된 경우, 알림을 받는 모든 기기가 전달 즉시 해당 이미지를 다운로드합니다. 이미지가 CDN이 아닌 자체 서버에 호스팅된 경우, 전달된 알림마다 HTTP 요청이 하나씩 생성됩니다 — 몇 초 안에 수만 건의 요청이 발생할 수 있습니다. 권장 사항:
  • 알림 이미지를 애플리케이션 서버가 아닌 CDN(CloudFront, Cloudflare, Fastly 등)에 호스팅하세요.
  • 미디어를 직접 호스팅해야 한다면 푸시 제한을 사용하여 전달을 시간에 걸쳐 분산시키세요.

동시 앱 열기

푸시 전달로 인해 많은 사용자가 동시에 앱을 열게 됩니다. 각 앱 열기는 일반적으로 백엔드에 여러 요청을 생성합니다: 세션 초기화, 콘텐츠 가져오기, API 호출, 분석 이벤트. 수천 건의 알림이 동시에 전달되면 낮은 열람률이라도 상당한 트래픽 급증으로 이어질 수 있습니다. 권장 사항:
  • 푸시 제한을 사용하여 전달을 엇갈리게 하고 앱 열기를 더 넓은 시간 창에 분산시키세요.
  • 백엔드가 대량 전송의 버스트 트래픽을 처리할 수 있는지 확인하거나 자동 확장 인프라를 사용하세요.

Event Streams

webhook 대상으로 Event Streams가 구성되어 있으면 OneSignal은 각 이벤트(message.sent, message.delivered, message.clicked 등)에 대해 실시간으로 엔드포인트에 HTTP 요청을 보냅니다. 대규모 푸시 전송 중에는 대상 크기에 비례한 webhook 요청이 급증할 수 있습니다.
OneSignal은 아웃바운드 Event Stream webhook 트래픽을 속도 제한하지 않습니다. 엔드포인트는 메시지 전송에서 생성된 이벤트 볼륨을 처리할 수 있어야 합니다.
권장 사항:
  • webhook 엔드포인트가 대상 크기에 비례한 처리량을 처리할 수 있는지 확인하세요.
  • 버스트를 흡수하기 위해 직접 webhook 대신 중간 큐 또는 버퍼(Amazon Kinesis, Google Pub/Sub 등)를 사용하세요. Event Streams는 이를 기본적으로 대상으로 지원합니다.
  • 푸시 제한을 사용하여 엔드포인트에 도달하는 이벤트의 최대 속도를 줄이세요.

Journey webhooks

Journey webhooks는 사용자가 Journey의 특정 단계에 도달할 때 서버에 HTTP 요청을 보냅니다. Journey는 사용자 행동에 따라 자연스럽게 전달 속도를 조절하지만, 트래픽이 많은 Journey는 여전히 상당한 webhook 볼륨을 생성할 수 있습니다. 느리거나 과부하된 엔드포인트는 webhook의 자동 비활성화를 트리거할 수 있습니다. 권장 사항:
  • webhook 엔드포인트가 빠르게 응답(200 OK 반환)하고 무거운 처리는 백그라운드 작업으로 미루도록 설계하세요.
  • 엔드포인트의 429 응답을 모니터링하세요. 이는 OneSignal이 webhook을 비활성화하는 트리거가 될 수 있습니다.
  • Journey webhooks 문서의 성능 지침을 검토하세요.

Service Worker 가져오기 (web push)

Web push의 경우 브라우저는 서버에서 OneSignal Service Worker 파일을 주기적으로 다시 가져옵니다(일반적으로 캐시 만료 시, 최대 24시간마다). 푸시 알림이 전달되면 브라우저가 업데이트된 Service Worker 파일을 확인할 수 있어, 각 web push 구독에서 호스팅 서버로의 요청이 하나씩 생성됩니다. 권장 사항:
  • CDN에서 OneSignalSDKWorker.js 파일을 제공하거나 호스팅 서버가 요청 볼륨을 처리할 수 있는지 확인하세요.
  • 다시 가져오기 빈도를 줄이기 위해 적절한 캐시 헤더를 설정하세요.
  • 자세한 내용은 OneSignal Service Worker 문서를 참조하세요.

올바른 접근 방식 선택

트래픽 소스제한의 영향?대체 완화 방법
자체 호스팅 이미지예 — 느린 전달 = 적은 동시 다운로드CDN에 호스팅
동시 앱 열기예 — 엇갈린 전달로 사용자 세션 분산자동 확장 인프라
Event Streams(webhooks)예 — 느린 전달 = 낮은 이벤트 속도큐 기반 대상 사용(Kinesis, Pub/Sub 등)
Journey webhooks아니요 — Journey는 제한을 지원하지 않음엔드포인트 성능 최적화; 백그라운드 처리 사용
Service Worker 가져오기예 — 느린 전달 = 적은 동시 가져오기CDN 호스팅; 캐시 헤더

구성 옵션

제한을 사용하려면 전역 설정 수준에서 활성화해야 합니다.

전역 제한 설정

Settings > Push & In-App > Throttling 아래에서 모든 푸시 메시지에 대한 제한을 활성화합니다. 활성화되면 이 설정은 기본적으로 모든 푸시 알림에 적용되지만 개별 메시지에 대해 재정의할 수 있습니다.
Push throttling settings in the OneSignal dashboard under Settings > Push & In-App > Throttling

메시지별 제한 재정의

개별 메시지에서 전역 제한 설정을 재정의할 수 있습니다.
  1. 알림 생성 중 “Override throttling setting” 상자를 선택합니다
  2. 원하는 분당 메시지 속도를 설정합니다
  3. 특정 메시지에 대한 제한을 비활성화하려면 분당 메시지 필드에 “0”을 입력합니다
API로 전송된 알림의 경우 throttle_rate_per_minute 속성을 사용합니다.

제한 작동 방식

속도 변환 프로세스

OneSignal은 전달을 최적화하기 위해 분당 설정을 초당 속도로 변환합니다:
  1. 시스템은 제한 속도를 60(분당 초)으로 나눕니다
  2. 결과는 가장 가까운 정수로 내림됩니다(OneSignal은 부분 메시지를 보낼 수 없음)
  3. 이 초당 속도는 전달 프로세스 전체에 적용됩니다
예시: 분당 1,019개 메시지의 제한 속도를 설정한 경우.
  1. OneSignal이 60으로 나눕니다: 1,019 ÷ 60 = 초당 16.98개 메시지
  2. 내림: 초당 16개 메시지
  3. 실제 전달 속도: 16 × 60 = 분당 960개 메시지 (설정 속도보다 59개 적음)
이 변환은 배치 간 지연을 제거하여 보다 효율적인 처리를 보장합니다.

제한사항 및 고려사항

24시간 전달 기간

모든 제한된 알림은 전송된 후 24시간 이내에 전달을 완료해야 합니다. 제한 속도로 인해 전달이 24시간을 초과하는 경우 OneSignal은 이 기간 내에 완료되도록 속도를 자동으로 조정합니다. 예시: 20,000명의 사용자에 대해 분당 10개 메시지의 제한 속도를 설정한 경우 — 전달에 약 33시간이 소요됩니다. OneSignal은 24시간 이내에 전달이 완료되도록 속도를 자동으로 분당 약 14개 메시지로 조정합니다.

호환성 및 가용성

제한은 알림 생성 API 또는 Messages > New Push 대시보드 인터페이스를 통해 전송된 푸시 알림에만 사용할 수 있습니다. Journey 및 자동화된 메시지는 지원되지 않습니다(위의 요약 표 참조).

시간대 및 지능형 전달

제한은 시간대 및 지능형 전달보다 우선합니다. 제한이 활성화되면 OneSignal은 해당 알림에 대해 이러한 기능을 무시합니다. 시간대 또는 지능형 전달을 사용하려면:
  • 전달 일정에서 해당 특정 알림에 대한 제한을 비활성화합니다
  • “Override throttling setting”을 “0”으로 설정합니다
  • API 알림의 경우 throttle_rate_per_minute: 0으로 설정합니다

자주 묻는 질문

제한이 지능형 전달 또는 시간대 전달과 함께 작동합니까?

아니요. 제한은 지능형 전달과 시간대 전달 모두보다 우선합니다. 알림에 대해 제한이 활성화되면 OneSignal은 이러한 일정 기능을 무시합니다. 지능형 전달 또는 시간대 전달을 사용하려면 해당 알림의 제한 재정의를 0으로 설정하세요.

제한 속도가 24시간을 초과하면 어떻게 됩니까?

OneSignal은 전달이 24시간 이내에 완료되도록 자동으로 제한 속도를 높입니다. 예를 들어, 20,000명의 사용자에게 분당 10개 메시지로 전송하면 약 33시간이 걸리므로 OneSignal은 속도를 분당 약 14개 메시지로 조정합니다.

Journey 또는 자동화된 메시지를 제한할 수 있습니까?

아니요. 제한은 대시보드(Messages > New Push) 또는 알림 생성 API를 통해 전송된 푸시 알림에만 적용됩니다. Journey와 자동화된 메시지는 사용자가 자격을 갖추면 동적으로 전달되어 자연스럽게 시간에 걸쳐 전달이 분산됩니다.

실제 전달 속도가 설정한 속도보다 낮은 이유는 무엇입니까?

OneSignal은 분당 속도를 초당 속도로 변환하고 내림합니다. 예를 들어, 분당 1,019개 메시지는 초당 16개 메시지가 됩니다(1,019 ÷ 60 = 16.98, 내림), 실제 속도는 분당 960개 메시지입니다.

관련 페이지

푸시 개요

OneSignal로 모바일 및 web 푸시 알림을 전송하고 관리합니다.

알림 생성 API

throttle_rate_per_minute 속성을 포함한 알림 생성 및 전송 API 참조.

Event Streams

전달 및 참여 이벤트를 webhooks, Kinesis 또는 Pub/Sub으로 스트리밍합니다.

OneSignal Service Worker

web 푸시 알림의 Service Worker 파일을 구성합니다.

Journey 개요

사용자 행동에 응답하는 다단계 메시지 워크플로를 구축합니다.