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

# 알림 작동 방식

> 8개 외부 플랫폼의 새 스트림, 동영상, 게시글, 에피소드를 Discord 서버에서 바로 공지하세요.

Vetox는 8개 외부 플랫폼을 감시하며 새로운 것이 나타날 때마다 서버에 공지를 게시합니다.

<CardGroup cols={4}>
  <Card title="Twitch" icon="twitch" href="/ko/notifications/twitch" />

  <Card title="Kick" icon="tower-broadcast" href="/ko/notifications/kick" />

  <Card title="YouTube" icon="youtube" href="/ko/notifications/youtube" />

  <Card title="Reddit" icon="reddit" href="/ko/notifications/reddit" />

  <Card title="Bluesky" icon="cloud" href="/ko/notifications/bluesky" />

  <Card title="Steam" icon="steam" href="/ko/notifications/steam" />

  <Card title="RSS" icon="rss" href="/ko/notifications/rss" />

  <Card title="팟캐스트" icon="podcast" href="/ko/notifications/podcasts" />
</CardGroup>

## 세 가지가 모두 참이어야 합니다

이는 알림이 작동하지 않는 것처럼 보이는 가장 흔한 이유입니다. 세 가지 모두 필요하며, 알림 페이지 자체에서 보이는 것은 첫 번째뿐입니다.

<Steps>
  <Step title="Basic 이상의 프리미엄">
    모든 플랫폼은 최소 **Basic** 티어가 필요합니다. Starter에서 구독을 추가하면 플랫폼 이름을 명시한 메시지로 거부됩니다.

    검사는 두 번 실행됩니다 — 항목을 추가할 때 한 번, 그리고 공지가 전송되는 순간 다시 한 번.
  </Step>

  <Step title="서버 설정의 플랫폼 토글">
    각 플랫폼은 [서버 설정](/ko/server-management/setup) 페이지에 자체 스위치가 있으며 **기본적으로 꺼져 있습니다**. 알림 자체를 구성하는 것만으로는 충분하지 않습니다.

    <Warning>
      두 알림 페이지 어디에서도 이 토글의 상태를 보여주지 않습니다. 완전히 구성되고 프리미엄이 결제된 피드가 알림 UI에 아무 표시 없이 조용히 발동하지 않을 수 있습니다. **먼저 서버 설정을 확인하세요.**
    </Warning>
  </Step>

  <Step title="채널 권한">
    Vetox는 대상 채널에서 **View Channel**, **Send Messages**, **Embed Links** 권한이 필요합니다. 아래를 참고하세요.
  </Step>
</Steps>

## 한도

**플랫폼별, 서버당 10개** — Twitch 스트리머 10명, YouTube 채널 10개, 서브레딧 10개 등.

이는 고정 제품 한도입니다. 더 높은 프리미엄 티어로 **증가하지 않으며**, Basic, Max, Black에서 동일합니다.

## 알림이 얼마나 빨리 도착하는지

Vetox는 고정된 일정으로 각 플랫폼을 폴링합니다. 콘텐츠가 나타난 후 다음 폴에서 공지가 도착합니다.

| 플랫폼     | 확인 주기 | 출처별 쿨다운 |
| ------- | ----- | ------- |
| Twitch  | 60초   | 10분     |
| Kick    | 60초   | 10분     |
| Bluesky | 60초   | 2분      |
| Reddit  | 3분    | 2분      |
| Steam   | 3분    | 2분      |
| YouTube | 5분    | 10분     |
| RSS     | 5분    | 5분      |
| 팟캐스트    | 5분    | 5분      |

**쿨다운**은 폴 주기와 무관하게 같은 출처의 두 공지 사이의 최소값입니다. 1분에 세 번 게시하는 서브레딧은 하나의 공지를 만들며, 셋이 아닙니다.

<Note>
  폴링은 단일 선출된 인스턴스에서 수행되므로 바쁜 서버라도 병렬 워커에서 중복을 받지 않습니다.
</Note>

### 두 가지 다른 추적 모델

| 모델         | 플랫폼          | 동작                                           |
| ---------- | ------------ | -------------------------------------------- |
| **라이브 상태** | Twitch, Kick | 스트림이 라이브인지 오프라인인지 추적하고, 그 상태가 \_변경\_되는 순간 공지 |
| **새 콘텐츠**  | 나머지 여섯       | 개별 항목을 추적하고 새로 등장한 것을 한 번씩 공지                |

