> ## 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.

# 활동 피드 만들기

> OneSignal의 REST API, Event Streams 또는 기기 내 로직을 사용하여 사용자 알림 기록을 추적하고 표시하는 인앱 활동 피드를 구축하는 방법을 알아보세요.

## 활동 피드란 무엇인가요?

활동 피드를 통해 사용자는 앱 내에서 수신한 알림의 기록을 볼 수 있습니다.

OneSignal은 알림 전달에 중점을 두지만 현재 각 개별 사용자에게 전송된 메시지의 기록을 저장하지 않습니다. 이 기능을 구축하려면 백엔드 서버 또는 사용자 기기에 직접 알림 데이터를 직접 저장해야 합니다.

<Tabs>
  <Tab title="옵션 1">
    ## 서버에 저장

    **권장 접근 방식**

    앱의 백그라운드 처리에 의존하는 대신 [Create notification](/reference/create-message) REST API를 사용하여 각 알림을 보내고 서버에 사본을 저장하세요. 그런 다음 앱이 시작될 때 서버에서 업데이트를 확인할 수 있습니다.

    데이터가 저장되면 언제든지 사용자의 알림 기록을 검색하고 표시할 수 있습니다.
  </Tab>

  <Tab title="옵션 2">
    ## OneSignal Event Streams를 사용하여 활동 피드 만들기

    OneSignal의 [Event Streams](./event-streams) 기능은 앱에서 백엔드 시스템이나 데이터 웨어하우스로 실시간 이벤트를 스트리밍하는 확장 가능한 방법을 제공합니다. 이를 통해 팔로우, 댓글, 구매 또는 알림 이벤트와 같은 인앱 사용자 행동을 반영하는 피드를 앱 내에서 수동으로 업데이트하지 않고도 구축할 수 있습니다.

    ### 작동 방식

    Event Streams는 다음을 포함한 라이브 이벤트 데이터를 내보냅니다:

    * 알림 전달
    * 이메일/SMS 열기 및 클릭
    * 사용자 트리거 작업

    대상에는 다음이 포함됩니다:

    * Webhooks(HTTP 엔드포인트)
    * Amazon Kinesis
    * Amazon S3
    * Google Cloud Storage
    * BigQuery
    * 기타

    시스템은 이러한 이벤트가 발생할 때 수신하고 이를 사용하여 피드 UI 또는 분석 파이프라인을 업데이트할 수 있습니다.

    ## Event Streams로 활동 피드를 설정하는 단계

    <Steps>
      <Step title="Event Streams 활성화">
        * **OneSignal 대시보드** > **Settings** > **Event Streams**로 이동하세요.
        * Webhook 또는 데이터 파이프라인(예: Amazon Kinesis)과 같은 대상을 선택하세요.
        * 스트리밍하려는 이벤트를 선택하세요(예: `message.sent`, `message.delivered`, `message.clicked`).
      </Step>

      <Step title="이벤트 데이터를 처리하도록 백엔드 구성">
        * 이벤트 데이터를 수집하는 webhook 또는 컨슈머를 만드세요.
        * 이벤트 페이로드를 파싱하여 다음과 같은 관련 필드를 추출하세요:

          * `external_id`(사용자 ID)
          * `event` 유형(`message.delivered` 등)
          * `timestamp`
          * `contents`(알림 메시지)
          * `additional_data`(사용자 지정 메타데이터)
      </Step>

      <Step title="활동 피드 항목 저장 및 구조화">
        * 이러한 이벤트를 쿼리 및 렌더링에 적합한 형식으로 데이터베이스에 저장하세요.

        ```json theme={null}
        {
          "message.id": "f3c9cd09-10d7-4f59-b9bc-66e16607f1d5",
          "message.name": "the-name-you-set",
          "message.title": "Claim 50% Off Today", // email subject example
          "message.title": "{'en':'the message title/headings'}", // push title example
          "message.contents": "{'en':'the message content'}",
          "message.template_id": "the-template-uuid-if-set",
          "message.url": "the-message-url",
          "message.app_url": "the-message-app-url",
          "message.web_url": "the-message-web-url"
        }
        ```
      </Step>

      <Step title="앱에서 피드 렌더링">
        * 로그인한 사용자에 대한 최근 이벤트를 쿼리하고 표시하는 프론트엔드 컴포넌트(예: React, SwiftUI 또는 Android View)를 구축하세요.
        * 선택적으로 이벤트 유형별 필터 또는 그룹화를 포함하세요.
      </Step>

      <Step title="추가 메타데이터로 향상">
        * 알림을 보낼 때 피드 컨텍스트를 제공하기 위해 `additional_data`를 포함하세요. 예를 들어:

          ```json theme={null}
          {
            "action": "commented",
            "post_id": "xyz123"
          }
          ```

        * 이를 통해 "Jane님이 게시물에 댓글을 달았습니다."와 같은 풍부한 피드 항목을 만들 수 있습니다.
      </Step>
    </Steps>

    ### 사용 사례 예시

    * **전자상거래**: 주문 확인, 배송 업데이트 및 프로모션을 표시합니다.
    * **소셜 앱**: 좋아요, 댓글, 팔로우를 표시합니다.
    * **SaaS 플랫폼**: 작업 할당, 멘션 또는 활동 로그를 추적합니다.

    ### 이점

    * 이벤트 스트리밍을 통한 실시간 업데이트
    * 완전히 사용자 지정 가능한 로직 및 디스플레이
    * 확장 가능한 백엔드 기반 아키텍처
  </Tab>
</Tabs>

***
