> ## 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에서 활동, 위치, 태그 등을 기반으로 개인화된 메시징을 타겟팅하기 위한 동적 사용자 세그먼트를 생성하고 관리합니다.

세그먼트는 사용자가 앱 또는 사이트와 상호 작용할 때 자동으로 업데이트됩니다. 추가 추적이 필요하지 않습니다.

<Warning>
  푸시 알림, 이메일 및 SMS 메시지는 옵트인한(구독한) [구독](./subscriptions)에만 전송됩니다. 세그먼트 편집기는 투명성을 위해 구독 및 구독 취소 수를 모두 표시하지만, 세그먼트를 타겟팅할 때 메시지를 수신하는 것은 구독된 구독만입니다. In-App Message는 상태에 관계없이 모든 모바일 구독에 표시됩니다.

  Journey에서 사용될 때, 상태에 관계없이 세그먼트의 모든 구독이 각 [사용자](./users)에게 평가되며, 해당 사용자가 Journey에 입력됩니다.
</Warning>

***

## 세그먼트 유형

OneSignal 플랫폼은 두 가지 주요 세그먼트 카테고리를 지원합니다:

### 구독 기반 세그먼트

구독 기반 세그먼트는 장치 유형, 언어 또는 앱 버전 등과 같은 구독 속성에 대한 필터를 사용하여 빌드됩니다.

### 사용자 기반 세그먼트

사용자 기반 세그먼트는 개별 구독이 아닌 사용자 수준 속성에 대한 필터를 사용하여 빌드됩니다. 현재 이러한 세그먼트는 메시지 이벤트 및 사용자 지정 이벤트에 대한 필터를 지원합니다. 예시:

* 사용자가 OneSignal을 통해 전송된 Email, SMS 또는 푸시 알림을 마지막으로 연 시간
* 앱 또는 웹사이트에서 추적되는 특정 사용자 지정 이벤트

사용자 기반 세그먼트에는 기준을 충족하는 모든 사용자가 포함되며 모든 구독을 자동으로 타겟팅 대상으로 만들어 사용자의 모든 장치에 도달할 수 있는 더 풍부한 대상 정의를 가능하게 합니다.

***

## 세그먼트 생성

세그먼트는 대시보드, API 또는 CSV 업로드를 통해 만들 수 있습니다. 메시지를 보내거나 Journey를 빌드할 때 세그먼트를 포함하거나 제외하여 대상을 타겟팅합니다.

<Columns cols={3}>
  <Card title="대시보드" icon="display">
    **Audience > Segments**에서 세그먼트를 생성하고 관리합니다.
  </Card>

  <Card title="API" icon="code" href="/reference/create-segments">
    Create Segment API를 사용하여 프로그래밍 방식으로 세그먼트를 만듭니다.
  </Card>

  <Card title="CSV 가져오기" icon="file-csv" href="./import">
    CSV를 업로드하여 구독을 세그먼트에 일괄 가져옵니다.
  </Card>
</Columns>

**대시보드에서 세그먼트 생성**

<Steps>
  <Step title="Audience > Segments로 이동">
    대시보드의 Segments 페이지로 이동합니다.

    <Frame caption="Segments 페이지">
      <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/segments-tab.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=3cb693860c79428fe33135b5401c4941" alt="세그먼트 목록을 표시하는 Segments 페이지" width="1277" height="1054" data-path="images/segments/segments-tab.png" />
    </Frame>
  </Step>

  <Step title="New Segment 클릭">
    세그먼트 생성 인터페이스가 열립니다.

    <Frame caption="세그먼트 생성 인터페이스">
      <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/segment-creation-interface.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=f9b2ec793a299ea442ce7a04194a4a31" alt="필터 옵션과 세그먼트 이름 필드를 표시하는 세그먼트 생성 인터페이스" width="1301" height="1061" data-path="images/segments/segment-creation-interface.png" />
    </Frame>
  </Step>

  <Step title="필터를 추가하고 세그먼트 이름을 지정한 다음 Create Segment 클릭">
    * 대상 기준을 정의하는 필터를 추가합니다. 필터가 선택되지 않으면 앱의 모든 사용자가 기본값이 됩니다.
    * 세그먼트 이름을 지정하고 **Create Segment**를 클릭합니다.

    <Frame caption="세그먼트 생성 인터페이스">
      <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/segment-creation-example.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=13624ad1b90beedabcfa1ee6347529f0" alt="필터 옵션과 세그먼트 이름 필드를 표시하는 세그먼트 생성 인터페이스" width="1320" height="589" data-path="images/segments/segment-creation-example.png" />
    </Frame>
  </Step>
