> ## 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을 모바일 및 웹 애플리케이션에 통합하기 위한 개발자 가이드: SDK 설정, API 참조, 사용자 ID, 모바일 및 웹 전반의 테스트.

이 가이드는 개발자가 OneSignal을 모바일 및 웹 애플리케이션에 통합하는 데 도움을 드립니다. 처음 설정하는 경우 순서대로 진행하거나 필요한 섹션으로 바로 이동하세요.

1. [**시작하기**](#get-started) — OneSignal 앱에 액세스하고 API 키 찾기
2. [**메시징 채널 설정**](#set-up-messaging-channels) — SDK 설치 및 채널 구성
3. [**SDK 및 API 참조**](#sdk-and-api-reference) — 메서드, 클래스, 엔드포인트 상세 문서
4. [**사용자 및 ID**](#users-and-identity) — 사용자 식별, 구독 관리, 액세스 보안
5. [**튜토리얼**](#tutorials) — 일반적인 사용 사례에 대한 단계별 가이드
6. [**테스트 및 디버깅**](#testing-and-debugging) — 라이브 전에 통합 확인
7. [**분석 및 웹훅**](#analytics-and-webhooks) — 성능을 추적하고 서버 측에서 메시지 이벤트 수신

***

## 시작하기

팀에 이미 OneSignal 계정이 있다면 관리자에게 Organization에 [초대를 요청](./manage-team-members)하세요. 그렇지 않으면 [계정을 만들어](https://onesignal.com) 시작하세요.

OneSignal 앱은 사용자 및 메시지 데이터가 저장되는 곳입니다. 각 앱에는 고유한 앱 ID, API 키, 메시징 채널이 있습니다. 서로 다른 프로젝트나 환경을 위해 하나의 Organization에 여러 앱을 가질 수 있습니다.

<Columns cols={2}>
  <Card title="앱, Organization 및 계정" icon="building" href="./apps-organizations">
    앱, Organization, 계정의 관계.
  </Card>

  <Card title="키 및 ID" icon="key" href="./keys-and-ids">
    인증을 위한 앱 ID, REST API 키, Organization ID를 찾습니다.
  </Card>

  <Card title="팀 멤버 추가" icon="user-plus" href="./manage-team-members">
    개발자를 초대하고 Organization 내 역할을 할당합니다.
  </Card>

  <Card title="사용량 및 청구" icon="credit-card" href="./billing-faq">
    청구, 인보이스 및 사용량 세부 정보.
  </Card>
</Columns>

***

## 메시징 채널 설정

OneSignal SDK를 설치하여 플랫폼 전반의 사용자 참여를 생성하고 추적합니다. 각 메시지 채널에는 자격 증명, SDK 초기화, 튜토리얼을 다루는 자체 설정 가이드가 있습니다.

<Columns cols={3}>
  <Card title="모바일 SDK 설정" icon="mobile" href="./mobile-sdk-setup">
    iOS, Android, Huawei, Amazon용 SDK 설정. 푸시 알림, In-App Message, Live Activities를 지원합니다.
  </Card>

  <Card title="웹 푸시" icon="globe" href="./web-sdk-setup">
    Web SDK 설치 및 브라우저 푸시 알림 설정.
  </Card>

  <Card title="Email" icon="envelope" href="./email-setup">
    이메일 채널 구성 및 발신 도메인 확인.
  </Card>

  <Card title="In-App Message" icon="window-maximize" href="./in-app-messages-setup">
    모바일 앱 내에 풍부하고 대화형 메시지를 표시합니다.
  </Card>

  <Card title="SMS" icon="comment-sms" href="./sms-messaging">
    SMS 채널 설정 및 통신사 등록.
  </Card>

  <Card title="RCS" icon="message" href="./rcs-messaging">
    브랜드 콘텐츠와 읽음 확인이 포함된 리치 메시지.
  </Card>

  <Card title="Live Activities" icon="tower-broadcast" href="./live-activities">
    iOS 동적 잠금 화면 업데이트. Android에서도 유사한 기능 제공.
  </Card>
</Columns>

***

## SDK 및 API 참조

클라이언트 SDK, 서버 SDK, REST API에 대한 상세 문서.

<Columns cols={2}>
  <Card title="모바일 SDK 참조" icon="mobile" href="./mobile-sdk-reference">
    iOS, Android, 크로스 플랫폼 SDK의 메서드, 클래스, 이벤트 훅.
  </Card>

  <Card title="웹 SDK 참조" icon="globe" href="./web-sdk-reference">
    초기화, 사용자 관리, 구독 메서드, 사용자 지정 트리거.
  </Card>

  <Card title="서버 SDK 참조" icon="server" href="./server-sdk-reference">
    Node.js, Python, Java, Go, PHP, Ruby, C#, Rust용 서버 SDK 설치 및 구성.
  </Card>

  <Card title="REST API 개요" icon="code" href="/reference/rest-api-overview">
    엔드포인트, 인증, 속도 제한, 요청/응답 형식.
  </Card>

  <Card title="트랜잭션 메시지" icon="paper-plane" href="./transactional-messages">
    개인화된 데이터로 OTP, 영수증, 시간에 민감한 알림을 API를 통해 전송합니다.
  </Card>

  <Card title="GitHub의 서버 SDK" icon="github" href="https://github.com/OneSignal/sdks#server-sdks">
    모든 서버 SDK 라이브러리의 소스 코드와 예시.
  </Card>
</Columns>

***

## 사용자 및 ID

OneSignal은 각 사람에게 **OneSignal ID**를 할당하고, 기기, 이메일 주소, 전화번호를 **구독**으로 추적합니다. 사용자는 **External ID**와 함께 `login`을 호출하여 식별할 때까지 익명으로 유지됩니다. 사용자를 식별하면 채널과 기기 전반에 걸쳐 구독이 통합됩니다.

<Columns cols={2}>
  <Card title="사용자" icon="users" href="./users">
    사용자 모델, External ID, 익명 vs. 식별된 사용자, 로그인/로그아웃.
  </Card>

  <Card title="구독" icon="address-book" href="./subscriptions">
    메시지를 수신하는 기기, 이메일 주소, 전화번호.
  </Card>

  <Card title="ID 확인" icon="shield-halved" href="./identity-verification">
    사용자 사칭을 방지하기 위해 서버 생성 JWT를 요구합니다.
  </Card>

  <Card title="별칭" icon="fingerprint" href="./aliases">
    크로스 플랫폼 추적 및 통합을 위해 사용자 지정 식별자를 사용자에게 매핑합니다.
  </Card>

  <Card title="태그" icon="tags" href="./add-user-data-tags">
    개인화와 세분화를 위해 사용자에게 키-값 데이터를 설정합니다.
  </Card>

  <Card title="사용자 지정 이벤트" icon="bolt" href="./custom-events">
    Journey를 트리거하거나 분석을 지원하기 위해 사용자 행동을 추적합니다.
  </Card>
</Columns>

***

## 튜토리얼

OneSignal로 일반적인 메시징 사용 사례를 구현하기 위한 단계별 가이드.

<Card title="튜토리얼 및 사용 사례" icon="graduation-cap" href="./tutorials">
  장바구니 이탈, 온보딩 플로우, 재참여 캠페인 등을 위한 구현 가이드를 탐색하세요.
</Card>

***

## 테스트 및 디버깅

전체 오디언스에게 전송하기 전에 통합이 제대로 작동하는지 확인합니다.

<Tip>
  항상 [테스트 구독](./test-users)으로 먼저 테스트하세요. 실제 사용자에게 영향을 주지 않고 전달, 렌더링, 딥 링크를 확인할 수 있습니다.
</Tip>

<Columns cols={2}>
  <Card title="테스트 구독" icon="vial" href="./test-users">
    푸시, 이메일, SMS용 테스트 구독을 찾고 구성합니다.
  </Card>

  <Card title="디버그 로그" icon="bug" href="./capturing-a-debug-log">
    문제 해결을 위해 모바일 앱에서 상세 SDK 로그를 캡처합니다.
  </Card>

  <Card title="모바일 문제 해결" icon="mobile" href="./mobile-troubleshooting">
    일반적인 푸시 전달, APNS, In-App Message 문제를 해결합니다.
  </Card>

  <Card title="웹 문제 해결" icon="globe" href="./troubleshooting-web-push">
    서비스 워커, 브라우저 호환성, 웹 푸시 문제를 수정합니다.
  </Card>
</Columns>

***

## 분석 및 웹훅

메시지 성능을 추적하고 분석, 자동화 또는 외부 시스템과의 동기화를 위해 서버 측에서 메시지 이벤트를 수신합니다.

<Columns cols={2}>
  <Card title="Event Streams" icon="signal-stream" href="./event-streams">
    클릭, 열람, 수신 등 메시지 이벤트를 실시간으로 데이터 웨어하우스에 스트리밍합니다.
  </Card>

  <Card title="Journey 웹훅" icon="route" href="./journeys-webhook">
    Journey 단계에서 서버로 HTTP 요청을 보냅니다.
  </Card>

  <Card title="웹 푸시 웹훅" icon="link" href="./webhooks">
    웹 푸시 표시, 클릭, 닫기 이벤트에 대한 HTTP 콜백.
  </Card>
</Columns>

***

## 자주 묻는 질문

### REST API 요청을 어떻게 인증하나요?

`Authorization` 헤더에 Bearer 토큰으로 REST API 키를 포함합니다: `Authorization: Key YOUR_REST_API_KEY`. OneSignal 대시보드의 **설정 > 키 및 ID**에서 키를 확인하세요. 자세한 내용은 [키 및 ID](./keys-and-ids)를 참조하세요.

### 클라이언트 SDK와 서버 SDK의 차이점은 무엇인가요?

**클라이언트 SDK**(모바일 및 웹)는 사용자 기기의 앱에서 실행됩니다. 구독 등록, 권한 프롬프트, In-App Message, `login`을 통한 사용자 식별을 처리합니다. **서버 SDK**는 백엔드에서 실행되며 REST API를 호출하여 메시지 전송, 사용자 관리, 데이터 내보내기를 수행합니다.

### 기기 간 사용자를 어떻게 식별하나요?

사용자가 로그인한 후 각 기기에서 `OneSignal.login("your_external_id")`를 호출합니다. OneSignal은 동일한 External ID를 가진 모든 구독을 단일 사용자 아래에 통합합니다. 구현 세부 정보는 [사용자](./users#external-id)를 참조하세요.

### ID 확인을 설정해야 하나요?

ID 확인은 선택 사항이지만 프로덕션 앱에는 강력히 권장됩니다. 설정하지 않으면 어떤 클라이언트든 임의의 External ID로 `login`을 호출할 수 있습니다. [ID 확인](./identity-verification)을 활성화하면 서버 생성 JWT를 사용하도록 OneSignal SDK를 업데이트해야 하며, 사칭을 방지합니다.

***

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

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

  다음을 포함해 주세요:

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

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