> ## 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 ID, External ID 및 채널 전반에서 구독 및 사용자 속성을 관리하는 방법을 포함하여 OneSignal에서 사용자가 작동하는 방식을 이해하세요.

## 개요

OneSignal에서 **사용자**는 메시징 채널(모바일 푸시, 웹 푸시, 이메일 및 SMS) 전반에서 하나 이상의 [구독](./subscriptions)을 가진 개인을 나타냅니다.

* 각 사용자는 최대 **20개의 구독**을 가질 수 있습니다.
* 모든 사용자에게는 **OneSignal ID** (UUID v4)가 자동으로 할당됩니다.
* 사용자는 **External ID**를 할당할 때까지 **익명**으로 시작합니다. External ID를 할당하면 구독이 함께 연결되며 사용자가 앱에 이미 존재하는 경우 기존 OneSignal ID를 대체할 수 있습니다.
* **사용자와 구독에는 서로 다른 속성이 있습니다.** 예를 들어 **태그**는 사용자 수준에 저장되는 반면 **구독 상태** (옵트인/아웃)는 구독에 속합니다.
* 사용자 컨텍스트가 변경되는 경우(예: 로그인(익명 → 식별됨) 또는 계정 전환(UserA → UserB)) **구독이 이전 사용자에서 새 사용자로 재할당**됩니다.
  * 구독은 이제 새 사용자의 속성을 상속합니다.
  * 이전 사용자에 연결된 속성(예: 태그, 언어 또는 External ID)은 더 이상 적용되지 않습니다.

**예시:**

* UserA에는 태그 `premium=true`가 있습니다
* UserB에는 태그 `premium=false`가 있습니다
* 구독이 UserA에서 UserB로 이동하면 더 이상 `premium=true`와 연결되지 않고 대신 UserB의 속성을 반영합니다.

<Frame>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/yZM6zn7nLDw?si=oT7ncbhX0sNtmKML" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

### 익명 사용자 vs. 식별된 사용자

* **익명 사용자:** External ID가 없음 → 각 구독이 자체 OneSignal ID로 별도로 존재(별도의 사용자로 취급됨).
* **식별된 사용자:** External ID가 있음 → OneSignal은 모든 구독을 단일 OneSignal ID로 병합합니다.

**예시: 익명 사용자**

* 웹 푸시 구독 → `OneSignal_ID_1`
* 모바일 구독 → `OneSignal_ID_2`
* 이메일 구독 → `OneSignal_ID_3`
* SMS 구독 → `OneSignal_ID_4`
* **결과:** 4명의 사용자(각 구독은 고유한 속성을 가진 별도의 사용자)

**예시: 식별된 사용자**

* External ID `External_ID_A`가 있는 웹 푸시 구독 → `OneSignal_ID_1`
* 동일한 `External_ID_A`가 있는 모바일 구독 → `OneSignal_ID_1`로 병합됨
* 동일한 `External_ID_A`가 있는 이메일 구독 → `OneSignal_ID_1`로 병합됨
* 동일한 `External_ID_A`가 있는 SMS 구독 → `OneSignal_ID_1`로 병합됨
* **결과:** 4개의 구독을 가진 1명의 사용자(모두 동일한 사용자에 연결됨)

<Note>
  항상 External ID를 할당하세요. 이렇게 하면 채널 및 기기 전반의 구독이 단일 사용자 프로필로 통합되고 중복이 방지됩니다.

  * 안정적이고 일반적이지 않은 식별자(예: 내부 사용자 ID 또는 이메일 주소)를 사용하세요.
  * 앱 수명 주기 초기에 `OneSignal.login`을 호출하세요.
</Note>

***

## 사용자 속성