</Steps>

### 세그먼트 로직: AND vs OR

**AND**를 사용하여 *모두* 일치해야 하는 필터를 결합합니다. **OR**을 사용하여 여러 조건 중 *하나*와 일치시킵니다.

<Tabs>
  <Tab title="AND 예시">
    다음과 같은 사용자의 세그먼트를 생성합니다:

    * 지난 30일 이내에 활동한 사용자
    * 총 세션 수가 3개 이상인 사용자

    <Frame caption="AND 필터 세그먼트 설정">
      <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/and-filter-example.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=c013ccef30256763df80d07d850a2962" alt="30일 이내에 활동하고 세션이 3개 이상인 사용자를 위한 AND 필터 세그먼트" width="1311" height="639" data-path="images/segments/and-filter-example.png" />
    </Frame>
  </Tab>

  <Tab title="OR 예시">
    다음과 같은 사용자의 세그먼트를 생성합니다:

    * 7일 이상 돌아오지 않은 사용자
    * 지난 3일 동안 생성된 새 구독이 있는 사용자

    <Frame caption="OR 절 세그먼트 구성">
      <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/or-filter-example.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=82b594452c5432d927847e34e7d6f91d" alt="비활성 사용자와 새 구독을 결합하는 OR 필터 세그먼트" width="1298" height="672" data-path="images/segments/or-filter-example.png" />
    </Frame>
  </Tab>
</Tabs>

***

## 필터

필터는 세그먼트에 속하는 구독을 정의합니다. **AND** 또는 **OR** 로직을 사용하여 여러 필터를 결합할 수 있습니다.

필터가 선택되지 않으면 세그먼트는 앱의 모든 사용자를 기본값으로 합니다.