<Warning>
  **이미 라이브 중인 스트리머를 추가해도 아무것도 발생하지 않습니다.** 라이브 상태 추적기는 offline → online 전환에서만 발동합니다. 스트림 중간에 추가하면 첫 공지는 그들의 *다음* 스트림입니다.

  현재 오프라인인 사람으로 테스트하거나 그냥 기다리세요.
</Warning>

<Note>
  라이브/오프라인 상태는 **서버별이 아니라 스트리머별**로 추적됩니다. 여러 서버가 같은 스트리머를 팔로우하면 하나의 공유 상태로 구동됩니다.
</Note>

## 공지되지 않는 것

<AccordionGroup>
  <Accordion title="추가하기 전에 게시된 것" icon="clock-rotate-left">
    구독 추가는 절대 이력을 채우지 않습니다. 항목을 추가한 후에 게시된 콘텐츠만 공지되어, 설정 중에 채널이 넘치지 않습니다.
  </Accordion>

  <Accordion title="2시간이 지난 콘텐츠" icon="hourglass-end">
    콘텐츠 기반 6개 플랫폼에서는 Vetox가 본 적 없더라도 2시간 이상 전에 게시된 것은 무시됩니다. 이는 장애 후 백로그가 쏟아지는 것을 방지합니다.

    피드가 읽을 수 있는 게시 날짜를 제공하지 않는 항목은 이 검사를 건너뛰어 나이와 상관없이 공지될 수 있습니다. 오래된 RSS 항목이 나타나는 경우가 가끔 이 때문입니다.
  </Accordion>

  <Accordion title="같은 항목을 두 번" icon="copy">
    공지된 모든 항목은 서버당 **7일** 동안 기억되어, 재시작이나 느린 폴이 중복을 만들지 않습니다. 같은 피드를 팔로우하는 두 서버는 각자 자체 복사본을 받습니다 — 한 서버가 항목을 보았다고 다른 서버에서 억제되지 않습니다.
  </Accordion>

  <Accordion title="Bluesky의 답글과 리포스트" icon="reply">
    원본 게시글만 공지됩니다. 답글과 리포스트는 이중으로 필터링됩니다. **인용 게시글은 필터링되지 않으며** 공지됩니다.
  </Accordion>

  <Accordion title="프리미엄이 만료된 동안 도착한 것" icon="triangle-exclamation">
    프리미엄이 비활성인 동안 본 항목은 아무것도 게시되지 않았어도 7일 동안 본 것으로 표시됩니다. 업그레이드해도 소급 공지되지 않습니다.

    프리미엄 재활성화 후에는 진짜 새로운 콘텐츠가 나타날 때까지 조용한 기간을 예상하세요.
  </Accordion>
</AccordionGroup>

## Discord 권한

전송 시점에 대상 채널의 봇 실시간 권한을 검사합니다:

| 권한                | 이유                                                        |
| ----------------- | --------------------------------------------------------- |
| **View Channel**  | Vetox는 볼 수 없는 채널에 게시할 수 없습니다                              |
| **Send Messages** | 공지를 게시하기 위해                                               |
| **Embed Links**   | 모든 알림은 임베드입니다. 이것이 없으면 Send Messages가 허용되어도 메시지가 즉시 거부됩니다 |

<Warning>
  **권한 실패는 해당 항목을 영구적으로 잃게 합니다.** 전송이 시도되기 전에 항목이 본 것으로 표시되며 재시도가 없습니다. 관심 있는 콘텐츠가 게시되기 *전에* 권한을 고치세요 — 이후가 아니라.
</Warning>

<Tip>
  채널에 커스텀 권한 오버라이트가 있는 경우 서버 전체 역할이 아닌 봇의 *유효* 권한을 거기서 확인하세요. Embed Links가 가장 자주 누락됩니다.
</Tip>

## 공지 커스터마이징

| 옵션                  | 기능                                                 |
| ------------------- | -------------------------------------------------- |
| **Discord channel** | 공지가 게시되는 곳. 추적된 항목별로 설정되어 다른 스트리머는 다른 채널에 게시할 수 있음 |
| **Mention role**    | 공지와 함께 핑되는 역할                                      |
| **Custom embed**    | 제목, 설명, 색상, 저자, 푸터, 썸네일, 이미지, 필드의 전체 제어            |
| **Custom message**  | 임베드 본문으로 사용되는 일반 텍스트. **RSS와 팟캐스트에서만 제공**          |

