앱 API 키는 단일 앱으로 범위가 지정된 모든 REST API 요청에 사용합니다: 메시지 전송, 사용자 생성 또는 업데이트, 메시지 기록 조회 등.대시보드는 기존 API 키 값을 표시하지 않습니다. 키 ID 열의 문자열은 내부 식별자일 뿐이며 키가 아닙니다. 다시 작동하는 비밀 키를 얻으려면 아래 단계에 따라 새 API 키를 생성하거나 기존 키를 교체하세요. 교체하면 동일한 키 ID, 이름, IP 허용 목록을 유지하면서 새 값이 생성되고 이전 값은 즉시 작동을 멈춥니다.
대시보드는 키 ID를 표시하며 API 키 값은 표시하지 않습니다. 실제 값(os_v2_app_로 시작)은 키가 생성되거나 교체될 때 한 번만 표시됩니다.
앱 API 키 생성다음 단계에 따라 대시보드에서 앱 API 키를 생성하거나 API 키 생성 API를 사용하세요.
OneSignal은 이름 지정, 교체, IP 허용 목록을 갖춘 앱 및 조직 API 키를 2024년 11월에 도입했습니다. 레거시 User Auth key와 원래 REST API 키는 계속 사용할 수 있지만, 이를 위한 관리 UI는 제거되었고 새 키를 생성할 수 없습니다.
API 키 값은 os_v2_app_로 시작하며 키 생성 또는 교체 직후에 한 번만 표시됩니다. 대시보드의 키 ID 열은 내부 식별자이며 API 키가 아닙니다. 인증에 사용하면 401 Unauthorized를 반환합니다. 키 값을 저장하지 않은 경우 키를 교체하여 새 값을 생성하세요. 전체 흐름은 앱 API 키 또는 조직 API 키를 참조하세요.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OneSignal Documentation","description":"OneSignal is a platform for sending push notifications, emails, in-app messages, and SMS campaigns via a single API, Journey Builder, and a dashboard.","colors":{"primary":"#3A3DB3","light":"#E54B4D","dark":"#3A3DB3"},"logo":{"light":"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107","dark":"https://mintcdn.com/onesignal/s4WC_KzLxf8ornqq/logo/OneSignal-Logo-White.svg?fit=max\u0026auto=format\u0026n=s4WC_KzLxf8ornqq\u0026q=85\u0026s=2573a53b5aea961e18c82b3af8f31925"},"favicon":"https://mintcdn.com/onesignal/SGduBFHpiRdg5l6h/favicon.ico?fit=max\u0026auto=format\u0026n=SGduBFHpiRdg5l6h\u0026q=85\u0026s=c0a99fadc0553c658a83741c5611cef4","api":{"examples":{"languages":["curl","typescript","python","php","go","ruby","java","csharp","rust"],"autogenerate":true}},"navbar":{"links":[{"href":"mailto:support@onesignal.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.onesignal.com"}},"footer":{"socials":{"github":"https://github.com/OneSignal","linkedin":"https://linkedin.com/company/onesignal","youtube":"https://www.youtube.com/@onesignalofficial/playlists"}},"seo":{"metatags":{"apple-mobile-web-app-title":"OneSignal Docs"}},"fonts":{"family":"Nunito Sans"},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"ga4":{"measurementId":"G-2DGWL0VYP5"},"posthog":{"apiKey":"phc_vZpvE0f5eyzcOt30FHer34yddVmNdo9kmlMVRBzLMtn","apiHost":"https://eu.i.posthog.com","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","href":"docs/en/home"},{"language":"cn","href":"docs/cn/home"},{"language":"ko","href":"docs/ko/home"},{"language":"ja","href":"docs/ja/home"},{"language":"tr","href":"docs/tr/home"},{"language":"pt-BR","href":"docs/pt-BR/home"},{"language":"es","href":"docs/es/home"},{"language":"fr","href":"docs/fr/home"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"onesignal","hasAudioNarration":false,"actualSubdomain":"onesignal","customDomains":["documentation.onesignal.com"],"gitSource":{"type":"github","owner":"onesignal","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af263cb6575a850b3cad407","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"en","tag":"User Guides","count":203},{"language":"es","tag":"Guías del Usuario","count":178},{"language":"fr","tag":"Guides utilisateur","count":178},{"language":"ja","tag":"ユーザーガイド","count":178},{"language":"ko","tag":"사용자 가이드","count":178},{"language":"pt-BR","tag":"Guia do Usuário","count":178},{"language":"tr","tag":"Kullanıcı Kılavuzları","count":178},{"language":"cn","tag":"用户指南","count":176},{"language":"en","tag":"Message channels","count":90},{"language":"es","tag":"Canales de mensajería","count":84},{"language":"fr","tag":"Canaux de messagerie","count":84},{"language":"ja","tag":"メッセージングチャネル","count":84},{"language":"ko","tag":"메시지 채널","count":84},{"language":"pt-BR","tag":"Canais de mensagem","count":84},{"language":"tr","tag":"Mesaj kanalları","count":84},{"language":"cn","tag":"消息渠道","count":83},{"language":"default","tag":"API Reference","count":68},{"language":"default","tag":"API reference","count":64},{"language":"en","tag":"Analytics \u0026 Integrations","count":53},{"language":"es","tag":"Analítica \u0026 Integraciones","count":52},{"language":"fr","tag":"Analyses et intégrations","count":52},{"language":"ja","tag":"分析 \u0026 統合","count":52},{"language":"ko","tag":"분석 \u0026 통합","count":52},{"language":"pt-BR","tag":"Análises \u0026 Integrações","count":52},{"language":"tr","tag":"Analitik ve Entegrasyonlar","count":52},{"language":"cn","tag":"分析和集成","count":51},{"language":"cn","tag":"开发者指南","count":48},{"language":"es","tag":"Guías del desarrollador","count":48},{"language":"fr","tag":"Guides développeur","count":48},{"language":"ja","tag":"開発者ガイド","count":48},{"language":"ko","tag":"개발자 가이드","count":48},{"language":"tr","tag":"Geliştirici Kılavuzları","count":48},{"language":"en","tag":"Developer Guides","count":47},{"language":"pt-BR","tag":"Guia de desenvolvedor","count":47},{"language":"en","tag":"Integrations","count":37},{"language":"es","tag":"Integraciones","count":37},{"language":"fr","tag":"Intégrations","count":37},{"language":"ja","tag":"統合","count":37},{"language":"ko","tag":"통합","count":37},{"language":"pt-BR","tag":"Integrações","count":37},{"language":"tr","tag":"Entegrasyonlar","count":37},{"language":"cn","tag":"集成","count":36},{"language":"en","tag":"Tutorials","count":35},{"language":"cn","tag":"推送通知","count":31},{"language":"cn","tag":"OneSignal 作为目的地","count":31},{"language":"en","tag":"Push","count":31},{"language":"en","tag":"OneSignal as destination","count":31},{"language":"es","tag":"Push notificaciones","count":31},{"language":"es","tag":"OneSignal como destino","count":31},{"language":"fr","tag":"Push","count":31},{"language":"fr","tag":"OneSignal comme destination","count":31},{"language":"ja","tag":"プッシュ通知","count":31},{"language":"ja","tag":"OneSignal as 宛先","count":31},{"language":"ko","tag":"푸시","count":31},{"language":"ko","tag":"OneSignal을 데이터 목적지로 사용","count":31},{"language":"pt-BR","tag":"Push notificações","count":31},{"language":"pt-BR","tag":"OneSignal como destino","count":31},{"language":"tr","tag":"Anlık bildirimler","count":31},{"language":"tr","tag":"OneSignal hedef","count":31},{"language":"en","tag":"Mobile SDKs","count":26},{"language":"cn","tag":"移动SDK","count":25},{"language":"es","tag":"SDKs móviles","count":25},{"language":"fr","tag":"SDK mobiles","count":25},{"language":"ja","tag":"モバイルSDK","count":25},{"language":"ko","tag":"모바일 SDKs","count":25},{"language":"pt-BR","tag":"SDKs móveis","count":25},{"language":"tr","tag":"Mobil SDK'lar","count":25},{"language":"cn","tag":"教程","count":24},{"language":"es","tag":"Tutoriales","count":24},{"language":"fr","tag":"Tutoriels","count":24},{"language":"ja","tag":"チュートリアル","count":24},{"language":"ko","tag":"튜토리얼","count":24},{"language":"pt-BR","tag":"Tutoriais","count":24},{"language":"tr","tag":"Eğitimler","count":24},{"language":"en","tag":"Mobile SDK setup","count":19},{"language":"cn","tag":"移动SDK设置","count":18},{"language":"es","tag":"Configuración del SDK móvil","count":18},{"language":"fr","tag":"Configuration SDK mobile","count":18},{"language":"ja","tag":"モバイルSDKセットアップ","count":18},{"language":"ko","tag":"모바일 SDK 설정","count":18},{"language":"pt-BR","tag":"Configuração do SDK móvel","count":18},{"language":"tr","tag":"Mobil SDK kurulumu","count":18},{"language":"default","tag":"Messages","count":9},{"language":"default","tag":"Users","count":9},{"language":"default","tag":"Organization","count":9},{"language":"default","tag":"Journeys","count":8},{"language":"default","tag":"Deprecated","count":6},{"language":"default","tag":"Templates","count":6},{"language":"default","tag":"Subscriptions","count":6},{"language":"default","tag":"Segments","count":5}]},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"email":"support@onesignal.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"docs/ko/keys-and-ids","slug":"/docs/ko/keys-and-ids","pageMetadata":{"title":"키 및 ID","description":"OneSignal App ID, Organization ID 및 API 키를 찾고 관리하는 방법을 알아봅니다. 키를 생성, 교체, 보호하고 안전하게 마이그레이션하는 방법을 설명합니다.","keywords":["App ID","API 키","앱 API 키","조직 API 키","키 ID","API 키 찾기","REST API 인증","IP 허용 목록","키 교체"],"href":"/docs/ko/keys-and-ids"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"OneSignal App ID, Organization ID 및 API 키를 찾고 관리하는 방법을 알아봅니다. 키를 생성, 교체, 보호하고 안전하게 마이그레이션하는 방법을 설명합니다.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,Check,Columns,Frame,Heading,Note,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!Check)_missingMdxReference(`Check`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`OneSignal 계정에는 `,_jsx(_components.strong,{children:`공개 ID`}),`(App ID, Organization ID)와 `,_jsx(_components.strong,{children:`비공개 API 키`}),`(앱 API 키, 조직 API 키)가 포함되어 있습니다.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`#app-id`,children:`앱 ID`}),`와 `,_jsx(_components.a,{href:`#organization-id`,children:`조직 ID`}),`는 공개 식별자이며, 클라이언트 측 코드와 SDK 초기화에 안전하게 사용할 수 있습니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`#app-api-key`,children:`앱 API 키`}),`와 `,_jsx(_components.a,{href:`#organization-api-key`,children:`조직 API 키`}),`는 비공개 비밀 정보입니다. 안전하게 저장하고 클라이언트 측 코드에 절대 노출하지 마세요.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`OneSignal 대시보드의 `,_jsx(_components.strong,{children:`Settings > Keys \u0026 IDs`}),`(앱 수준) 또는 `,_jsx(_components.strong,{children:`Organizations > 귀하의 조직 > Keys \u0026 IDs`}),`(조직 수준)에서 확인할 수 있습니다.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`앱-id`,children:`앱 ID`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`앱 ID`}),`는 OneSignal 앱을 식별하는 공개 UUID(v4)입니다.`]}),`\n`,_jsx(_components.p,{children:`다음 용도로 사용합니다:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`SDK 초기화(모바일 SDK 설정, 웹 SDK 설정)`}),`\n`,_jsx(_components.li,{children:`메시지 생성 및 사용자 생성과 같은 API 요청`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`대시보드의 `,_jsx(_components.strong,{children:`Settings > Keys \u0026 IDs`}),`에서 또는 `,_jsx(_components.a,{href:`/reference/view-apps`,children:`앱 보기`}),` API를 통해 앱 ID를 확인할 수 있습니다.`]}),`\n`,_jsx(Frame,{caption:`Settings > Keys \u0026 IDs에서의 앱 ID 위치`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/dashboard-keys-and-ids-app-id-number.jpg?fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=07fa6040dbc41ffa7dff116a0b1ad575`,alt:`Keys \u0026 IDs 설정 페이지에서 강조 표시된 앱 ID 값`,\"data-og-width\":`1375`,width:`1375`,\"data-og-height\":`528`,height:`528`,\"data-path\":`images/dashboard/dashboard-keys-and-ids-app-id-number.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/dashboard-keys-and-ids-app-id-number.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=4167b84e76b6ea33fa230c7ed2dfa05f 280w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/dashboard-keys-and-ids-app-id-number.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=a849d7cde99e99c1a6c9da6b0886ab1c 560w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/dashboard-keys-and-ids-app-id-number.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=e2d4c6d7349b105b58d856350ea7e3dd 840w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/dashboard-keys-and-ids-app-id-number.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=d5c94c58ff5043bac39ccf194f924e49 1100w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/dashboard-keys-and-ids-app-id-number.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=601276d895887668498da2126c870189 1650w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/dashboard-keys-and-ids-app-id-number.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=91575e2c65c850ac1539e50d4c73a25a 2500w`})}),`\n`,_jsx(Check,{children:_jsx(_components.p,{children:`앱 ID는 클라이언트 측 SDK 초기화에 안전하게 사용할 수 있습니다. 비밀 정보가 아닙니다.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`조직-id`,children:`조직 ID`}),`\n`,_jsx(_components.p,{children:`**조직 ID(Org ID)**는 청구 플랜에 따라 모든 앱을 그룹화하는 UUID(v4)입니다.`}),`\n`,_jsx(_components.p,{children:`다음과 같은 조직 수준 API에 필요합니다:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/reference/create-an-app`,children:`앱 생성`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/reference/update-an-app`,children:`앱 업데이트`})}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Organizations > 귀하의 조직 > Keys \u0026 IDs`}),` 또는 `,_jsx(_components.a,{href:`/reference/view-an-app`,children:`앱 보기`}),` API를 통해 확인할 수 있습니다.`]}),`\n`,_jsx(Frame,{caption:`OneSignal 대시보드에서의 조직 ID 위치`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/MWGmj5X1CnFliD-c/images/dashboard/dashboard-keys-and-ids-organization-id.png?fit=max\u0026auto=format\u0026n=MWGmj5X1CnFliD-c\u0026q=85\u0026s=b28d6312569975a67ca3eb1be9f568e4`,alt:`Keys \u0026 IDs 아래에 조직 ID를 보여주는 OneSignal 대시보드`,\"data-og-width\":`2560`,width:`2560`,\"data-og-height\":`1228`,height:`1228`,\"data-path\":`images/dashboard/dashboard-keys-and-ids-organization-id.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/MWGmj5X1CnFliD-c/images/dashboard/dashboard-keys-and-ids-organization-id.png?w=280\u0026fit=max\u0026auto=format\u0026n=MWGmj5X1CnFliD-c\u0026q=85\u0026s=67618d4d67afb7c64281bdd915f1e61a 280w, https://mintcdn.com/onesignal/MWGmj5X1CnFliD-c/images/dashboard/dashboard-keys-and-ids-organization-id.png?w=560\u0026fit=max\u0026auto=format\u0026n=MWGmj5X1CnFliD-c\u0026q=85\u0026s=ff673bb224b8f30eb36de61511429c67 560w, https://mintcdn.com/onesignal/MWGmj5X1CnFliD-c/images/dashboard/dashboard-keys-and-ids-organization-id.png?w=840\u0026fit=max\u0026auto=format\u0026n=MWGmj5X1CnFliD-c\u0026q=85\u0026s=ac3a9231d83b6f7a4b4f6a179dac7793 840w, https://mintcdn.com/onesignal/MWGmj5X1CnFliD-c/images/dashboard/dashboard-keys-and-ids-organization-id.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MWGmj5X1CnFliD-c\u0026q=85\u0026s=a28d5f149b45a796e8dbb6f7a5510e53 1100w, https://mintcdn.com/onesignal/MWGmj5X1CnFliD-c/images/dashboard/dashboard-keys-and-ids-organization-id.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MWGmj5X1CnFliD-c\u0026q=85\u0026s=fd86a12de8770f4991c894a49c7ae937 1650w, https://mintcdn.com/onesignal/MWGmj5X1CnFliD-c/images/dashboard/dashboard-keys-and-ids-organization-id.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MWGmj5X1CnFliD-c\u0026q=85\u0026s=b678cd934e1fa554fd1e6cdf5f0f9eac 2500w`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`api-키`,children:`API 키`}),`\n`,_jsx(_components.p,{children:`두 가지 종류의 API 키가 있습니다. 둘 다 REST API 요청을 인증하며 비밀로 유지되어야 합니다. 원하는 작업에 맞는 키를 선택하세요:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`키`}),_jsx(_components.th,{children:`사용 용도`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`#app-api-key`,children:`앱 API 키`})}),_jsx(_components.td,{children:`단일 앱: 메시지 전송, 사용자 생성, 통계 조회.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`#organization-api-key`,children:`조직 API 키`})}),_jsx(_components.td,{children:`조직 전체: 앱 생성 및 다른 API 키 관리.`})]})]})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`앱당 최대 16개의 앱 API 키와 조직당 최대 16개의 조직 API 키를 생성할 수 있습니다.`})}),`\n`,_jsx(Heading,{level:`3`,id:`앱-api-키`,children:`앱 API 키`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`앱 API 키`}),`는 단일 앱으로 범위가 지정된 모든 REST API 요청에 사용합니다: 메시지 전송, 사용자 생성 또는 업데이트, 메시지 기록 조회 등.`]}),`\n`,_jsxs(_components.p,{children:[`대시보드는 기존 API 키 값을 표시하지 않습니다. 키 ID 열의 문자열은 내부 식별자일 뿐이며 키가 아닙니다. 다시 작동하는 비밀 키를 얻으려면 아래 단계에 따라 새 API 키를 생성하거나 `,_jsx(_components.a,{href:`#rotate-a-key`,children:`기존 키를 교체`}),`하세요. 교체하면 동일한 키 ID, 이름, IP 허용 목록을 유지하면서 새 값이 생성되고 이전 값은 즉시 작동을 멈춥니다.`]}),`\n`,_jsx(Frame,{caption:`대시보드는 키 ID를 표시하며 API 키 값은 표시하지 않습니다. 실제 값(os_v2_app_로 시작)은 키가 생성되거나 교체될 때 한 번만 표시됩니다.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/yYUi2EK-maheXJet/images/dashboard/api-key-list.png?fit=max\u0026auto=format\u0026n=yYUi2EK-maheXJet\u0026q=85\u0026s=e6c8dcfa23dc56ec4a2de364ffdffd99`,alt:`API 키 값이 아닌 키 ID 열을 보여주는 OneSignal 대시보드의 API Keys 테이블`,\"data-og-width\":`2728`,width:`2728`,\"data-og-height\":`1104`,height:`1104`,\"data-path\":`images/dashboard/api-key-list.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/yYUi2EK-maheXJet/images/dashboard/api-key-list.png?w=280\u0026fit=max\u0026auto=format\u0026n=yYUi2EK-maheXJet\u0026q=85\u0026s=3db441d7595a23f74ec91206f2122a54 280w, https://mintcdn.com/onesignal/yYUi2EK-maheXJet/images/dashboard/api-key-list.png?w=560\u0026fit=max\u0026auto=format\u0026n=yYUi2EK-maheXJet\u0026q=85\u0026s=bfc4b00e095826f154e1346d5443a140 560w, https://mintcdn.com/onesignal/yYUi2EK-maheXJet/images/dashboard/api-key-list.png?w=840\u0026fit=max\u0026auto=format\u0026n=yYUi2EK-maheXJet\u0026q=85\u0026s=8b65cc66d764fca55dcdd6a5457345cb 840w, https://mintcdn.com/onesignal/yYUi2EK-maheXJet/images/dashboard/api-key-list.png?w=1100\u0026fit=max\u0026auto=format\u0026n=yYUi2EK-maheXJet\u0026q=85\u0026s=9ac502069df86df52de3e0f6b85ef0e9 1100w, https://mintcdn.com/onesignal/yYUi2EK-maheXJet/images/dashboard/api-key-list.png?w=1650\u0026fit=max\u0026auto=format\u0026n=yYUi2EK-maheXJet\u0026q=85\u0026s=4ec95f975f174848646eddef11f37065 1650w, https://mintcdn.com/onesignal/yYUi2EK-maheXJet/images/dashboard/api-key-list.png?w=2500\u0026fit=max\u0026auto=format\u0026n=yYUi2EK-maheXJet\u0026q=85\u0026s=2fa46c9ada38065b74d9d49183049554 2500w`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`앱 API 키 생성`})}),`\n`,_jsxs(_components.p,{children:[`다음 단계에 따라 대시보드에서 앱 API 키를 생성하거나 `,_jsx(_components.a,{href:`/reference/create-api-key`,children:`API 키 생성`}),` API를 사용하세요.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`앱의 Settings > Keys \u0026 IDs로 이동합니다`,children:_jsxs(_components.p,{children:[`OneSignal 대시보드에서 앱을 선택하고 `,_jsx(_components.strong,{children:`Settings > Keys \u0026 IDs`}),`로 이동합니다.`]})}),_jsx(Step,{title:`Add Key를 클릭합니다`,children:_jsxs(_components.p,{children:[`설명적인 이름을 입력합니다(예: `,_jsx(_components.code,{children:`Backend service`}),`). 키가 승인된 서버에서만 작동하도록 `,_jsx(_components.a,{href:`#ip-allowlist`,children:`IP 허용 목록`}),`을 선택적으로 추가할 수 있습니다.`]})}),_jsxs(Step,{title:`Create를 클릭한 다음 키 값을 즉시 복사합니다`,children:[_jsxs(_components.p,{children:[`값은 `,_jsx(_components.code,{children:`os_v2_app_`}),`로 시작하며 `,_jsx(_components.strong,{children:`한 번만`}),` 표시됩니다. 비밀 관리자나 백엔드 환경 변수에 즉시 저장하세요.`]}),_jsx(Frame,{caption:`생성된 API 키 값, 한 번만 표시됨`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/generated-api-key.png?fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=81c7a600d8d5f88b79c47a027acc0c41`,alt:`생성 후 표시된 생성된 API 키`,\"data-og-width\":`764`,width:`764`,\"data-og-height\":`768`,height:`768`,\"data-path\":`images/docs/generated-api-key.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/generated-api-key.png?w=280\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=47681e53aaab1994bfe55941994e8123 280w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/generated-api-key.png?w=560\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=a7e68daba7aea7ade4bfba41c86bfebc 560w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/generated-api-key.png?w=840\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=add5d29c77d56617bc4d683edcf6e202 840w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/generated-api-key.png?w=1100\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=3d85e9ff2344081e2d552d251fb34dde 1100w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/generated-api-key.png?w=1650\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=c7579f5e8edf3f4935e7a88b675a64bf 1650w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/generated-api-key.png?w=2500\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=a44d64cb950cc7a39122f38dda3ebca2 2500w`})})]})]}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:`앱 API 키를 비밀번호처럼 취급하세요:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`모바일 또는 웹 클라이언트 코드에 노출하지 마세요.`}),`\n`,_jsx(_components.li,{children:`GitHub와 같은 공개 저장소에 커밋하지 마세요.`}),`\n`,_jsx(_components.li,{children:`보안 백엔드 또는 비밀 관리자에 저장하세요.`}),`\n`]})]}),`\n`,_jsx(Heading,{level:`3`,id:`조직-api-키`,children:`조직 API 키`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`조직 API 키`}),`는 조직 내 모든 앱에 걸친 작업에 사용합니다. 일반적인 엔드포인트:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`앱 관리:`}),` `,_jsx(_components.a,{href:`/reference/create-an-app`,children:`앱 생성`}),`, `,_jsx(_components.a,{href:`/reference/view-apps`,children:`앱 보기`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`API 키 관리:`}),` `,_jsx(_components.a,{href:`/reference/create-api-key`,children:`API 키 생성`}),`, `,_jsx(_components.a,{href:`/reference/delete-api-key`,children:`API 키 삭제`}),`, `,_jsx(_components.a,{href:`/reference/rotate-api-key`,children:`API 키 교체`})]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`조직 API 키 생성:`})}),`\n`,_jsx(_components.p,{children:`조직 API 키는 대시보드 전용입니다. 생성용 API 엔드포인트가 없습니다.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`조직의 Keys \u0026 IDs로 이동합니다`,children:_jsxs(_components.p,{children:[`OneSignal 대시보드에서 `,_jsx(_components.strong,{children:`Organizations > 귀하의 조직 > Keys \u0026 IDs`}),`로 이동합니다.`]})}),_jsx(Step,{title:`Add Key를 클릭하고 이름을 지정합니다`,children:_jsxs(_components.p,{children:[`설명적인 이름을 입력합니다(예: `,_jsx(_components.code,{children:`App provisioning`}),`). 선택적으로 `,_jsx(_components.a,{href:`#ip-allowlist`,children:`IP 허용 목록`}),`을 추가할 수 있습니다.`]})}),_jsx(Step,{title:`Create를 클릭한 다음 키 값을 즉시 복사합니다`,children:_jsxs(_components.p,{children:[`값은 `,_jsx(_components.code,{children:`os_v2_app_`}),`로 시작하며 `,_jsx(_components.strong,{children:`한 번만`}),` 표시됩니다. 즉시 안전하게 저장하세요.`]})})]}),`\n`,_jsx(Frame,{caption:`조직 API 키를 생성하는 조직 Keys \u0026 IDs 페이지`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/default-org-api-keys-and-ids.jpg?fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=d014d99705d175a153d43444b42adca3`,alt:`Keys \u0026 IDs 대시보드의 조직 API 키 섹션`,\"data-og-width\":`1846`,width:`1846`,\"data-og-height\":`840`,height:`840`,\"data-path\":`images/dashboard/default-org-api-keys-and-ids.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/default-org-api-keys-and-ids.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=989118dfce02e381b04f0f17734650d5 280w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/default-org-api-keys-and-ids.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=18422756cc437e314138009a0dc98e8d 560w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/default-org-api-keys-and-ids.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=243e5028035c1ae63c8f1a5a9d8076d7 840w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/default-org-api-keys-and-ids.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=3655ce18fc35aebee3a6b9687dceedc3 1100w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/default-org-api-keys-and-ids.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=a447b70d3d7e8747ff382e9aece13c07 1650w, https://mintcdn.com/onesignal/W0DIQbUDatcgdZf6/images/dashboard/default-org-api-keys-and-ids.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=W0DIQbUDatcgdZf6\u0026q=85\u0026s=2fba7f4b9108a6d0f3e80afde8f111ed 2500w`})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`조직 API 키는 조직의 모든 앱에 대한 액세스 권한을 부여합니다. 각별한 주의를 기울이고, 조직 전체 액세스가 진정으로 필요한 서비스와만 공유하세요.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`ip-허용-목록`,children:`IP 허용 목록`}),`\n`,_jsx(_components.p,{children:`IP 허용 목록은 선택 사항이지만 강력히 권장됩니다. API 키 사용을 특정 IP 주소로 제한하여 유출된 키가 다른 곳에서 사용되지 않도록 합니다.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`공백으로 구분된 CIDR 블록을 입력합니다(예: `,_jsx(_components.code,{children:`192.0.2.0/24 192.0.2.123/32`}),`).`]}),`\n`,_jsx(_components.li,{children:`허용되지 않은 IP의 요청은 거부됩니다.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`IP 허용 목록은 다음에 사용합니다:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`고정 IP를 가진 백엔드 서비스.`}),`\n`,_jsx(_components.li,{children:`높은 보안이 필요한 프로덕션 환경.`}),`\n`]}),`\n`,_jsx(Frame,{caption:`IP 허용 목록이 활성화된 API 키 생성`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/ip-allowlist-config.png?fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=d2bdf5bec27c8a982c027d428687a3b9`,alt:`API 키 생성 모달의 IP 허용 목록 구성 필드`,\"data-og-width\":`764`,width:`764`,\"data-og-height\":`542`,height:`542`,\"data-path\":`images/docs/ip-allowlist-config.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/ip-allowlist-config.png?w=280\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=0fd1b8cd568d642793ba834598a120bb 280w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/ip-allowlist-config.png?w=560\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=c7f65b13a10eed6b9540ac02fa860a04 560w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/ip-allowlist-config.png?w=840\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=973c450af94066fac88a85ae45b61fca 840w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/ip-allowlist-config.png?w=1100\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=72adb711e739f8ab064dce1f55203438 1100w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/ip-allowlist-config.png?w=1650\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=c6460f342eed57baa72e67b59e2f8f7f 1650w, https://mintcdn.com/onesignal/QOf62tdZP66tkOD2/images/docs/ip-allowlist-config.png?w=2500\u0026fit=max\u0026auto=format\u0026n=QOf62tdZP66tkOD2\u0026q=85\u0026s=7cc6340a6761eb5ec74ef6846671d71a 2500w`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`api-키-관리`,children:`API 키 관리`}),`\n`,_jsxs(_components.p,{children:[`키를 생성한 후 `,_jsx(_components.strong,{children:`Settings > Keys \u0026 IDs`}),`의 키 목록에서 편집, 교체 또는 삭제할 수 있습니다. 앱 API 키는 REST API를 통해서도 이러한 작업을 지원합니다. 조직 API 키는 대시보드 전용입니다.`]}),`\n`,_jsx(Heading,{level:`3`,id:`키-편집`,children:`키 편집`}),`\n`,_jsx(_components.p,{children:`비밀 값을 변경하지 않고 이름 또는 IP 허용 목록을 업데이트합니다. 통합 변경이 필요하지 않습니다.`}),`\n`,_jsxs(_components.p,{children:[`대시보드 또는 `,_jsx(_components.a,{href:`/reference/update-api-key`,children:`API 키 업데이트`}),` API를 사용하세요(앱 API 키만 해당).`]}),`\n`,_jsx(Heading,{level:`3`,id:`키-교체`,children:`키 교체`}),`\n`,_jsx(_components.p,{children:`교체하면 동일한 키 ID, 이름, IP 허용 목록을 유지하면서 새 비밀 값이 생성됩니다. 이전 비밀 값은 즉시 작동을 멈춥니다.`}),`\n`,_jsx(_components.p,{children:`다음과 같은 경우 키를 교체하세요:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`키가 노출된 경우.`}),`\n`,_jsx(_components.li,{children:`액세스 권한이 있는 팀원이 퇴사한 경우.`}),`\n`,_jsx(_components.li,{children:`정기 보안 교체 시기가 된 경우.`}),`\n`,_jsx(_components.li,{children:`원래 키 값을 분실하여 작동하는 비밀 값이 필요한 경우.`}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`키를 교체한 후 이전 값을 사용하는 모든 서비스를 업데이트하세요. 이전 키로의 요청은 즉시 실패합니다.`})}),`\n`,_jsxs(_components.p,{children:[`대시보드 또는 `,_jsx(_components.a,{href:`/reference/rotate-api-key`,children:`API 키 교체`}),` API를 사용하세요(앱 API 키만 해당).`]}),`\n`,_jsx(Heading,{level:`3`,id:`키-삭제`,children:`키 삭제`}),`\n`,_jsx(_components.p,{children:`삭제는 키를 영구적으로 제거하고 해당 키를 사용하는 API 액세스를 즉시 차단합니다. 키가 더 이상 필요하지 않을 때 삭제를 사용하세요.`}),`\n`,_jsxs(_components.p,{children:[`대시보드 또는 `,_jsx(_components.a,{href:`/reference/delete-api-key`,children:`API 키 삭제`}),` API를 사용하세요(앱 API 키만 해당).`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`레거시-api-키에서-마이그레이션`,children:`레거시 API 키에서 마이그레이션`}),`\n`,_jsx(_components.p,{children:`OneSignal은 이름 지정, 교체, IP 허용 목록을 갖춘 앱 및 조직 API 키를 2024년 11월에 도입했습니다. 레거시 User Auth key와 원래 REST API 키는 계속 사용할 수 있지만, 이를 위한 관리 UI는 제거되었고 새 키를 생성할 수 없습니다.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`새 키 생성`,children:_jsxs(_components.p,{children:[`교체하려는 레거시 키에 따라 새 `,_jsx(_components.a,{href:`#app-api-key`,children:`앱 API 키`}),` 또는 `,_jsx(_components.a,{href:`#organization-api-key`,children:`조직 API 키`}),`를 생성합니다.`]})}),_jsx(Step,{title:`코드 업데이트`,children:_jsx(_components.p,{children:`OneSignal에 대해 인증하는 모든 서비스에서 레거시 키를 새 값으로 교체합니다.`})}),_jsx(Step,{title:`API 기본 URL 업데이트`,children:_jsxs(_components.p,{children:[`API 기본 URL을 `,_jsx(_components.code,{children:`https://onesignal.com/api/v1/`}),`에서 `,_jsx(_components.code,{children:`https://api.onesignal.com`}),`으로 변경합니다.`]})}),_jsx(Step,{title:`검증 후 레거시 키 비활성화`,children:_jsxs(_components.p,{children:[`스테이징 환경에서 API 요청을 테스트한 다음 `,_jsx(_components.strong,{children:`Settings > Keys \u0026 IDs`}),`에서 레거시 키를 비활성화하거나 삭제합니다.`]})})]}),`\n`,_jsx(Check,{children:_jsx(_components.p,{children:`프로덕션에서 레거시 키를 비활성화하기 전에 스테이징 환경에서 API 요청을 검증하세요.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`api-액세스-차단`,children:`API 액세스 차단`}),`\n`,_jsxs(_components.p,{children:[`키를 즉시 취소하려면 `,_jsx(_components.strong,{children:`Settings > Keys \u0026 IDs`}),`에서 `,_jsx(_components.a,{href:`#rotate-a-key`,children:`교체`}),`하거나 `,_jsx(_components.a,{href:`#delete-a-key`,children:`삭제`}),`하세요. 이전 값을 사용하는 요청은 즉시 실패합니다.`]}),`\n`,_jsxs(_components.p,{children:[`메시지 전송을 중지하거나 앱을 완전히 일시 중지하려면 `,_jsx(_components.a,{href:`/docs/ko/disabled-apps`,children:`비활성화된 앱 및 조직`}),`을 참조하세요.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`보안-모범-사례`,children:`보안 모범 사례`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`API 키를 보안 백엔드에 저장하세요(클라이언트 측에 저장하지 마세요).`}),`\n`,_jsx(_components.li,{children:`환경 변수 또는 비밀 관리자를 사용하세요.`}),`\n`,_jsx(_components.li,{children:`가능한 경우 IP 허용 목록을 활성화하세요.`}),`\n`,_jsx(_components.li,{children:`주기적으로 키를 교체하세요.`}),`\n`,_jsx(_components.li,{children:`스테이징과 프로덕션에 별도의 키를 사용하세요.`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`자주-묻는-질문`,children:`자주 묻는 질문`}),`\n`,_jsx(Heading,{level:`3`,id:`api-키는-어디서-찾을-수-있나요`,children:`API 키는 어디서 찾을 수 있나요?`}),`\n`,_jsxs(_components.p,{children:[`API 키 값은 `,_jsx(_components.code,{children:`os_v2_app_`}),`로 시작하며 키 생성 또는 교체 직후에 한 번만 표시됩니다. 대시보드의 `,_jsx(_components.strong,{children:`키 ID`}),` 열은 내부 식별자이며 API 키가 아닙니다. 인증에 사용하면 `,_jsx(_components.code,{children:`401 Unauthorized`}),`를 반환합니다. 키 값을 저장하지 않은 경우 `,_jsx(_components.a,{href:`#rotate-a-key`,children:`키를 교체`}),`하여 새 값을 생성하세요. 전체 흐름은 `,_jsx(_components.a,{href:`#app-api-key`,children:`앱 API 키`}),` 또는 `,_jsx(_components.a,{href:`#organization-api-key`,children:`조직 API 키`}),`를 참조하세요.`]}),`\n`,_jsx(Heading,{level:`3`,id:`레거시-앱-api-키를-복구할-수-있나요`,children:`레거시 앱 API 키를 복구할 수 있나요?`}),`\n`,_jsx(_components.p,{children:`아니요. OneSignal은 더 이상 레거시 앱 API 키를 표시하지 않습니다. 코드베이스에서 값을 찾을 수 없는 경우 새 앱 API 키를 생성하고 통합을 업데이트하세요.`}),`\n`,_jsx(Heading,{level:`3`,id:`앱-id-앱-api-키-조직-api-키의-차이점은-무엇인가요`,children:`앱 ID, 앱 API 키, 조직 API 키의 차이점은 무엇인가요?`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`앱 ID`}),`: 앱의 공개 식별자입니다. SDK 설정과 앱을 지정하는 API 요청에 사용됩니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`앱 API 키`}),`: 하나의 앱에서 메시지를 전송하고 사용자를 관리하는 데 사용되는 비밀 키입니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`조직 API 키`}),`: 전체 계정의 앱과 조직 수준 설정을 관리하는 데 사용되는 비밀 키입니다.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`api-키가-노출되면-어떻게-되나요`,children:`API 키가 노출되면 어떻게 되나요?`}),`\n`,_jsxs(_components.p,{children:[`즉시 `,_jsx(_components.a,{href:`#rotate-a-key`,children:`키를 교체`}),`하세요. 교체는 이전 값을 무효화하고 동일한 키 ID, 이름, IP 허용 목록을 유지하면서 새 값을 발급합니다. 그런 다음 해당 키를 사용하는 모든 서비스를 업데이트하세요. 예기치 않은 API 활동에 대한 `,_jsx(_components.a,{href:`/docs/ko/audit-logs`,children:`감사 로그`}),`를 검토하세요.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`관련-페이지`,children:`관련 페이지`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`REST API 개요`,icon:`code`,href:`/reference/rest-api-overview`,children:_jsx(_components.p,{children:`요청을 인증하고 OneSignal REST API를 이해합니다.`})}),_jsx(Card,{title:`속도 제한`,icon:`clock`,href:`/reference/rate-limits`,children:_jsx(_components.p,{children:`키별 속도 제한 및 대용량 통합을 위한 모범 사례.`})}),_jsx(Card,{title:`감사 로그`,icon:`file-shield`,href:`/docs/ko/audit-logs`,children:_jsx(_components.p,{children:`키, 사용자 및 시간별로 API 및 대시보드 활동을 검토합니다.`})}),_jsx(Card,{title:`비활성화된 앱 및 조직`,icon:`ban`,href:`/docs/ko/disabled-apps`,children:_jsx(_components.p,{children:`앱을 일시 중지하거나 종료하고 청구 영향을 이해합니다.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"키 및 ID","description":"OneSignal App ID, Organization ID 및 API 키를 찾고 관리하는 방법을 알아봅니다. 키를 생성, 교체, 보호하고 안전하게 마이그레이션하는 방법을 설명합니다.","keywords":["App ID","API 키","앱 API 키","조직 API 키","키 ID","API 키 찾기","REST API 인증","IP 허용 목록","키 교체"],"href":"/docs/ko/keys-and-ids"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"앱 ID","slug":"앱-id","depth":2,"children":[]},{"title":"조직 ID","slug":"조직-id","depth":2,"children":[]},{"title":"API 키","slug":"api-키","depth":2,"children":[{"title":"앱 API 키","slug":"앱-api-키","depth":3,"children":[]},{"title":"조직 API 키","slug":"조직-api-키","depth":3,"children":[]}]},{"title":"IP 허용 목록","slug":"ip-허용-목록","depth":2,"children":[]},{"title":"API 키 관리","slug":"api-키-관리","depth":2,"children":[{"title":"키 편집","slug":"키-편집","depth":3,"children":[]},{"title":"키 교체","slug":"키-교체","depth":3,"children":[]},{"title":"키 삭제","slug":"키-삭제","depth":3,"children":[]}]},{"title":"레거시 API 키에서 마이그레이션","slug":"레거시-api-키에서-마이그레이션","depth":2,"children":[]},{"title":"API 액세스 차단","slug":"api-액세스-차단","depth":2,"children":[]},{"title":"보안 모범 사례","slug":"보안-모범-사례","depth":2,"children":[]},{"title":"자주 묻는 질문","slug":"자주-묻는-질문","depth":2,"children":[{"title":"API 키는 어디서 찾을 수 있나요?","slug":"api-키는-어디서-찾을-수-있나요","depth":3,"children":[]},{"title":"레거시 앱 API 키를 복구할 수 있나요?","slug":"레거시-앱-api-키를-복구할-수-있나요","depth":3,"children":[]},{"title":"앱 ID, 앱 API 키, 조직 API 키의 차이점은 무엇인가요?","slug":"앱-id-앱-api-키-조직-api-키의-차이점은-무엇인가요","depth":3,"children":[]},{"title":"API 키가 노출되면 어떻게 되나요?","slug":"api-키가-노출되면-어떻게-되나요","depth":3,"children":[]}]},{"title":"관련 페이지","slug":"관련-페이지","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/onesignal/e069c1b9f3157e14/hotjar-koala.js","/_mintlify/custom/onesignal/3e5d03885ab32f49/intercom.js","/_mintlify/custom/onesignal/dbb7af4794d1b586/munchkin-marketo.js"],"subdomain":"onesignal","siteName":"OneSignal Documentation","title":"키 및 ID - OneSignal Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/en/keys-and-ids","matchLevel":1},"cn":{"href":"/docs/cn/keys-and-ids","matchLevel":1},"ko":{"href":"/docs/ko/keys-and-ids","matchLevel":0},"ja":{"href":"/docs/ja/keys-and-ids","matchLevel":1},"tr":{"href":"/docs/tr/keys-and-ids","matchLevel":1},"pt-BR":{"href":"/docs/pt-BR/keys-and-ids","matchLevel":1},"es":{"href":"/docs/es/keys-and-ids","matchLevel":1},"fr":{"href":"/docs/fr/keys-and-ids","matchLevel":1}}},"lastModified":"2026-06-22T19:43:47.455Z","originalFileLocation":"docs/ko/keys-and-ids.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"OneSignal App ID, Organization ID 및 API 키를 찾고 관리하는 방법을 알아봅니다. 키를 생성, 교체, 보호하고 안전하게 마이그레이션하는 방법을 설명합니다.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OneSignal Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"키 및 ID - OneSignal Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"OneSignal App ID, Organization ID 및 API 키를 찾고 관리하는 방법을 알아봅니다. 키를 생성, 교체, 보호하고 안전하게 마이그레이션하는 방법을 설명합니다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OneSignal Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://documentation.onesignal.com/docs/ko/keys-and-ids\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://onesignal.mintlify.site/_mintlify/api/og/v2?division=OneSignal+%EB%8C%80%EC%8B%9C%EB%B3%B4%EB%93%9C\u0026amp;title=%ED%82%A4+%EB%B0%8F+ID\u0026amp;description=OneSignal+App+ID%2C+Organization+ID+%EB%B0%8F+API+%ED%82%A4%EB%A5%BC+%EC%B0%BE%EA%B3%A0+%EA%B4%80%EB%A6%AC%ED%95%98%EB%8A%94+%EB%B0%A9%EB%B2%95%EC%9D%84+%EC%95%8C%EC%95%84%EB%B4%85%EB%8B%88%EB%8B%A4.+%ED%82%A4%EB%A5%BC+%EC%83%9D%EC%84%B1%2C+%EA%B5%90%EC%B2%B4%2C+%EB%B3%B4%ED%98%B8%ED%95%98%EA%B3%A0+%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C+%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98%ED%95%98%EB%8A%94+%EB%B0%A9%EB%B2%95%EC%9D%84+%EC%84%A4%EB%AA%85%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=12e705baa88dc8cc6d7a9877\u0026amp;signature=9922f40db34f920b3e5f8456824c3330bef61965b260aa95812a7656ec2efa05\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"키 및 ID - OneSignal Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"OneSignal App ID, Organization ID 및 API 키를 찾고 관리하는 방법을 알아봅니다. 키를 생성, 교체, 보호하고 안전하게 마이그레이션하는 방법을 설명합니다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://onesignal.mintlify.site/_mintlify/api/og/v2?division=OneSignal+%EB%8C%80%EC%8B%9C%EB%B3%B4%EB%93%9C\u0026amp;title=%ED%82%A4+%EB%B0%8F+ID\u0026amp;description=OneSignal+App+ID%2C+Organization+ID+%EB%B0%8F+API+%ED%82%A4%EB%A5%BC+%EC%B0%BE%EA%B3%A0+%EA%B4%80%EB%A6%AC%ED%95%98%EB%8A%94+%EB%B0%A9%EB%B2%95%EC%9D%84+%EC%95%8C%EC%95%84%EB%B4%85%EB%8B%88%EB%8B%A4.+%ED%82%A4%EB%A5%BC+%EC%83%9D%EC%84%B1%2C+%EA%B5%90%EC%B2%B4%2C+%EB%B3%B4%ED%98%B8%ED%95%98%EA%B3%A0+%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C+%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98%ED%95%98%EB%8A%94+%EB%B0%A9%EB%B2%95%EC%9D%84+%EC%84%A4%EB%AA%85%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=12e705baa88dc8cc6d7a9877\u0026amp;signature=9922f40db34f920b3e5f8456824c3330bef61965b260aa95812a7656ec2efa05\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OneSignal Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3A3DB3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://documentation.onesignal.com/docs/ko/keys-and-ids\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/ko/keys-and-ids.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://documentation.onesignal.com/docs/ko/keys-and-ids\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://documentation.onesignal.com/docs/en/keys-and-ids\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://documentation.onesignal.com/docs/cn/keys-and-ids\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://documentation.onesignal.com/docs/ja/keys-and-ids\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://documentation.onesignal.com/docs/tr/keys-and-ids\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://documentation.onesignal.com/docs/pt-BR/keys-and-ids\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://documentation.onesignal.com/docs/es/keys-and-ids\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://documentation.onesignal.com/docs/fr/keys-and-ids\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://documentation.onesignal.com/docs/en/keys-and-ids\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://documentation.onesignal.com/#organization\",\"name\":\"OneSignal Documentation\",\"url\":\"https://documentation.onesignal.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107\"}},{\"@type\":\"WebSite\",\"@id\":\"https://documentation.onesignal.com#website\",\"name\":\"OneSignal Documentation\",\"url\":\"https://documentation.onesignal.com\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://documentation.onesignal.com/docs/ko/keys-and-ids#webpage\",\"url\":\"https://documentation.onesignal.com/docs/ko/keys-and-ids\",\"name\":\"키 및 ID\",\"description\":\"OneSignal App ID, Organization ID 및 API 키를 찾고 관리하는 방법을 알아봅니다. 키를 생성, 교체, 보호하고 안전하게 마이그레이션하는 방법을 설명합니다.\",\"dateModified\":\"2026-06-22T19:43:47.455Z\",\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"},\"breadcrumb\":{\"@id\":\"https://documentation.onesignal.com/docs/ko/keys-and-ids#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://documentation.onesignal.com/docs/ko/keys-and-ids#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"시작하기 \u0026 설정\",\"item\":\"https://documentation.onesignal.com/docs/ko/quickstart-guide\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OneSignal 대시보드\",\"item\":\"https://documentation.onesignal.com/docs/ko/apps-organizations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"키 및 ID\",\"item\":\"https://documentation.onesignal.com/docs/ko/keys-and-ids\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://documentation.onesignal.com/docs/ko/keys-and-ids#article\",\"headline\":\"키 및 ID\",\"name\":\"키 및 ID\",\"description\":\"OneSignal App ID, Organization ID 및 API 키를 찾고 관리하는 방법을 알아봅니다. 키를 생성, 교체, 보호하고 안전하게 마이그레이션하는 방법을 설명합니다.\",\"url\":\"https://documentation.onesignal.com/docs/ko/keys-and-ids\",\"mainEntityOfPage\":{\"@id\":\"https://documentation.onesignal.com/docs/ko/keys-and-ids#webpage\"},\"dateModified\":\"2026-06-22T19:43:47.455Z\",\"keywords\":\"App ID, API 키, 앱 API 키, 조직 API 키, 키 ID, API 키 찾기, REST API 인증, IP 허용 목록, 키 교체\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"},\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OneSignal Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OneSignal Documentation","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/docs/en/keys-and-ids"}]},{"language":"cn","pages":[{"title":"cn","href":"/docs/cn/keys-and-ids"}]},{"language":"ko","tabs":[{"tab":"홈","pages":[{"title":"홈","href":"/docs/ko/home"}]},{"tab":"사용자 가이드","groups":[{"group":"시작하기 \u0026 설정","pages":[{"title":"OneSignal 시작하기","href":"/docs/ko/quickstart-guide"},{"group":"OneSignal 대시보드","pages":[{"title":"앱, 조직 및 계정","href":"/docs/ko/apps-organizations"},{"title":"팀 멤버","description":"앱 또는 조직 수준에서 팀 멤버 역할을 추가, 제거 또는 업데이트하여 OneSignal 사용자 액세스를 관리합니다. 역할 권한 및 플랜 가용성에 대해 알아보세요.","href":"/docs/ko/manage-team-members"},{"title":"키 및 ID","href":"/docs/ko/keys-and-ids"},{"title":"감사 로그","description":"보안, 규정 준수, 책임성을 위해 OneSignal 조직 전체의 사용자 활동을 추적·검토하는 감사 로그 가이드입니다. SOC 2, HIPAA 증빙 활용, 플랜별 보존 기간, JSONL 내보내기와 REST API 조회 방법을 다룹니다.","href":"/docs/ko/audit-logs"},{"title":"사용량 및 청구","href":"/docs/ko/billing-faq"},{"title":"비활성화된 앱 및 조직","href":"/docs/ko/disabled-apps"}]},{"title":"OneSignal로 마이그레이션","href":"/docs/ko/migrating-to-onesignal"}]},{"group":"메시지 채널","pages":[{"title":"채널 설정","href":"/docs/ko/channel-setup"},{"group":"푸시","pages":[{"title":"푸시 개요","href":"/docs/ko/push"},{"group":"모바일 푸시","pages":[{"title":"모바일 푸시 설정","href":"/docs/ko/mobile-push-setup"},{"title":"푸시 권한 요청","href":"/docs/ko/prompt-for-push-permissions"},{"title":"iOS 임시 푸시 알림","href":"/docs/ko/ios-provisional-push-notifications"},{"title":"Android 알림 카테고리","href":"/docs/ko/android-notification-categories"},{"title":"데이터 및 백그라운드 알림","href":"/docs/ko/data-notifications"},{"title":"VoIP 푸시 알림","href":"/docs/ko/voip-notifications"}]},{"group":"웹 푸시","pages":[{"title":"웹 푸시 설정","href":"/docs/ko/web-push-setup"},{"title":"Web 권한 프롬프트","href":"/docs/ko/permission-requests"},{"title":"웹 푸시 FAQ","href":"/docs/ko/web-push-setup-faq"},{"title":"웹 푸시 브라우저 동작","href":"/docs/ko/browser-behavior-and-unsubscribes"},{"title":"Shopify 웹 푸시 통합","href":"/docs/ko/shopify"},{"title":"웹 푸시를 위한 OneSignal WordPress 플러그인 설정","href":"/docs/ko/wordpress"},{"title":"WordPress 문제 해결","href":"/docs/ko/troubleshooting-wordpress-web-push"}]},{"group":"푸시 기능","pages":[{"title":"알림 아이콘","href":"/docs/ko/notification-icons"},{"title":"알림 이미지 및 리치 미디어","href":"/docs/ko/rich-media"},{"title":"알림 사운드","href":"/docs/ko/notification-sounds"},{"title":"알림 배지","href":"/docs/ko/badges"},{"title":"푸시 알림용 액션 버튼","href":"/docs/ko/action-buttons"},{"title":"푸시 빈도 제한","href":"/docs/ko/frequency-capping"},{"title":"푸시 제한","href":"/docs/ko/throttling"},{"title":"iOS: 집중 모드 및 중단 수준","href":"/docs/ko/ios-focus-modes-and-interruption-levels"},{"title":"iOS: 관련성 점수","href":"/docs/ko/ios-relevance-score"}]},{"group":"푸시 분석 \u0026 문제 해결","pages":[{"title":"푸시 메시지 리포트","href":"/docs/ko/push-notification-message-reports"},{"title":"확인된 전달","href":"/docs/ko/confirmed-delivery"},{"title":"알림 CTR","href":"/docs/ko/notification-ctr"},{"title":"모바일 푸시: 알림이 표시되지 않거나 지연됨","href":"/docs/ko/notifications-show-successful-but-are-not-being-shown"},{"title":"Web push: 알림이 표시되지 않음","href":"/docs/ko/notifications-not-shown-web-push"},{"title":"알림 이미지가 표시되지 않음","href":"/docs/ko/notification-images-not-showing"},{"title":"중복 알림","href":"/docs/ko/duplicated-notifications"},{"title":"FCM 만료 토큰 FAQ","href":"/docs/ko/fcm-expired-token-faq"}]}]},{"group":"인앱 메시지","pages":[{"title":"인앱 개요","href":"/docs/ko/in-app-messages-setup"},{"title":"인앱 트리거","href":"/docs/ko/iam-triggers"},{"title":"인앱 클릭 작업","href":"/docs/ko/iam-click-actions"},{"group":"인앱 디자인","pages":[{"title":"드래그 앤 드롭으로 인앱 메시지 디자인하기","href":"/docs/ko/design-your-in-app-message"},{"title":"HTML로 인앱 메시지 디자인하기","href":"/docs/ko/design-your-in-app-message-with-html"},{"title":"인앱 메시지 템플릿 및 퀵스타트","href":"/docs/ko/in-app-html-templates"},{"title":"인앱 메시지 JavaScript API 레퍼런스","href":"/docs/ko/in-app-message-api"}]},{"title":"인앱 메시지 보고서","href":"/docs/ko/in-app-message-reports"},{"title":"인앱 문제 해결","href":"/docs/ko/in-app-message-troubleshooting"}]},{"group":"이메일","pages":[{"title":"이메일 개요","href":"/docs/ko/email-messaging"},{"group":"Email setup","pages":[{"title":"이메일 설정","href":"/docs/ko/email-setup"},{"title":"이메일 DNS 구성","href":"/docs/ko/email-dns-configuration"},{"title":"발신자","href":"/docs/ko/senders"},{"title":"트랜잭션 이메일","href":"/docs/ko/setup-transactional-emails"},{"title":"사용자 지정 이메일 수신 거부 페이지 만들기","href":"/docs/ko/create-custom-unsubscribe-page"}]},{"group":"이메일 전달 가능성","pages":[{"title":"이메일 메시지 보고서","href":"/docs/ko/email-message-reports"},{"title":"이메일 전달 가능성","href":"/docs/ko/email-deliverability"},{"title":"이메일 평판 모범 사례","href":"/docs/ko/email-reputation-best-practices"},{"title":"이메일 주소 유효성 검사","href":"/docs/ko/email-address-validation"},{"title":"이메일 준비 가이드","href":"/docs/ko/email-warm-up"},{"title":"Google Postmaster Tools","href":"/docs/ko/google-postmaster-tools"},{"title":"차단 목록","href":"/docs/ko/suppressions"},{"title":"이메일 문제 해결","href":"/docs/ko/email-troubleshooting"}]},{"group":"이메일 메시지","pages":[{"title":"드래그 앤 드롭으로 이메일 디자인하기","href":"/docs/ko/design-emails-with-drag-and-drop"},{"title":"HTML로 이메일 디자인하기","href":"/docs/ko/design-emails-with-html"},{"title":"이메일 구독 취소 링크 및 헤더","href":"/docs/ko/unsubscribe-links-email-subscriptions"},{"title":"이메일 템플릿 전달","href":"/docs/ko/email-template-forwarding"}]}]},{"group":"SMS 및 RCS","pages":[{"title":"SMS, MMS, RCS 개요","href":"/docs/ko/sms-messaging"},{"title":"Rich Communication Services (RCS)","href":"/docs/ko/rcs-messaging"},{"group":"SMS 설정","pages":[{"title":"SMS 설정","href":"/docs/ko/sms-setup"},{"title":"발신자 리소스 신청 및 국가별 요구사항","sidebarTitle":"발신자 리소스 신청","href":"/docs/ko/sms-registration-requirements"},{"title":"SMS 옵트인 및 수집","href":"/docs/ko/sms-opt-in-and-collection"},{"title":"SMS 동의 키워드 관리","href":"/docs/ko/sms-consent-keyword-management"},{"title":"SMS 키워드","href":"/docs/ko/keywords"}]},{"group":"SMS 메시지","pages":[{"title":"SMS 메시지 리포트","href":"/docs/ko/sms-message-reports"},{"title":"일회용 비밀번호(OTP)","sidebarTitle":"일회용 비밀번호","href":"/docs/ko/sms-verify"}]}]},{"group":"실시간 현황","pages":[{"title":"Live Activities","href":"/docs/ko/live-activities"},{"title":"Live Activities 분석","href":"/docs/ko/live-activities-analytics"}]},{"group":"기능","pages":[{"title":"A/B 테스팅","href":"/docs/ko/ab-testing"},{"title":"다국어 메시징","href":"/docs/ko/multi-language-messaging"},{"group":"메시지 개인화","pages":[{"title":"개인화","href":"/docs/ko/message-personalization"},{"title":"Liquid 구문 사용","href":"/docs/ko/using-liquid-syntax"},{"title":"데이터 피드","href":"/docs/ko/data-feeds"},{"title":"Custom Events로 개인화하기","href":"/docs/ko/personalization-custom-event"},{"title":"속성을 사용한 개인화","href":"/docs/ko/personalization-properties-and-tags"},{"title":"API custom_data로 메시지 개인화하기","href":"/docs/ko/personalization-api-custom-data"},{"title":"CSV를 사용한 동적 콘텐츠","href":"/docs/ko/dynamic-content"}]},{"group":"URL, 링크, 딥 링크","pages":[{"title":"URL, 링크 및 딥 링크","href":"/docs/ko/links"},{"title":"딥 링킹","href":"/docs/ko/deep-linking"},{"title":"이메일 구독 취소 링크 및 헤더","href":"/docs/ko/unsubscribe-links-email-subscriptions"}]},{"title":"리타겟팅 메시지","href":"/docs/ko/retargeting"},{"title":"템플릿","href":"/docs/ko/templates"},{"title":"레이블","href":"/docs/ko/labels"}]}]},{"group":"Journeys","pages":[{"title":"Journey 개요","href":"/docs/ko/journeys-overview"},{"group":"Journey 기능","pages":[{"title":"Journey 설정","href":"/docs/ko/journeys-settings"},{"title":"Journey 메시지","href":"/docs/ko/journeys-messages"},{"title":"Journey 액션","href":"/docs/ko/journeys-actions"},{"title":"Journey Webhook","href":"/docs/ko/journeys-webhook"},{"title":"Journey Webhook을 통해 WhatsApp 메시지 보내기","href":"/docs/ko/sending-whatsapp-messages-via-journey-webhooks"},{"title":"Journeys 관리","href":"/docs/ko/managing-journeys"},{"title":"Journey 분석","href":"/docs/ko/journeys-analytics"}]},{"title":"Journey 예시","href":"/docs/ko/journeys-examples"}]},{"group":"오디언스 \u0026 사용자 지정 이벤트","pages":[{"title":"세그먼트","href":"/docs/ko/segmentation"},{"group":"Users \u0026 Subscriptions","pages":[{"title":"사용자","href":"/docs/ko/users"},{"title":"구독","href":"/docs/ko/subscriptions"},{"title":"별칭","href":"/docs/ko/aliases"},{"title":"테스트 사용자","href":"/docs/ko/test-users"},{"title":"사용자 삭제","href":"/docs/ko/delete-users"}]},{"group":"사용자 지정 이벤트","pages":[{"title":"사용자 지정 이벤트","href":"/docs/ko/custom-events"},{"title":"사용자 지정 이벤트 저장 및 보존","href":"/docs/ko/custom-event-storage"}]},{"group":"태그","pages":[{"title":"태그","href":"/docs/ko/add-user-data-tags"},{"title":"태그: 시간 연산자","href":"/docs/ko/time-operators"}]},{"title":"가져오기","href":"/docs/ko/import"}]},{"group":"분석 \u0026 통합","pages":[{"group":"분석","pages":[{"title":"분석 개요","href":"/docs/ko/analytics-overview"},{"title":"목표","sidebarTitle":"목표","href":"/docs/ko/goals"},{"title":"템플릿 분석","href":"/docs/ko/template-analytics"},{"title":"데이터 내보내기","href":"/docs/ko/exporting-data"},{"title":"사용자 지정 Outcomes","href":"/docs/ko/custom-outcomes"},{"title":"전환 지표","href":"/docs/ko/conversion-metrics"},{"title":"참여 트렌드","href":"/docs/ko/engagement-analytics"},{"title":"구독 트렌드","href":"/docs/ko/subscription-trends"},{"group":"리텐션 지표","pages":[{"title":"리텐션 지표","href":"/docs/ko/retention-metrics"},{"title":"리텐션 곡선 해석","href":"/docs/ko/interpreting-retention-curves"}]},{"title":"지표 용어집","href":"/docs/ko/analytics-metrics-glossary"}]},{"group":"이벤트 스트림","pages":[{"title":"이벤트 스트림","href":"/docs/ko/event-streams"},{"title":"이벤트 스트림 데이터 참조","sidebarTitle":"이벤트 스트림 데이터","href":"/docs/ko/event-streams-data"},{"title":"인앱 메시지 이벤트 스트림","href":"/docs/ko/iam-event-streams"},{"title":"Event Streams와 Google Sheets 통합","href":"/docs/ko/google-sheets-integration-with-event-streams"}]},{"group":"통합","pages":[{"title":"통합 개요","href":"/docs/ko/integrations"},{"title":"데이터 웨어하우스, DMP 및 CRM 통합","href":"/docs/ko/database-dmp-crm-integration"},{"group":"OneSignal을 데이터 소스로 사용","pages":[{"title":"Amplitude","href":"/docs/ko/amplitude"},{"title":"Databricks","href":"/docs/ko/databricks"},{"title":"Google BigQuery","href":"/docs/ko/bigquery"},{"title":"Mixpanel","href":"/docs/ko/mixpanel"},{"title":"Snowflake","href":"/docs/ko/snowflake"},{"title":"Segment (Twilio)","href":"/docs/ko/segment-onesignal-integration"}]},{"group":"OneSignal을 데이터 목적지로 사용","pages":[{"title":"Adobe Audience Manager","href":"/docs/ko/adobe-audience-manager"},{"title":"AlloyDB","href":"/docs/ko/alloydb"},{"title":"Amazon Athena","href":"/docs/ko/amazon-athena"},{"title":"Amazon S3","href":"/docs/ko/s3"},{"title":"Amplitude","href":"/docs/ko/amplitude"},{"title":"Apache Kafka","href":"/docs/ko/kafka"},{"title":"Amazon Redshift","href":"/docs/ko/amazon-redshift"},{"title":"Azure Synapse","href":"/docs/ko/azure-synapse"},{"title":"ClickHouse","href":"/docs/ko/clickhouse"},{"title":"Confluent Cloud","href":"/docs/ko/confluent-cloud"},{"title":"Databricks","href":"/docs/ko/databricks"},{"title":"Elasticsearch","href":"/docs/ko/elasticsearch"},{"title":"Google BigQuery","href":"/docs/ko/bigquery"},{"title":"Google Cloud SQL","href":"/docs/ko/google-cloud-sql"},{"title":"Google Sheets","href":"/docs/ko/google-sheets"},{"title":"Greenplum","href":"/docs/ko/greenplum"},{"title":"HubSpot","href":"/docs/ko/hubspot"},{"title":"Materialize","href":"/docs/ko/materialize"},{"title":"Microsoft Fabric","href":"/docs/ko/microsoft-fabric"},{"title":"Mixpanel","href":"/docs/ko/mixpanel"},{"title":"MotherDuck","href":"/docs/ko/motherduck"},{"title":"MySQL","href":"/docs/ko/mysql"},{"title":"PostgreSQL","href":"/docs/ko/postgresql"},{"title":"Pub/Sub","href":"/docs/ko/google-pubsub"},{"title":"SingleStore","href":"/docs/ko/singlestore"},{"title":"Snowflake","href":"/docs/ko/snowflake"},{"title":"SQL Server","href":"/docs/ko/sql-server"},{"title":"Starburst Enterprise","href":"/docs/ko/starburst-enterprise"},{"title":"Starburst Galaxy","href":"/docs/ko/starburst-galaxy"},{"title":"Trino","href":"/docs/ko/trino"},{"title":"Segment (Twilio)","href":"/docs/ko/segment-onesignal-integration"}]},{"group":"소비자 추적","pages":[{"title":"RevenueCat","href":"/docs/ko/revenuecat"},{"title":"Adjust","href":"/docs/ko/adjust"},{"title":"BlueConic","href":"/docs/ko/blueconic"}]},{"title":"OneSignal과 통합 구축: 파트너 가이드","href":"/docs/ko/building-an-integration-with-onesignal-partner-guide"}]}]},{"group":"개인 정보 보호 \u0026 보안","pages":[{"group":"보안 자격 증명","pages":[{"title":"SOC 2 Type II","href":"/docs/ko/soc-2-type-ii"},{"title":"ISO 27001","href":"/docs/ko/iso27001"},{"title":"HIPAA","href":"/docs/ko/hipaa"}]},{"group":"데이터 개인 정보 보호 \u0026 규정 준수","pages":[{"title":"GDPR 및 개인 권리","href":"/docs/ko/gdpr-compliance"},{"title":"EU-US 데이터 개인 정보 보호 프레임워크","href":"/docs/ko/eu-us-data-privacy-framework"},{"title":"이메일 규정 준수","href":"/docs/ko/email-compliance"},{"title":"SMS 규제 준수","href":"/docs/ko/sms-regulatory-compliance"},{"title":"Apple 앱 개인정보 보호 요구 사항","href":"/docs/ko/apple-app-privacy-requirements"},{"title":"Google Play 데이터 보안 요구 사항","href":"/docs/ko/google-play-data-safety-requirements"},{"title":"데이터 수집 및 보안 FAQ","href":"/docs/ko/data-questions"},{"title":"OneSignal SDK가 수집하는 데이터","href":"/docs/ko/data-collected-by-the-onesignal-sdk"},{"title":"개인 데이터 처리","href":"/docs/ko/handling-personal-data"}]},{"group":"인증 및 보안","pages":[{"title":"2단계 인증","href":"/docs/ko/2-step-authentication"},{"title":"Single Sign-On (SSO)","href":"/docs/ko/sso"}]}]}]},{"tab":"개발자 가이드","pages":[{"title":"개발자 가이드","href":"/docs/ko/developers"}]},{"tab":"튜토리얼","pages":[{"title":"튜토리얼","href":"/docs/ko/tutorials"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/rest-api-overview"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/changelog"}]}],"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://onesignal.com/blog"},{"anchor":"GitHub","icon":"github","href":"https://github.com/OneSignal"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/@onesignalofficial/playlists"}]}},{"language":"ja","pages":[{"title":"ja","href":"/docs/ja/keys-and-ids"}]},{"language":"tr","pages":[{"title":"tr","href":"/docs/tr/keys-and-ids"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/docs/pt-BR/keys-and-ids"}]},{"language":"es","pages":[{"title":"es","href":"/docs/es/keys-and-ids"}]},{"language":"fr","pages":[{"title":"fr","href":"/docs/fr/keys-and-ids"}]}]},"basePath":"","title":"키 및 ID - OneSignal Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["07c022d89b","a74be98ba7","a9bb46feb3"],"chunks":["Frame-5Xwp92K7.js","DynamicMarkdown-BoyYAA8K.js","zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}