| 필터                 | 설명                                                                                                                                                                |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **First session**  | 사용자 생성 날짜/시간.                                                                                                                                                     |
| **Last session**   | 구독이 앱 또는 사이트를 마지막으로 연 시간.                                                                                                                                         |
| **Session count**  | 구독이 앱을 열거나 사이트를 방문한 횟수.                                                                                                                                           |
| **Usage duration** | 구독이 앱/사이트를 연 총 시간(초).                                                                                                                                             |
| **Language**       | 사용자의 선호 언어(장치/브라우저 기반). [다국어 지원](./multi-language-messaging)을 참조하세요.                                                                                              |
| **App version**    | Android `versionCode` 또는 iOS `CFBundleShortVersionString`에서 가져옵니다. **Device type**과 결합하여 각 플랫폼의 서로 다른 앱 버전으로 필터링합니다. [오래된 앱 버전 타겟팅](./app-version-update)을 참조하세요. |
| **Device type**    | iOS, Android, Web Push(브라우저), Email 등.                                                                                                                            |
| **User tag**       | SDK 또는 API를 통해 설정한 사용자 지정 태그. [태그 추가](./add-user-data-tags)를 참조하세요.                                                                                               |
| **Location**       | 좌표(위도/경도)에서 반경으로 필터링합니다. 최소 1미터, 최대 소수점 이하 2자리까지 정밀도가 필요합니다. [위치 권한](./mobile-sdk-reference#location)을 참조하세요.                                                     |
| **Country**        | 마지막 IP 지리적 위치 기반(ISO 3166-2 코드).                                                                                                                                  |
| **Test users**     | [테스트 사용자](./test-users)로 표시된 사용자.                                                                                                                                 |
| **Message Event**  | 메시지 이벤트로 필터링(예: "clicked", "delivered", "failed"). [메시지 이벤트 필터](#message-event-filters)를 참조하세요.                                                                   |
| **Custom Event**   | 사용자 지정 이벤트로 필터링(예: "purchase", "user login"). [사용자 지정 이벤트 필터](#custom-event-filters)를 참조하세요.                                                                      |

### 메시지 이벤트 필터

메시지 이벤트 필터를 사용하면 특정 기간 내에 메시징 채널 중 하나와의 상호 작용을 기반으로 사용자를 필터링할 수 있습니다.

<Frame caption="메시지 이벤트 필터">
  <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/message_event_filters.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=8ff30920fd89a72dd785f2949808e2c7" alt="채널, 작업 및 시간 창 선택기를 표시하는 메시지 이벤트 필터 옵션" width="1295" height="581" data-path="images/segments/message_event_filters.png" />
</Frame>

먼저 필터링할 메시징 채널을 선택한 다음 해당 채널에 대해 추적할 작업과 사용자가 해당 작업을 수행했는지 여부를 지정합니다.

사용자가 자격을 얻기 위해 작업을 수행해야 하는 최소, 최대 또는 정확한 횟수와 지난 24시간에서 지난 90일까지의 시간 창을 지정할 수 있습니다. `between` 옵션을 사용하여 사용자 지정 시작 및 종료 범위(며칠 전 기준)를 정의합니다.

**채널별 추적 가능한 상호 작용:**

|   채널   |                                   추적 가능한 상호 작용                                  |
| :----: | :-----------------------------------------------------------------------------: |
|  Push  |                         Sent, Received, Clicked, Failed                         |
|   SMS  |                             Sent, Delivered, Failed                             |
|  Email | Sent, Delivered, Opened, Clicked, Bounced, Failed, Suppressed, Reported as spam |
| In-App |                                Received, Clicked                                |

<Warning>
  메시지 이벤트 필터로 생성된 세그먼트는 사용자 기반입니다.

  Journey 외부에서 메시지를 보낼 때 포함 또는 제외를 위해 구독 기반 세그먼트와 결합할 수 없습니다.

  사용자 기반인 [Journey](./journeys-overview) 내에서는 이벤트 기반 세그먼트를 구독 기반 세그먼트와 결합하여 보다 유연한 타겟팅이 가능합니다.
</Warning>

**메시지 이벤트 보존**

메시지 이벤트 데이터의 보존 기간은 플랜에 따라 다릅니다. 대시보드 시간 창 선택기는 최대 90일을 표시하지만, 플랜의 보존 기간을 초과하는 데이터는 결과를 반환하지 않습니다.

<Card title="플랜별 메시지 이벤트 보존" icon="clock" href="./billing-faq#message-event-retention">
  보존 기간은 플랜에 따라 다릅니다 — 자세한 내용은 청구 FAQ를 참조하세요.
</Card>

### 사용자 지정 이벤트 필터

[사용자 지정 이벤트](./custom-events) 필터를 사용하면 앱, 웹사이트 또는 외부 시스템에서 수행한 의미 있는 작업을 기반으로 사용자를 타겟팅할 수 있습니다.

<Note>
  사용자 지정 이벤트 필터는 현재 **Early Access** 단계입니다.

  액세스를 요청하려면 회사 이름, OneSignal Organization ID 및 App ID와 함께 `support@onesignal.com`에 문의하세요.
</Note>

<Frame caption="사용자 지정 이벤트 필터">
  <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/custom_event_filters.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=99925f2d8c574a94b54817e7a8aae24c" alt="이벤트 유형 및 속성 선택기를 표시하는 사용자 지정 이벤트 필터 옵션" width="1305" height="757" data-path="images/segments/custom_event_filters.png" />
</Frame>

다음을 선택하여 시작합니다:

* 필터링할 이벤트 이름.
* 사용자가 해당 작업을 수행했는지(`has`) 또는 수행하지 않았는지(`has not`).
* 작업을 수행해야 하는 최소, 최대 또는 정확한 횟수.
* 작업을 수행해야 하거나 수행하지 않아야 하는 시간 창 — 사전 설정된 범위를 선택하거나 `between` 옵션을 사용하여 사용자 지정 창을 정의합니다(며칠 전 기준 시작 및 종료).

이벤트를 지정한 후 선택적으로 특정 또는 여러 속성을 필터링할 수 있습니다:

* `all` — 속성 전체에 AND 조건이 적용됩니다.
* `at least one` — OR 조건이 적용됩니다.

그런 다음 `dot notation`을 사용하여 필터링할 속성을 설정합니다.

* 사용자 지정 이벤트는 [JSON Objects](https://www.w3schools.com/js/js_json.asp)로 표현됩니다.
* 자세한 내용은 [사용자 지정 이벤트](./custom-events#what-is-a-custom-event%3F)를 참조하세요.

**예시**

다음 사용자 지정 이벤트가 주어진 경우:

```json theme={null}
{
  "events": [
    {
      "name": "cart_updated",
      "properties": {
        "product_name": "24 Pack of Acorns",
        "product_price": "12.99",
        "product_quantity": "2"
      },
      "external_id": "ID_OF_THE_USER"
    }
  ]
}
```

다음과 같이 필터링할 수 있습니다:

* `product_name` → 제품 이름이 `24 Pack of Acorns`인 사용자를 타겟팅합니다.
* `product_price` → 제품 가격이 `12.99`인 사용자를 타겟팅합니다.
* `product_quantity` → 제품 수량이 `2`인 사용자를 타겟팅합니다.

<Frame caption="사용자 지정 이벤트 필터 예시">
  <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/custom_event_filter_example.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=3b5b12a65bd8528e097cf1e46c185ff5" alt="제품 이름, 이미지, 가격, 수량 및 장바구니 URL을 표시하는 사용자 지정 이벤트 필터 예시" width="1299" height="721" data-path="images/segments/custom_event_filter_example.png" />
</Frame>

<Warning>
  사용자 지정 이벤트 필터로 생성된 세그먼트는 Early Access 단계이며 사용자 기반입니다. 사용자 지정 이벤트 세그먼트는 사용자 지정 이벤트 필터만 포함할 수 있으며 메시지를 보낼 때 포함 또는 제외를 위해 다른 세그먼트와 결합할 수 없습니다.
</Warning>

***

## 대상 수

세그먼트 편집기는 세그먼트의 구독 및 구독 취소된 구독 수를 채널(푸시, 이메일, SMS)별로 표시합니다.

* **구독된** 구독은 옵트인했으며 이 세그먼트를 타겟팅하면 메시지를 수신합니다.
* **구독 취소된** 구독은 세그먼트 필터와 일치하지만 옵트아웃했으며 메시지를 수신하지 않습니다.

채널 분류를 통해 채널별로 도달 가능한 구독과 도달 불가능한 구독을 확인할 수 있습니다 — 메시지 또는 Journey를 빌드하기 전에 어떤 채널이 가장 효과적인지 이해하는 데 유용합니다.

<Frame caption="대상 수">
  <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/audience_counts.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=f945aabbb335d53054b058f41bfad527" alt="채널별 구독 및 구독 취소 수를 표시하는 대상 수" width="1309" height="1089" data-path="images/segments/audience_counts.png" />
</Frame>

### 정확한 수와 추정값

OneSignal은 항상 약 15초 이내에 수를 반환합니다. 그 시간 제한 내에서 가능한 한 정확한 수를 확인할 수 있습니다. 정확한 수를 계산하는 데 오랜 시간이 걸릴 수 있는 크거나 복잡한 세그먼트의 경우 대신 추정값이 표시됩니다.

추정값은 정확하지 않음을 명확히 하기 위해 레이블이 표시됩니다:

| 세그먼트 크기   | 형식          | 예시                  |
| --------- | ----------- | ------------------- |
| 10,000 초과 | 오차 범위가 있는 수 | `140,000 +/- 5,000` |
| 10,000 미만 | 미만 값        | `<4,800`            |

두 형식 모두 숫자가 근사치임을 나타내기 위해 반올림됩니다. 추정값은 0으로 표시되지 않습니다: 세그먼트의 구성원이 매우 적은 경우에도 추정값은 세그먼트가 비어 있음을 암시하지 않기 위해 작은 0이 아닌 추정값을 반영합니다.

<Note>
  대상 수는 구독 기반 세그먼트에 사용 가능합니다. 사용자 기반 세그먼트 수는 아직 지원되지 않습니다.
</Note>

***

## 세그먼트 관리

대시보드에서 세그먼트를 볼 때 다음을 수행할 수 있습니다:

* **구독 보기:** 세그먼트에 있는 [구독](./subscriptions)을 확인합니다.
* **세그먼트 ID 복사:** API에서 사용할 세그먼트 ID를 복사합니다.
* **편집:** 필터 또는 이름을 변경합니다.
* **일시 중지 / 재개:** [세그먼트 제한](https://onesignal.com/pricing)에 가까우면 삭제하지 않고 세그먼트를 일시 중지할 수 있습니다. 일시 중지된 세그먼트를 타겟팅하면 실패합니다.
* **기본값으로 설정:** 새 메시지를 보낼 때 자동으로 선택되도록 기본 세그먼트를 설정합니다. 이를 통해 타겟팅 실수를 줄이고 시간을 절약할 수 있습니다.
* **복제:** 세그먼트의 필터를 복사하여 새 세그먼트를 생성합니다.
* **감사 로그 보기:** 세그먼트를 변경한 사람과 시간에 대한 [감사 로그](./audit-logs)를 확인합니다.
* **삭제:** 세그먼트를 삭제합니다.

### 세그먼트 삭제

세그먼트를 삭제하면 세그먼트 목록에서 제거됩니다. 세그먼트 내의 사용자는 삭제되지 **않습니다**. 세그먼트 내의 사용자를 삭제하려면 [사용자 삭제](./delete-users)를 참조하세요.

<Tabs>
  <Tab title="대시보드">
    1. **Audience > Segments**로 이동
    2. 세그먼트 옆의 점 3개 메뉴 클릭
    3. **Delete** 선택

    <Frame caption="세그먼트 옵션 메뉴">
      <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/segment-menu.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=50001e1271a9ce9067a81a4e07370517" alt="편집, 일시 중지, 복제 및 삭제 작업을 표시하는 세그먼트의 점 3개 옵션 메뉴" width="1290" height="1055" data-path="images/segments/segment-menu.png" />
    </Frame>
  </Tab>

  <Tab title="API">
    [Delete Segment API](/reference/delete-segments)를 사용합니다. 세그먼트 정의만 제거하며 세그먼트 내의 사용자는 삭제하지 않습니다.
  </Tab>
</Tabs>

***

## 자주 묻는 질문

### 세그먼트에 내 자신을 추가하려면 어떻게 해야 하나요?

테스트 사용자로 설정하거나 사용자 지정 태그를 추가한 다음 이를 타겟팅하는 세그먼트를 만듭니다.

1. [External ID](./users)를 사용하여 내 구독을 찾습니다.
2. 다음 중 하나를 수행합니다:
   * [테스트 사용자](./test-users)로 설정
   * 사용자 지정 [태그](./add-user-data-tags) 추가
3. **Test Users** 필터 또는 태그를 사용하여 세그먼트를 생성합니다.

### 세그먼트 수에 옵트아웃한 사용자가 포함되나요?

네. 세그먼트 편집기는 구독 및 구독 취소된 구독 수를 모두 표시합니다. 구독된 구독은 옵트인했으며 메시지를 수신합니다. 구독 취소된 구독은 필터와 일치하지만 옵트아웃했으며 메시지를 수신하지 않습니다.

메시지를 보낼 때는 구독된 구독만 타겟팅됩니다.

Journey 및 In-App Message에 사용되는 경우 세그먼트에는 구독한 구독과 구독 취소한 구독이 모두 포함됩니다.

### 세그먼트 수는 항상 정확한가요?

OneSignal은 항상 약 15초 이내에 수를 반환합니다. 더 작고 단순한 세그먼트의 경우 정확한 수입니다. 더 크고 복잡한 세그먼트의 경우 대신 추정값이 표시됩니다.

추정값은 정확도에 대해 명확히 레이블이 표시됩니다. 추정값의 형식과 의미에 대한 자세한 내용은 [대상 수](#audience-counts)를 참조하세요.