<Note>
  커스텀 메시지 컨트롤은 RSS와 Podcast 페이지에만 나타납니다. 다른 6개 플랫폼은 대신 커스텀 임베드를 사용합니다.
</Note>

### 임베드 크기 제한

| 필드            | 한도                   |
| ------------- | -------------------- |
| 제목            | 256자                 |
| 설명            | 4,096자               |
| 저자 이름         | 256자                 |
| 푸터 텍스트        | 2,048자               |
| 필드            | 25개, 각각 256 / 1,024자 |
| 이미지 및 썸네일 URL | 500자, SVG 불가         |

### 변수

임베드와 메시지 필드는 `{streamer.name}`처럼 중괄호 안의 변수를 지원합니다. 각 플랫폼마다 자체 세트가 있으며, 해당 플랫폼 페이지에 나열되어 있습니다.

<Warning>
  **알 수 없는 변수는 오류가 아니라 빈 텍스트가 됩니다.** 그리고 제목이나 값이 빈 값으로 끝나는 임베드 필드는 메시지에서 완전히 제외됩니다.

  따라서 계속 사라지는 필드는 거의 항상 오탈자 변수이거나 해당 플랫폼에 존재하지 않는 변수를 의미합니다. 플랫폼 페이지의 목록과 이름을 대조하세요 — 편집기의 드롭다운이 공식입니다.
</Warning>

<Note>
  Twitch와 Kick 스트림 변수 (`{stream.title}`, `{stream.viewers}` 등)는 **라이브** 공지에만 존재합니다. 오프라인 임베드에서 사용하면 빈 값으로 해석되고 필드가 사라집니다.
</Note>

## 멘션

구성한 멘션 역할은 일반적으로 핑됩니다.

<Warning>
  알림 임베드의 멘션은 구성된 역할에 **제한되지 않습니다**. 커스텀 메시지나 임베드 본문에 입력된 역할이나 사용자 멘션은 핑을 유발합니다. 커스텀 템플릿에서 `@everyone`을 사용할 때 주의하세요.
</Warning>

## 변경할 수 없는 두 설정

<Note>
  각 플랫폼의 **마스터 활성 스위치**와 **임베드 색상**은 저장되지만 대시보드에 작동하는 컨트롤이 없습니다. 모든 플랫폼은 브랜드 기본 색상을 사용하며 마스터 스위치는 토글할 수 없습니다.

  플랫폼을 끄려면 [서버 설정](/ko/server-management/setup) 토글을 사용하고, 색상을 설정하려면 커스텀 임베드를 사용하세요.
</Note>

## 문제 해결

<AccordionGroup>
  <Accordion title="아무것도 게시되지 않아요">
    순서대로:

    1. **서버 설정** 페이지의 플랫폼 토글이 켜져 있음 — 기본으로 꺼져 있고 여기서는 보이지 않음
    2. 서버에 활성 **Basic** 이상 프리미엄이 있음
    3. 대상 채널이 여전히 존재함
    4. Vetox가 거기서 **View Channel + Send Messages + Embed Links** 권한을 가짐
    5. Twitch와 Kick의 경우 — 추가된 이후 스트리머가 오프라인이 되었다가 돌아옴
  </Accordion>

  <Accordion title="라이브 공지는 오는데 오프라인 공지는 안 와요">
    오프라인 공지는 Twitch와 Kick에서 **기본으로 꺼져 있습니다**. 추적 스트리머에서 활성화하세요.
  </Accordion>

  <Accordion title="임베드 필드가 계속 사라져요">
    제목이나 값이 빈 값으로 해석되어 필드가 제거되었습니다. 거의 항상 오탈자 변수이거나 잘못된 플랫폼의 변수입니다.
  </Accordion>

  <Accordion title="11번째 항목을 추가할 수 없어요">
    플랫폼당 10개가 최대이며 티어에 따라 확장되지 않습니다. 먼저 하나를 제거하세요.
  </Accordion>

  <Accordion title="작동했는데 프리미엄 만료 후 멈췄어요">
    구성은 삭제되지 않고 유지되며 자동으로 재개됩니다. 하지만 만료 중에 게시된 것은 이미 본 것으로 표시되어 소급 공지되지 않습니다.
  </Accordion>

  <Accordion title="Twitch 또는 Kick 스트리머에서 채널을 지웠는데 아무 일도 없어요">
    비워진 채널 필드는 전송되지 않으므로 이전 채널이 유지되며 오류가 표시되지 않습니다. 지우지 말고 다른 채널을 선택하세요.
  </Accordion>
</AccordionGroup>
