> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Web SDK 문제 해결

> Chrome, Firefox, Safari 및 Android에서 OneSignal Web Push 문제를 해결합니다. 일반적인 서비스 워커, 출처, MIME 유형 및 모바일 푸시 오류를 단계별 디버깅 지침으로 수정합니다.

## 개요

이 가이드는 OneSignal Web SDK 설정 문제 해결 과정을 안내합니다. 계속하기 전에 [Web SDK 설정](./web-sdk-setup)을 검토하여 모든 단계를 완료했는지 확인하세요.

웹 푸시가 작동하지 않는 것처럼 보이는 가장 일반적인 이유는 실제로 브라우저 및 기기의 알림 설정과 관련이 있습니다:

### 브라우저 호환성

사용자는 [웹 권한 프롬프트](/docs/ko/permission-requests)를 볼 수 있지만 시크릿, 프라이빗 또는 게스트 브라우저 모드에서는 푸시 알림을 구독할 수 없습니다.

<Accordion title="운영 체제별 브라우저 호환성">
  | Browser                                                                          | Windows | macOS | Android | iOS |
  | -------------------------------------------------------------------------------- | ------- | ----- | ------- | --- |
  | [Chrome](https://en.wikipedia.org/wiki/Google_Chrome)                            | ✅       | ✅     | ✅       | ✅ ¹ |
  | [Firefox](https://en.wikipedia.org/wiki/Firefox)                                 | ✅       | ✅     | ✅       | ✅ ¹ |
  | [Safari 10+](https://en.wikipedia.org/wiki/Safari_\(web_browser\))               | ❌       | ✅     | ❌       | ✅ ¹ |
  | [Microsoft Edge](https://en.wikipedia.org/wiki/Microsoft_Edge)                   | ✅       | ✅     | ✅       | ✅ ¹ |
  | [Opera](https://en.wikipedia.org/wiki/Opera_\(web_browser\)) ²                   | ✅       | ✅     | ✅       | ✅ ¹ |
  | [Samsung Internet](https://en.wikipedia.org/wiki/Samsung_Internet_for_Android) ² | ❌       | ❌     | ✅       | ✅ ¹ |
  | [Yandex](https://en.wikipedia.org/wiki/Yandex_Browser) ²                         | ✅       | ✅     | ✅       | ✅ ¹ |
  | [UC Browser](https://en.wikipedia.org/wiki/UC_Browser) ²                         | ✅       | ❌     | ✅       | ✅ ¹ |
  | [Internet Explorer](https://en.wikipedia.org/wiki/Internet_Explorer)             | ❌       | ❌     | ❌       | ❌   |
  | [DuckDuckGo](https://en.wikipedia.org/wiki/DuckDuckGo)                           | ❌       | ❌     | ❌       | ❌   |

  <Info>
    ¹ iOS는 웹 앱 설치가 필요합니다([iOS 웹 푸시 설정](/docs/ko/web-push-for-ios) 참조)

    ² Chromium 기반 브라우저는 OneSignal 분석에서 "Chrome"으로 표시됩니다
  </Info>
</Accordion>

### 기기 알림 설정

기기 알림 설정은 웹 푸시 알림이 기기에 표시되지 않는 **가장 일반적인 원인**입니다. 다른 원인을 확인하기 전에 집중 모드(방해 금지, 배터리 부족 등)를 포함한 다음 설정을 먼저 확인하세요.

<Warning>
  아래 탭에서 올바른 운영 체제를 선택하세요. Windows, macOS, Android, iOS가 표시되어야 합니다.
</Warning>

<Tabs>
  <Tab title="Windows">
    <Accordion title="Windows 10 알림 설정">
      1. **시작 > 설정 > 알림 및 작업 > 앱 및 기타 보낸 사람의 알림 받기**를 선택합니다

      2. **사이트와 브라우저도 활성화되어 있는지 확인하세요.**

      <Frame caption="Windows 10 알림 설정">
        <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/cb85585-f0eb72bb-313f-b80e-480c-46321fdb5ebd.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=21acf8bf7acb457822fe6f442a0f2fad" width="558" height="317" data-path="images/docs/cb85585-f0eb72bb-313f-b80e-480c-46321fdb5ebd.png" />
      </Frame>
    </Accordion>

    **Windows 11 알림 설정:**

    1. **시작 > 설정 > 시스템 > 알림**을 선택합니다

    <Frame caption="Windows 11 알림 설정">
      <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/9e6b656-Screenshot_2023-07-13_at_4.03.13_PM.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=8e4d1b4617fc098bd0d0060defb23851" width="2046" height="1598" data-path="images/docs/9e6b656-Screenshot_2023-07-13_at_4.03.13_PM.png" />
    </Frame>

    2. **알림**을 켭니다

    3. **방해 금지**를 끕니다 (테스트 중에는 이 옵션을 비활성화하면 푸시가 표시됩니다)

    4. **앱 및 기타 보낸 사람의 알림** 아래로 스크롤합니다

    <Frame caption="Windows 11 앱 및 기타 보낸 사람의 알림">
      <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/ed955fa-Screenshot_2023-07-13_at_4.04.16_PM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=e6943675129e73eabe9286c976163091" alt="Windows 11 Settings showing the Notifications from apps and other senders list" width="2046" height="1598" data-path="images/docs/ed955fa-Screenshot_2023-07-13_at_4.04.16_PM.png" />
    </Frame>

    5. 브라우저가 **켜져** 있는지 확인하세요.

    <Frame caption="Windows 11 알림 설정 브라우저 목록">
      <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/258c7ee-Screenshot_2023-07-13_at_4.11.32_PM.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=48f5b6b47512f24ef6589a404d6fb413" width="2046" height="1598" data-path="images/docs/258c7ee-Screenshot_2023-07-13_at_4.11.32_PM.png" />
    </Frame>
  </Tab>

  <Tab title="macOS">
    1. **시스템 설정 > 알림**으로 이동합니다
    2. 알림 센터에서 **알림**이 활성화되어 있는지 확인합니다.

    <Info>
      **디스플레이를 미러링하거나 공유할 때 알림 허용**을 선택해야 할 수 있습니다.
    </Info>

    <Frame caption="macOS 알림 센터 설정">
      <img src="https://mintcdn.com/onesignal/iYHHyW9S1IVpDgxC/images/push/macos-notification-center-settings.png?fit=max&auto=format&n=iYHHyW9S1IVpDgxC&q=85&s=3978f6da8fd11a30efae0da02a5c8a5a" width="1670" height="1938" data-path="images/push/macos-notification-center-settings.png" />
    </Frame>

    3. 애플리케이션 알림 목록으로 스크롤하여 브라우저가 켜져 있는지 확인하세요.

    <Warning>
      Chrome 및 Edge와 같은 일부 브라우저는 2개의 다른 애플리케이션 항목을 표시합니다.

      1. 표준 웹 푸시 알림
      2. 내부 알림 (예: Google 캘린더)

      둘 다 활성화되어 있는지 확인하세요.
    </Warning>

    <Frame caption="macOS 애플리케이션 알림 목록 - Chrome과 Edge에 2개의 항목이 있고 둘 다 활성화되어야 하는 예시">
      <img src="https://mintcdn.com/onesignal/iYHHyW9S1IVpDgxC/images/push/macos-application-notifications-list.png?fit=max&auto=format&n=iYHHyW9S1IVpDgxC&q=85&s=adebcf8e4a20d72fccf92459dc94bda1" width="1670" height="1938" data-path="images/push/macos-application-notifications-list.png" />
    </Frame>

    4. 애플리케이션을 선택하고 설정을 켭니다. 알림을 표시할 방법을 선택하세요.

    <Frame caption="macOS 애플리케이션 알림 설정">
      <img src="https://mintcdn.com/onesignal/iYHHyW9S1IVpDgxC/images/push/macos-application-notifications-settings.png?fit=max&auto=format&n=iYHHyW9S1IVpDgxC&q=85&s=45cc68b248d15f60c6b344eca3114447" width="1670" height="1938" data-path="images/push/macos-application-notifications-settings.png" />
    </Frame>

    <Warning>
      일부 이전 버전의 Safari는 애플리케이션 알림 목록에 웹사이트를 표시할 수 있습니다. 이 경우 웹사이트가 켜져 있는지 확인하세요.
    </Warning>

    5. **시스템 설정 > 집중 모드**로 이동하여 테스트 중에 활성화된 집중 모드가 없는지 확인하세요.

    <Frame caption="macOS 집중 모드 설정">
      <img src="https://mintcdn.com/onesignal/iYHHyW9S1IVpDgxC/images/push/macos-focus-mode-settings.png?fit=max&auto=format&n=iYHHyW9S1IVpDgxC&q=85&s=7924eb3a1907400fee662fcf249081ef" width="1670" height="1392" data-path="images/push/macos-focus-mode-settings.png" />
    </Frame>
  </Tab>

  <Tab title="Android">
    1. **설정 > 알림 > 선택한 브라우저**로 이동합니다.
    2. \*\*"알림 표시"\*\*와 웹사이트에 체크 표시가 되어 있는지 확인하세요.

    <Frame caption="Android 알림 설정">
      <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b75b427-Screenshot_20210816-174706_Settings.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=f2de2e15cdf5b36f423b707903ba82ae" width="800" height="873" data-path="images/docs/b75b427-Screenshot_20210816-174706_Settings.png" />
    </Frame>

    <Note>
      Android는 앱별 알림 채널을 사용합니다. 브라우저의 알림 채널이 무음으로 설정되어 있거나 꺼져 있으면, 최상위 토글이 켜져 있어도 푸시 알림이 표시되지 않습니다. 설정에서 브라우저 항목을 탭하고 각 알림 채널이 활성화되어 표시 가능한 알림 스타일로 설정되어 있는지 확인하세요.
    </Note>
  </Tab>

  <Tab title="iOS">
    <Warning>
      iOS에서 구독자가 iPhone 및 iPad에서 푸시 알림을 받으려면 먼저 사이트를 홈 화면에 추가해야 합니다. 문제 해결 전에 [iOS 웹 푸시 설정](/docs/ko/web-push-for-ios)을 완료하세요.
    </Warning>

    1. 브라우저의 **공유** 버튼을 탭하고 **홈 화면에 추가**를 선택합니다.
    2. 홈 화면에서 사이트를 열고 권한 프롬프트가 나타나면 알림을 허용합니다.
    3. 기기의 **설정 > 알림 > 사이트**로 이동하여 **알림 허용**이 켜져 있는지 확인하세요.
  </Tab>
</Tabs>

### 프롬프트 표시 문제

다음은 웹 푸시 알림 프롬프트가 예상대로 표시되지 않는 일반적인 이유입니다.

<Steps>
  <Step title="프롬프트가 구성되었는지 확인">
    [웹 권한 프롬프트](/docs/ko/permission-requests) 설정을 검토하여 프롬프트를 구성했으며 다양한 브라우저 동작을 이해하고 있는지 확인하세요.

    예를 들어, Safari와 같은 일부 브라우저는 네이티브 프롬프트가 나타나기 전에 사용자 제스처(버튼 클릭)가 필요합니다. 각 브라우저에 대한 자세한 내용은 [웹 권한 프롬프트 > 네이티브 권한 프롬프트](/docs/ko/permission-requests#native-permission-prompt) 섹션에서 확인할 수 있습니다.
  </Step>

  <Step title="브라우저 호환성, 시크릿, 프라이빗 브라우저 또는 게스트 브라우저 모드 확인">
    브라우저는 이러한 모드에서 사용자가 알림을 구독하는 것을 허용하지 않습니다. 이것이 슬라이드 프롬프트는 표시되지만 네이티브 권한 프롬프트는 표시되지 않는 이유입니다.

    [웹 푸시를 지원하는 브라우저와 기기를 사용](/docs/ko/troubleshooting-web-push#browser-compatibility)하고 있는지 확인하세요.
  </Step>

  <Step title="브라우저의 알림 설정 확인">
    브라우저 설정으로 이동하여 "알림" 권한 설정을 확인하세요. Chrome 예시: `chrome://settings/content/notifications`

    <Frame caption="Chrome 알림 설정">
      <img src="https://mintcdn.com/onesignal/GxkD7lQqPiL4KVpn/images/push/chrome-notifications-settings.png?fit=max&auto=format&n=GxkD7lQqPiL4KVpn&q=85&s=8edb5d3cdbe4b785086053fdfc82bd1c" width="2268" height="2012" data-path="images/push/chrome-notifications-settings.png" />
    </Frame>

    이 예시에서:

    * 사용자가 "사이트에서 알림을 보낼 수 없음"을 선택하여 네이티브 권한 프롬프트가 표시되지 않습니다. 네이티브 권한 프롬프트를 표시하려면 "사이트에서 알림 전송을 요청할 수 있음"으로 표시되어야 합니다.
    * 사용자가 `https://yoursite.com`을 "알림 전송이 허용되지 않음" 목록에 추가하여 네이티브 권한 프롬프트가 표시되지 않습니다. 네이티브 권한 프롬프트를 표시하려면 이 목록에서 제거해야 합니다.

    **브라우저별 문서:**

    * [Chrome](https://support.google.com/chrome/answer/3220216) - 이 페이지에서는 설정 > 개인정보 및 보안 > 사이트 설정 > 알림으로 이동하여 Chrome에서 알림을 관리하는 방법을 설명하며, 여기서 기본 동작을 제어하고 개별 웹사이트에 대한 권한을 관리할 수 있습니다.
    * [Firefox](https://support.mozilla.org/en-US/kb/push-notifications-firefox) - 이 가이드는 Firefox의 웹 푸시 알림을 다루며, 설정 > 개인정보 및 보안 > 알림을 통해 알림 권한을 관리하는 방법과 주소 표시줄의 사이트 정보 아이콘을 통해 특정 사이트에 대한 권한을 제어하는 방법을 설명합니다.
    * [Safari](https://support.apple.com/guide/safari/customize-website-notifications-sfri40734/mac) - 이 Apple 가이드는 Safari > 환경설정 > 웹사이트 > 알림을 통해 Mac에서 Safari 알림을 사용자 지정하는 방법을 설명하며, 여기서 어떤 사이트가 알림을 보낼 수 있는지 관리하고 시스템 환경설정을 통해 알림 동작을 제어할 수 있습니다.
    * [Edge](https://support.microsoft.com/en-us/microsoft-edge/manage-website-notifications-in-microsoft-edge-0c555609-5bf2-479d-a59d-fb30a0b80b2b) - 이 문서에서는 설정 > 개인정보, 검색 및 서비스 > 사이트 권한 > 알림으로 이동하거나 주소 표시줄의 사이트 정보 아이콘을 클릭하여 Edge 알림을 관리하는 방법을 자세히 설명합니다.
  </Step>

  <Step title="iOS/iPadOS 요구 사항이 충족되지 않음">
    iOS의 경우 사용자에게 구독을 요청하기 위한 몇 가지 추가 요구 사항이 있습니다. 자세한 내용은 [iOS/iPadOS용 모바일 웹 푸시](/docs/ko/web-push-for-ios) 가이드에서 확인할 수 있습니다.
  </Step>
</Steps>

***

## 문제 해결 단계

위의 사항을 확인한 후 다음 단계에 따라 OneSignal Web SDK 설정 문제를 해결하세요.

<Steps>
  <Step title="브라우저 개발자 도구 콘솔 열기">
    브라우저의 개발자 도구를 사용하여 웹페이지에서 Web SDK와 상호 작용하고 로깅을 활성화하여 오류를 확인할 수 있습니다.

    <Tabs>
      <Tab title="Desktop">
        * **Chrome**: 페이지를 마우스 오른쪽 버튼으로 클릭하고 *검사*를 클릭한 다음 팝업 창의 *콘솔* 탭을 클릭합니다.
        * **Firefox**: 페이지를 마우스 오른쪽 버튼으로 클릭하고 *요소 검사*를 클릭한 다음 팝업 창의 *콘솔* 탭을 클릭합니다.
        * **Safari**: **Safari → 환경설정 → 고급**으로 이동하여 *메뉴 막대에서 개발자용 메뉴 보기*가 체크되어 있는지 확인합니다. 그런 다음 웹페이지에서 마우스 오른쪽 버튼을 클릭하고 *요소 검사*를 클릭한 다음 팝업 창의 *콘솔* 탭을 클릭합니다.

        <Frame caption="데스크톱 개발자 도구 콘솔">
          <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/M6r7mvTPT7W1USDDy5Wz_console.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=452fc53b810bd258234dc5cc46f0b45e" width="1510" height="598" data-path="images/docs/M6r7mvTPT7W1USDDy5Wz_console.png" />
        </Frame>
      </Tab>

      <Tab title="Android">
        * **Android의 Chrome**: [USB 디버깅 활성화](https://developer.chrome.com/docs/devtools/remote-debugging/)를 하고 기기를 컴퓨터에 연결한 다음 데스크톱 Chrome 브라우저에서 `chrome://inspect#devices`로 개발자 도구에 액세스합니다.
        * **Android의 Firefox**: [USB 디버깅 활성화](https://developer.mozilla.org/en-US/docs/Tools/about:debugging)를 하고 기기를 컴퓨터에 연결한 다음 데스크톱 Firefox 브라우저에서 `about:debugging`으로 개발자 도구에 액세스합니다.
      </Tab>

      <Tab title="iOS">
        1. [iOS에서 웹 검사기 활성화](https://developer.apple.com/library/archive/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html).
        2. Mac에서 Safari 브라우저를 열고 **개발자용 > 사용자의 기기 > 사용자의 사이트**를 선택합니다.
      </Tab>
    </Tabs>
  </Step>

  <Step title="Web SDK 로깅 활성화">
    이제 개발자 도구 콘솔에서 명령을 실행할 수 있습니다. 다음 코드를 실행합니다:

    ```javascript JavaScript theme={null}
      OneSignal.Debug.setLogLevel('trace');
    ```

    * 결과로 `undefined`가 표시되어야 합니다.
    * 탭을 닫고 동일한 페이지에 대해 새 탭을 엽니다. 새로고침만으로는 모든 SDK 초기화 이벤트가 트리거되지 않습니다.
    * 콘솔에서 OneSignal SDK 로그가 표시되기 시작합니다.

    <Frame caption="자세한 SDK 로그가 있는 콘솔">
      <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/PTU11ly5R0quyNQDYeb8_consoleLog1.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=388624dc46350f2c2c38e834297f2f59" width="2880" height="1214" data-path="images/docs/PTU11ly5R0quyNQDYeb8_consoleLog1.png" />
    </Frame>
  </Step>
</Steps>

### 구성 오류

OneSignal이 초기화된 후 다음과 같은 오류가 발생할 수 있습니다:

<Danger>
  오류: SDK already initialized
</Danger>

<Frame caption="중복 SDK 초기화 오류">
  <img src="https://mintcdn.com/onesignal/6sTkY-dQpGTrB0vT/images/sdk/sdk-already-initialized-error.png?fit=max&auto=format&n=6sTkY-dQpGTrB0vT&q=85&s=09e589bc31483e0cd9c052944376bb1e" width="1798" height="388" data-path="images/sdk/sdk-already-initialized-error.png" />
</Frame>

**이것이 의미하는 것:** OneSignal Web SDK `init` 코드가 두 번 이상 호출되고 있습니다. 이는 종종 WordPress 플러그인 설정과 수동 코드를 결합하거나 실수로 OneSignal `init` 코드를 여러 번 추가하여 발생합니다.

**수정 방법:** 중복된 `init` 호출을 제거하세요. WordPress 플러그인을 사용하는 경우 테마 파일에서 수동 OneSignal 코드를 제거하세요.

<Danger>
  오류: Can only be used on: (OneSignal 대시보드에 설정된 URL)
</Danger>

<Frame caption="예시는 OneSignal 대시보드에 설정된 URL `http://127.0.0.1:5501`이 현재 방문 중인 사이트 출처가 아님을 보여줍니다.">
  <img src="https://mintcdn.com/onesignal/6sTkY-dQpGTrB0vT/images/sdk/site-origin-mismatch-error.png?fit=max&auto=format&n=6sTkY-dQpGTrB0vT&q=85&s=6d6c788f674e4b65f0b20be4a70d1090" width="1798" height="564" data-path="images/sdk/site-origin-mismatch-error.png" />
</Frame>

**이것이 의미하는 것:** 현재 방문 중인 도메인이 OneSignal 대시보드에 구성된 사이트 URL과 일치하지 않습니다.

**수정 방법:** 브라우저에서 사이트 URL을 복사하여 OneSignal 대시보드 **설정 > Push 및 인앱 > Web > 사이트 URL** 구성에 붙여넣습니다. 다음 형식을 사용하여 사이트 출처인지 확인하세요:

* **프로토콜:** `https://`이어야 합니다 (로컬 테스트의 경우 [Localhost 구성](./web-sdk-setup#local-testing) 참조)
* **도메인:** `example.com` vs `www.example.com`
* **서브도메인:** `app.example.com` vs `example.com`

세 가지 구성 요소 모두 실제 사이트 URL과 대시보드 구성 간에 일치해야 합니다.

<Danger>
  오류: OneSignalSDK: The "My site is not fully HTTPS" option is no longer supported starting with version 16 (User Model) of the OneSignal SDK.
</Danger>

<Frame caption="HTTP 사이트가 지원되지 않는 오류 예시">
  <img src="https://mintcdn.com/onesignal/u7GEHl8RqZEg_hFd/images/sdk/http-site-not-supported-error.png?fit=max&auto=format&n=u7GEHl8RqZEg_hFd&q=85&s=5009ca5985c1ddcc0b1904146504f1db" width="526" height="141" data-path="images/sdk/http-site-not-supported-error.png" />
</Frame>

**이것이 의미하는 것:** OneSignal 대시보드가 HTTP 사이트를 사용하도록 구성되어 있으며 HTTPS를 사용하도록 업데이트했을 가능성이 있습니다.

HTTP를 사용하거나 "내 사이트가 완전히 HTTPS가 아닙니다" 옵션을 사용하는 동안 사이트에 가입한 사용자는 실제로 실제 사이트 출처가 아닌 `https://your-label.os.tc` 형식으로 제공된 서브도메인에 가입되어 있습니다. 이는 HTTP 사이트 또는 서비스 워커를 호스팅할 수 없는 웹사이트에서 웹 푸시가 지원되지 않기 때문입니다.

**수정 방법:** 2가지 옵션이 있지만 둘 다 사용자가 실제로 `os.tc` 서브도메인에 가입되어 있기 때문에 사용자가 다시 가입해야 합니다.

1. 새 OneSignal 앱을 만들고 OneSignal init 코드에 새 앱 ID를 설정합니다. 이것의 이점은 이전/원래 OneSignal 앱에서 계속 푸시를 보낼 수 있다는 것입니다. 사이트가 업데이트되었으며 업데이트를 계속 받으려면 다시 돌아와서 다시 가입해야 한다고 사용자에게 알리는 알림을 원하는 만큼 보내세요. 재가입을 위한 할인이나 인센티브를 제공하는 것이 큰 도움이 됩니다. "시작 URL"을 랜딩 페이지로 설정하고 벨 프롬프트, 사용자 정의 링크 프롬프트 또는 카테고리 슬라이드 프롬프트와 같이 쉽게 재가입할 수 있는 버튼을 제공하세요. 자세한 내용은 [권한 프롬프트](./permission-requests)를 참조하세요.

2. 동일한 앱 ID를 유지하려면 [앱 업데이트](/reference/update-an-app) API를 사용하여 `chrome_web_origin` 및 `safari_site_origin`을 HTTPS 사이트 출처로 업데이트해야 합니다. 이러한 사용자는 `os.tc` 서브도메인에 가입되어 있기 때문에 브라우저에서 사이트에 대한 푸시 권한이 허용되지 않습니다. 브라우저는 사이트에 가입되어 있다는 것을 "알지" 못하므로 다시 프롬프트가 표시됩니다. 다시 가입하면 동일한 브라우저에서 사이트에 대한 2개의 웹 푸시 구독이 생기고 중복 알림을 받게 됩니다. 이러한 이유로 중복 알림을 받지 않도록 [현재 모든 웹 푸시 구독자를 삭제](./delete-users)하는 것이 좋습니다. 삭제하기 전에 사이트가 업데이트되었으며 업데이트를 계속 받으려면 다시 가입해야 한다고 사용자에게 알리는 몇 가지 알림을 보내세요. 재가입을 위한 할인이나 인센티브를 제공하는 것이 매우 효과적입니다. "시작 URL"을 랜딩 페이지로 설정하고 벨 프롬프트, 사용자 정의 링크 프롬프트 또는 카테고리 슬라이드 프롬프트와 같이 쉽게 재가입할 수 있는 버튼을 제공하세요. 자세한 내용은 [권한 프롬프트](./permission-requests)를 참조하세요.

### 서비스 워커 설치 오류

[네이티브 권한 프롬프트](./permission-requests)가 표시되고 "허용"을 클릭하면 다음과 같은 서비스 워커 설치 오류가 발생할 수 있습니다:

<Danger>
  Y: 서비스 워커 등록에 실패했습니다.
</Danger>

<Danger>
  \[서비스 워커 설치] 서비스 워커 설치 실패 TypeError: 범위('`https://your-site.com/`')에 대해 스크립트('`https://your-site.com/...`')로 ServiceWorker를 등록하지 못했습니다: 스크립트를 가져올 때 잘못된 HTTP 응답 코드(404)를 받았습니다.
</Danger>

<Danger>
  \[서비스 워커 설치] 서비스 워커 설치 실패 TypeError: 범위('`https://www.yoursite.com/`')에 대해 스크립트('`https://www.yoursite.com/...`')로 ServiceWorker를 등록하지 못했습니다: 스크립트를 가져올 때 잘못된 HTTP 응답 코드(403)를 받았습니다.
</Danger>

<Frame caption="서비스 워커 설치 오류 예시">
  <img src="https://mintcdn.com/onesignal/6sTkY-dQpGTrB0vT/images/sdk/service-worker-installation-error.png?fit=max&auto=format&n=6sTkY-dQpGTrB0vT&q=85&s=a3471311e9e42d914e220e28525dbb8d" width="1798" height="816" data-path="images/sdk/service-worker-installation-error.png" />
</Frame>

<Danger>
  스크립트에 지원되지 않는 MIME 유형('현재 MIME 유형')이 있습니다.
  \[서비스 워커 설치] 서비스 워커 설치 실패 SecurityError: 범위('[https://your-site.com/')에](https://your-site.com/'\)에) 대해 스크립트('[https://your-site.com/...')로](https://your-site.com/...'\)로) ServiceWorker를 등록하지 못했습니다: 스크립트에 지원되지 않는 MIME 유형('현재 MIME 유형')이 있습니다.
</Danger>

<Frame caption="서비스 워커의 MIME 유형 오류">
  <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/f4215e3-Screen_Shot_2020-02-18_at_5.00.49_PM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=70bb68c3eb6f26e2c42c5462ec8ea138" width="2594" height="136" data-path="images/docs/f4215e3-Screen_Shot_2020-02-18_at_5.00.49_PM.png" />
</Frame>

<Danger>
  \[서비스 워커 설치] 서비스 워커 설치 실패 SecurityError: 범위('[https://your-site.com/')에](https://your-site.com/'\)에) 대해 스크립트('[https://your-site.com/...')로](https://your-site.com/...'\)로) ServiceWorker를 등록하지 못했습니다: 스크립트 리소스가 리디렉션 뒤에 있으며 이는 허용되지 않습니다.
</Danger>

<Frame caption="콘솔의 리디렉션 오류">
  <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/1ed3985-Screen_Shot_2020-02-19_at_7.12.05_PM.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=d7b09ca6815ca516b553505fd46d37cd" width="1643" height="74" data-path="images/docs/1ed3985-Screen_Shot_2020-02-19_at_7.12.05_PM.png" />
</Frame>

**이것이 의미하는 것:** 서비스 워커 파일이 잘못 구성되었습니다.

**수정 방법:**

<Steps>
  <Step title="서비스 워커 경로 찾기">
    SDK는 [서비스 워커 설정 가이드](./onesignal-service-worker)에 설명된 대로 사용자 지정 파일 이름이나 위치를 지정하지 않는 한 사이트의 루트 디렉터리에서 `OneSignalSDKWorker.js` 서비스 워커 파일을 찾습니다.

    SDK가 서비스 워커 파일을 찾을 수 있도록 올바른 파일 이름, 위치 및 범위를 구성했는지 확인하세요.
  </Step>

  <Step title="브라우저에서 서비스 워커 파일에 직접 방문">
    구성에 따라 브라우저에서 파일을 직접 엽니다.

    * 사용자 지정 위치를 구성하지 않은 경우 사이트의 루트에서 서비스 워커 파일의 JavaScript 코드를 볼 수 있어야 합니다: `https://yoursite.com/OneSignalSDKWorker.js`
    * WordPress를 사용하는 경우 여기에서 볼 수 있어야 합니다: `https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js`
    * 사용자 지정 위치를 사용하는 경우 여기에서 볼 수 있어야 합니다: `https://yoursite.com/your-custom-location/OneSignalSDKWorker.js`

    <Warning>
      파일 이름은 대소문자를 구분합니다. `OneSignalSDKWorker.js` 또는 구성한 파일 이름을 사용하는지 확인하세요.

      일부 서버는 파일 이름을 자동으로 소문자로 변환합니다. 파일을 찾을 수 없는 경우 이를 고려하세요.
    </Warning>
  </Step>

  <Step title="파일이 로드되는지 확인">
    * 다음 JavaScript 코드가 표시되어야 합니다:
      ```javascript JavaScript theme={null}
      importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");
      ```
    * 이 파일은 `content-type`이 `application/javascript`로 제공되어야 합니다.
    * 이 파일에 대한 리디렉션이 없어야 합니다. 파일은 사이트와 동일한 도메인에 호스팅되어야 합니다(CDN 또는 프록시 도메인 없음)
  </Step>
</Steps>

<Check>
  보다 자세한 설정 지침은 [서비스 워커 설정 가이드](./onesignal-service-worker)를 검토하세요.
</Check>

### 알림이 표시되지 않음

이 섹션에서는 다음을 가정합니다:

1. 기기에서 알림이 표시되지 않는 일반적인 이유에 대한 [알림이 표시되지 않음: Web Push](./notifications-not-shown-web-push) 가이드를 검토했습니다.
2. [네이티브 권한 프롬프트](./permission-requests)가 표시되고 "허용"을 클릭했습니다. 네이티브 권한 프롬프트를 통해 구독하지 않은 경우 위의 [프롬프트 표시 문제](#프롬프트-표시-문제)를 참조하세요.

위의 사항이 사실인 경우 다음 단계에 따라 구독 ID를 확인하고 푸시 알림을 전송하세요:

<Steps>
  <Step title="구독 ID 가져오기">
    브라우저 개발자 도구 콘솔에서 다음 코드를 실행합니다:

    ```javascript JavaScript theme={null}
      function getUserInfo() {
      	console.log('getUserInfo()');
      	Promise.all([
          OneSignal.Notifications.isPushSupported(),
      		OneSignal.Notifications.permission,
          OneSignal.User.PushSubscription.optedIn,
          OneSignal.User.PushSubscription.id
      	]).then(([
          isPushSupported,
          isSubscribed,
          isOptedIn,
          subscriptionId
        ]) => {
          console.log('The current URL of this page: ', location.href);
          console.log('Push is supported on this browser: ', isPushSupported);
          console.log('You are subscribed to notifications in the browser: ', isSubscribed);
          console.log('You are opted-in with OneSignal: ' , isOptedIn);
          console.log('Your OneSignal Subscription ID: ', subscriptionId);
        }).catch(e => {
          console.error('Error getting user info:', e);
        });
      }
      getUserInfo();
    ```

    다음 정보를 알려줍니다:

    * 혼동이 있는 경우 현재 페이지의 URL.
    * 현재 사용 중인 브라우저가 푸시 알림을 지원하는지 여부.
      * `true`는 브라우저가 푸시 알림을 지원함을 의미합니다.
      * `false`는 브라우저가 푸시 알림을 지원하지 않음을 의미합니다.
    * 브라우저에서 알림을 구독했는지 여부.
      * `true`는 이 URL에 대한 푸시 권한을 허용했음을 의미합니다.
      * `false`는 이 URL에 대한 푸시 권한을 허용하지 않았거나 거부했음을 의미합니다.
    * OneSignal로 옵트인했는지 여부.
      * `true`는 구독이 OneSignal의 푸시 알림에 구독되어 있음을 의미합니다.
      * `false`는 구독이 OneSignal의 푸시 알림에 구독되어 있지 않음을 의미합니다. 사이트에서 [`optOut()` 메서드](./web-sdk-reference)가 호출되고 있는지 확인하세요.
    * OneSignal 구독 ID.

      * 다음 단계를 위해 저장하세요. 이것은 푸시 알림을 전송하는 데 사용할 ID입니다.

          <Frame caption="사용자 정보 예시">
            <img src="https://mintcdn.com/onesignal/6sTkY-dQpGTrB0vT/images/sdk/user-info-example.png?fit=max&auto=format&n=6sTkY-dQpGTrB0vT&q=85&s=eb88becd62fc4da42bb26b2b6b6d61b6" width="1798" height="1054" data-path="images/sdk/user-info-example.png" />
          </Frame>

          <Warning>
            추가 지원이 필요한 경우 이 콘솔 데이터를 텍스트 파일로 저장하여 지원 팀과 공유하세요.
          </Warning>
  </Step>

  <Step title="알림 전송">
    알림을 구독하고 OneSignal로 옵트인했으며 구독 ID가 있는 경우 알림을 전송할 수 있습니다.

    [테스트 구독 찾기 및 설정](./test-users)의 단계에 따라 자신을 테스터로 설정하고 알림을 전송하세요.
  </Step>

  <Step title="Chrome으로 테스트">
    Chrome에서 알림을 받지 못하는 경우 이러한 Chrome 전용 진단 도구를 사용하여 문제를 식별하세요.

    1. 새 탭에서 `chrome://gcm-internals`를 엽니다.
    2. 왼쪽 상단의 "Start Recording" 버튼을 클릭합니다. "Connection State: CONNECTED"가 표시되는지 확인하세요.
    3. 이것을 열어 둔 채로 Chrome 웹 푸시 구독에 다른 푸시 알림을 전송하세요.
    4. 받은 경우 "Receive Message Log"에 무언가가 표시되어야 합니다.

    <Frame caption="GCM 내부 로깅">
      <img src="https://mintcdn.com/onesignal/6sTkY-dQpGTrB0vT/images/sdk/chrome-gcm-internals-logging.png?fit=max&auto=format&n=6sTkY-dQpGTrB0vT&q=85&s=1cb6d1d8b43673e34e3c8d4989e4e36b" width="2556" height="2228" data-path="images/sdk/chrome-gcm-internals-logging.png" />
    </Frame>

    * "Data msg received"가 표시되지 않으면 Chrome 브라우저가 전혀 알림을 받지 못하고 있는 것입니다. 이에 대해 지원팀에 알려주세요.
    * "Data msg received"가 표시되지만 여전히 알림을 받지 못한 경우 다음 단계로 계속 진행하세요.

    5. 새 탭에서 `chrome://serviceworker-internals`를 엽니다.
    6. `Scope: https://your-site.com`을 검색합니다 (`your-site.com`을 실제 사이트 도메인으로 교체).
    7. **Inspect** 또는 **Start -> Inspect**를 클릭합니다. Chrome 개발자 도구 팝업이 나타납니다.

    <Frame caption="서비스 워커 검사">
      <img src="https://mintcdn.com/onesignal/6sTkY-dQpGTrB0vT/images/sdk/chrome-serviceworker-internals-inspect.png?fit=max&auto=format&n=6sTkY-dQpGTrB0vT&q=85&s=bb162542bf608c5c85d74aa510eb2593" width="2288" height="1270" data-path="images/sdk/chrome-serviceworker-internals-inspect.png" />
    </Frame>

    8. 서비스 워커의 Chrome 개발자 도구 팝업에서 **Console** 탭을 클릭하고 `OneSignalWorker.log.trace();`를 실행합니다. `undefined`를 반환해야 합니다. 서비스 워커의 모든 메시지가 이제 이 팝업에 표시됩니다.
  </Step>
</Steps>

<Info>
  도움이 필요하신가요?

  지원 팀과 채팅하거나 `support@onesignal.com`으로 이메일을 보내주세요.

  다음을 포함해 주세요:

  * 발생한 문제의 세부 정보 및 재현 단계(가능한 경우)
  * OneSignal 앱 ID
  * External ID 또는 Subscription ID(해당하는 경우)
  * OneSignal 대시보드에서 테스트한 메시지의 URL(해당하는 경우)
  * 관련 [로그 또는 오류 메시지](/docs/ko/capturing-a-debug-log)

  기꺼이 도와드리겠습니다!
</Info>

***