| 속성               | 설명                                                                                                                                              |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **External ID**  | 시스템과 사용자를 통합하기 위해 할당하는 고유 식별자입니다.                                                                                                               |
| **OneSignal ID** | 각 사용자에 대해 OneSignal에서 자동 생성한 UUID v4입니다. External ID를 할당하면 변경될 수 있습니다.                                                                          |
| **별칭**           | `mixpanel_id : 1234`와 같은 키-값 쌍입니다. [별칭](./aliases)을 참조하세요.                                                                                      |
| **채널**           | 사용자가 가진 [구독](./subscriptions)(예: 푸시, 이메일 또는 SMS).                                                                                               |
| **국가**           | [ISO 3166-1 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) 형식의 국가 코드입니다.                                                            |
| **이메일**          | 가장 최근 이메일 구독의 이메일입니다.                                                                                                                           |
| **첫 세션**         | OneSignal에서 사용자가 처음 생성된 시간입니다.                                                                                                                  |
| **IP 주소**        | 최근 업데이트된 구독의 IP 주소입니다.                                                                                                                          |
| **언어**           | [ISO 639-1 형식](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes)의 사용자 언어입니다. API 또는 `setLanguage`를 통해 업데이트할 수 있습니다.                 |
| **마지막 세션**       | 앱 상호작용의 최신 타임스탬프입니다.                                                                                                                            |
| **위치**           | 모바일 구독의 GPS 좌표(위치 추적이 활성화된 경우). [위치 트리거 알림](./location-triggered-event)을 참조하세요.                                                                 |
| **전화**           | 가장 최근 SMS 구독의 전화번호입니다.                                                                                                                          |
| **태그**           | 사용자 지정 메타데이터(예: 기본 설정, 동작). [데이터 태그](./add-user-data-tags)를 참조하세요.                                                                              |
| **테스트 사용자 이름**   | 사용자를 테스트 사용자로 표시할 때 할당되는 레이블입니다. 대시보드 또는 API의 `test_user_name` 속성을 통해 설정합니다. [테스트 구독](./find-set-test-subscriptions#test-subscriptions)을 참조하세요. |
| **표준 시간대**       | SDK에서 설정한 [IANA TZ 형식](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)의 `timezone_id`입니다. API를 통해 업데이트할 수 있습니다.                   |

## OneSignal ID

**OneSignal ID**는 사용자를 고유하게 나타내기 위해 생성된 내부 UUID v4입니다. 다음과 같은 시나리오에서 자동으로 생성됩니다:

* 모바일 앱을 처음 열거나 재설치한 후
* 새 웹 푸시 구독
* [사용자 생성](/reference/create-user) 또는 [CSV 가져오기](./import)를 통해 사용자/구독 생성
* 브라우저 캐시를 지우고 사이트로 돌아감
* `OneSignal.logout`으로 로그아웃

`OneSignal.login`을 통해 **External ID**를 사용하면 현재 구독에 연결된 기존 OneSignal ID가 해당 External ID와 연결된 ID로 대체됩니다. 플랫폼 전반(푸시, 이메일, SMS)의 구독은 동일한 External ID를 공유하는 경우 동일한 OneSignal ID로 병합됩니다.

### 재할당 및 동작

사용자가 앱을 재설치하거나 캐시를 지우면 새 OneSignal ID 및 구독이 생성됩니다. 그러나 `OneSignal.login`을 호출하면 새 구독이 원래 사용자 프로필에 다시 연결됩니다.

`OneSignal.User.addEmail` 또는 `addSms`를 통해 추가된 구독은 현재 OneSignal ID를 상속합니다.

SDK 참조:

* [모바일 SDK 참조](./mobile-sdk-reference)
* [웹 SDK 참조](./web-sdk-reference)

## External ID

**External ID**는 기기 및 구독 전반에서 사용자를 추적하기 위해 할당하는 고유 문자열입니다.

<Frame caption="External ID를 사용하여 구독 전반에서 사용자를 추적합니다.">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/a30870df69f4545ec68fc9ff9902784b35ede0dd0ce7b3a5b03b8acb6bb1c748-eid.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=bcb07ae72a25e91288a5034a3e0ecb17" width="560" height="452" data-path="images/docs/a30870df69f4545ec68fc9ff9902784b35ede0dd0ce7b3a5b03b8acb6bb1c748-eid.png" />
</Frame>

다음을 통해 External ID를 설정하거나 제거할 수 있습니다:

* `OneSignal.login` - **권장** [모바일 SDK](./mobile-sdk-reference#login-external-id) 및 [웹 SDK](./web-sdk-reference#login-external-id) 참조
* [사용자 생성 API](/reference/create-user)
* [구독 전송 API](/reference/transfer-subscription)
* `OneSignal.logout` (제거하려면)

### 제한된 ID

External ID에 플레이스홀더 값이나 임시 값을 사용하지 마세요.

다음 값은 External ID에 사용할 수 없습니다:

* `NA`
* `NULL`
* `-1`
* `0`
* `1`
* `all`
* `00000000-0000-0000-0000-000000000000`

***

## 동일한 기기의 여러 사용자

여러 사용자가 기기를 공유하는 경우 각 새 로그인은 다른 External ID로 `OneSignal.login` 호출을 트리거해야 합니다. 이렇게 하면 OneSignal ID 및 구독이 새 사용자에게 재할당됩니다.

로그아웃을 처리하려면 다음을 수행하여 사용자 컨텍스트를 제거할 수 있습니다:

* `OneSignal.logout()` 호출 → External ID를 지우고 이전 사용자 속성(태그, 별칭 등)을 제거하며 익명 OneSignal ID를 할당합니다.
* 선택적으로 `optOut`을 사용하여 알림을 비활성화하고 다시 로그인할 때 `optIn`으로 다시 활성화합니다.

***

## 월간 활성 사용자(MAU)

MAU는 **청구**에 사용되며 30일 청구 기간 내에 마지막 세션이 있는 모바일 [구독](./subscriptions)으로 정의됩니다. 여기에는 다음이 포함됩니다:

* SDK를 통해 모바일 구독을 생성하여 처음으로 앱을 여는 사용자
* 앱을 재설치하고 다시 열어 SDK를 통해 다른 모바일 구독을 생성하는 사용자
* API를 통해 가져온 사용자

### MAU 청구 예시

사용자에게 다음 구독이 있는 경우:

* iOS 모바일 (지난 30일 동안 활성)
* Android 모바일 (지난 30일 동안 활성)
* 웹 푸시
* 이메일
* SMS

iOS 및 Android 모바일 구독만 계산되어 **2 MAU**가 됩니다.

구독 상태는 MAU 청구에 영향을 미치지 않습니다.

### MAU 줄이기 (예: 페이월 사용 사례)

모바일 SDK [개인정보 보호 메서드](./mobile-sdk-reference#privacy)를 사용하여 SDK 초기화 및 구독 생성을 지연시킬 수 있습니다.

1. SDK를 초기화하기 전에 `setConsentRequired()` 호출 – 구독 자동 생성을 방지합니다
2. 사용자에 대한 구독을 생성할 준비가 되면 `setConsentGiven()` 호출

***
