작은 앱에서 OneSignal SDK 마이그레이션은 init 호출 하나와 클릭 핸들러 하나를 바꾸는 일입니다. 대규모 앱에서는 OneSignal이 수십 곳에 흩어져 있습니다. 프로필 모듈에서 설정하는 태그, 인증 모듈의 external user ID, 내비게이션의 클릭 핸들러, 결제 플로우 어딘가에 있는 인앱 트리거까지.

그중 호출 하나만 빠뜨려도 앱은 크래시 나지 않습니다. 대신 세그먼트가 조용히 어긋나고, 딥링크가 홈 화면을 열고, 사용자를 다시 불러오던 푸시가 더 이상 도착하지 않습니다.

이 가이드는 마이그레이션의 5단계(매핑, 교체, 테스트, 배포, 모니터링)별로 정리한, 교체를 안전하게 만드는 툴 9가지를 소개합니다. OneSignal 대안 푸시 플랫폼으로 옮기려는 개발팀과 CRM 매니저 모두를 위한 체크리스트입니다.

푸시 서비스 제공업체 측 작업은 OneSignal에서 Pushwoosh로의 마이그레이션 전체 가이드를 참고하세요.

대규모 앱에서 푸시 SDK 마이그레이션이 깨지는 이유

푸시 SDK는 대부분의 서드파티 라이브러리보다 코드베이스의 더 많은 부분에 닿아 있습니다. 보통 4가지가 문제를 일으킵니다.

  • 흩어진 호출. 태그, external user ID, 클릭 핸들러가 서로 다른 모듈에, 때로는 서로 다른 저장소에 있습니다. “OneSignal”로 텍스트 검색을 하면 눈에 띄는 호출은 찾지만 래퍼는 놓칩니다.
  • 숨은 의존성. 분석 이벤트, 딥링크, A/B 테스트가 SDK 콜백에 걸려 있는 경우가 많습니다. 콜백을 제거하면 다운스트림 대시보드가 0으로 떨어집니다.
  • 빌드 하나에 SDK 두 개. 한 앱에 푸시 SDK가 두 개 있으면 같은 알림 콜백을 두고 경쟁합니다. 그래서 Pushwoosh 마이그레이션 가이드는 새 SDK를 추가하는 같은 릴리스에서 OneSignal SDK를 제거하라고 안내합니다.
  • 조용한 실패. 도착하지 않은 푸시는 에러를 던지지 않습니다. 크래시 리포트는 깨끗하게 유지됩니다.

마이그레이션 워크플로, 단계별 정리

단계마다 고유한 실패 패턴과 필요한 툴이 있습니다.

단계무엇이 잘못될 수 있나툴
1. 매핑OneSignal 호출이나 의존성을 놓침CodeAlive
2. 교체토큰, 태그, 사용자 ID가 이전되지 않음Pushwoosh
3. 테스트릴리스 전에 등록이나 페이로드가 깨짐Apple Push Notifications Console, Firebase Cloud Messaging, Proxyman
4. 배포문제 있는 빌드가 모든 사용자에게 한 번에 배포됨fastlane, App Store 단계적 출시와 Google Play 단계적 출시
5. 모니터링크래시나 발송 감소를 알아채지 못함Firebase Crashlytics, Pushwoosh 메시지 통계
단계
1 / 5
1. 매핑
무엇이 잘못될 수 있나
OneSignal 호출이나 의존성을 놓침
툴
CodeAlive
단계
2 / 5
2. 교체
무엇이 잘못될 수 있나
토큰, 태그, 사용자 ID가 이전되지 않음
툴
Pushwoosh
단계
3 / 5
3. 테스트
무엇이 잘못될 수 있나
릴리스 전에 등록이나 페이로드가 깨짐
툴
Apple Push Notifications Console, Firebase Cloud Messaging, Proxyman
단계
4 / 5
4. 배포
무엇이 잘못될 수 있나
문제 있는 빌드가 모든 사용자에게 한 번에 배포됨
툴
fastlane, App Store 단계적 출시와 Google Play 단계적 출시
단계
5 / 5
5. 모니터링
무엇이 잘못될 수 있나
크래시나 발송 감소를 알아채지 못함
툴
Firebase Crashlytics, Pushwoosh 메시지 통계

안전한 OneSignal SDK 마이그레이션을 위한 툴 9선

툴단계해결하는 문제무료 티어과금 방식
CodeAlive매핑대규모 코드베이스 전반에서 모든 OneSignal 호출과 의존성을 찾고, AI 에이전트에 전체 컨텍스트 제공있음: 사용자 1명, 저장소 25 MB, 월 100회 채팅 요청월 $15부터, 사용량 기반
Pushwoosh교체오디언스 가져오기와 네이티브 및 크로스플랫폼 앱용 SDK를 갖춘 이전 대상 푸시 플랫폼Push only 플랜 첫 1,000 MAU 무료1,000 MAU당 $7(Push only)
Apple Push Notifications Console테스트APNs로 테스트 푸시 발송, 토큰 검증, 전송 로그 확인Apple Developer Program 멤버십에 포함별도 비용 없음
Firebase Cloud Messaging테스트특정 FCM 토큰으로 테스트 메시지 발송있음, 무료무료
Proxyman테스트SDK 네트워크 트래픽과 페이로드 확인제한적 무료(업무용 2주 체험)일회성 $89부터
fastlane배포단계적 출시 옵션으로 릴리스 자동화오픈 소스오픈 소스
App Store 단계적 출시 / Google Play 단계적 출시배포새 빌드를 일부 사용자에게만 배포앱 마켓에 내장포함
Firebase Crashlytics모니터링교체 후 크래시와 비치명적 오류있음, 무료무료
Pushwoosh 메시지 통계모니터링플랫폼별 발송, 전달, 오픈, 오류Pushwoosh에 포함포함
툴
1 / 9
CodeAlive
단계
매핑
해결하는 문제
대규모 코드베이스 전반에서 모든 OneSignal 호출과 의존성을 찾고, AI 에이전트에 전체 컨텍스트 제공
무료 티어
있음: 사용자 1명, 저장소 25 MB, 월 100회 채팅 요청
과금 방식
월 $15부터, 사용량 기반
툴
2 / 9
Pushwoosh
단계
교체
해결하는 문제
오디언스 가져오기와 네이티브 및 크로스플랫폼 앱용 SDK를 갖춘 이전 대상 푸시 플랫폼
무료 티어
Push only 플랜 첫 1,000 MAU 무료
과금 방식
1,000 MAU당 $7(Push only)
툴
3 / 9
Apple Push Notifications Console
단계
테스트
해결하는 문제
APNs로 테스트 푸시 발송, 토큰 검증, 전송 로그 확인
무료 티어
Apple Developer Program 멤버십에 포함
과금 방식
별도 비용 없음
툴
4 / 9
Firebase Cloud Messaging
단계
테스트
해결하는 문제
특정 FCM 토큰으로 테스트 메시지 발송
무료 티어
있음, 무료
과금 방식
무료
툴
5 / 9
Proxyman
단계
테스트
해결하는 문제
SDK 네트워크 트래픽과 페이로드 확인
무료 티어
제한적 무료(업무용 2주 체험)
과금 방식
일회성 $89부터
툴
6 / 9
fastlane
단계
배포
해결하는 문제
단계적 출시 옵션으로 릴리스 자동화
무료 티어
오픈 소스
과금 방식
오픈 소스
툴
7 / 9
App Store 단계적 출시 / Google Play 단계적 출시
단계
배포
해결하는 문제
새 빌드를 일부 사용자에게만 배포
무료 티어
앱 마켓에 내장
과금 방식
포함
툴
8 / 9
Firebase Crashlytics
단계
모니터링
해결하는 문제
교체 후 크래시와 비치명적 오류
무료 티어
있음, 무료
과금 방식
무료
툴
9 / 9
Pushwoosh 메시지 통계
단계
모니터링
해결하는 문제
플랫폼별 발송, 전달, 오픈, 오류
무료 티어
Pushwoosh에 포함
과금 방식
포함

1단계. 모든 OneSignal 호출 매핑하기

1. CodeAlive: 대규모 및 멀티 저장소 코드베이스에서 SDK 호출 매핑

CodeAlive 코드베이스 컨텍스트 엔진

CodeAlive는 AI 코딩 에이전트에 코드베이스 전체에 걸친 정확한 컨텍스트를 제공하고, 컨텍스트를 찾는 데 쓰는 토큰을 줄여 줍니다. 100만 줄 이상의 코드베이스를 위해 만들어진 컨텍스트 엔진으로, 시맨틱 검색에 더해 파일, 심볼, 호출, 의존성, 테스트의 관계 그래프를 MCP와 API로 제공합니다.

마이그레이션에서 하는 일: 누구든 코드를 수정하기 전에 CodeAlive에 OneSignal이 어디서 쓰이고 무엇이 그것에 의존하는지 묻습니다. 관계 그래프는 눈에 띄는 호출 너머의 것까지 보여 줍니다. 래퍼, 분석이 걸려 있는 콜백, SDK를 목(mock)으로 쓰는 테스트 등입니다. 같은 컨텍스트가 교체 작업을 하는 AI 에이전트에도 전달됩니다.

핵심 기능:

  • 하이브리드 검색: 시맨틱 검색, 어휘 매칭, 그래프 탐색을 한 번의 쿼리로
  • 푸시할 때마다 인덱스 갱신, 마이그레이션 브랜치가 바뀌어도 맵이 최신 상태 유지
  • Cursor, Claude Code, Codex, Windsurf, Zed, Continue, Cline에서 쓰는 semantic_search, grep_search, chat 등 MCP 툴
  • 시스템 전체를 고려하는 AI 풀 리퀘스트 리뷰
  • Git 제공업체: GitHub, GitLab, Bitbucket, Azure DevOps, Gitea. IDE: VS Code, JetBrains

장점:

  • 여러 저장소에 걸친 의존성 매핑
  • 팀이 이미 쓰는 에이전트와 IDE 안에서 작동

2단계. SDK 교체와 오디언스 이전

2. Pushwoosh: 오디언스 가져오기를 지원하는 이전 대상 플랫폼

Pushwoosh 고객 참여 플랫폼

Pushwoosh는 푸시, 인앱, 이메일, SMS, WhatsApp을 지원하는 고객 참여 플랫폼입니다. 마이그레이션 중에는 개발자가 새 SDK를 배포하는 동안 Pushwoosh 팀이 오디언스를 가져옵니다. ISO 27001:2022와 SOC 2 Type II 인증, GDPR 준수, EU와 미국 데이터센터를 갖추고 있어 보안 검토를 거쳐야 하는 팀에도 적합합니다.

마이그레이션에서 하는 일: iOS, Android, Huawei 푸시 토큰은 앱과 키에 속하므로 그대로 가져와서 계속 작동합니다. 이메일과 SMS 구독자도 함께 이전됩니다. external_user_id는 Pushwoosh User ID에 매핑되며(OneSignal 내보내기에서 이 컬럼을 요청하세요. 기본 내보내기에는 포함되지 않습니다), 태그는 내보낸 데이터로 다시 생성됩니다. 예외는 웹 푸시입니다. 브라우저 구독은 어떤 제공업체도 이전할 수 없으므로, Pushwoosh Web SDK가 방문자를 조용히 다시 구독시킵니다.

핵심 기능:

  • iOS와 Android, 그리고 React Native, Flutter, Unity, Capacitor, Cordova, MAUI, Expo 등을 위한 SDK
  • SDK 릴리스와 병행하는 오디언스 가져오기, 사용자가 업데이트하기 전에도 기기에 도달 가능
  • 발송 전에 실제 기기에서 푸시를 미리 보는 테스트 기기

장점:

  • 가져오기가 앱 마켓 업데이트 확산을 기다리지 않음
  • 마이그레이션 가이드 기준 개발자 1명이 약 하루면 끝나는 SDK 작업

가격: Push only 플랜은 1,000 MAU당 $7이며, 첫 1,000 MAU는 무료입니다. 현재 비용은 OneSignal 비용 계산기로 비교해 보세요.

👉

플랫폼을 나란히 비교해 보세요: Pushwoosh vs OneSignal, 또는 더 넓은 목록인 가격과 한도로 비교한 OneSignal 대안을 확인하세요.

3단계. 등록과 발송 테스트하기

3. Apple Push Notifications Console: APNs를 통한 iOS 발송 테스트

Apple Push Notifications Console

Push Notifications Console은 APNs로 테스트 알림을 보내는 Apple의 웹 툴입니다. iOS 푸시가 도착하지 않을 때 푸시 서비스 제공업체 문제인지 빠르게 가려낼 수 있습니다.

마이그레이션에서 하는 일: 기기 토큰으로 푸시를 직접 보내고, APNs가 이를 수락하고 전달했는지 확인합니다. 여기서는 도착하는데 새 제공업체에서는 도착하지 않는다면, 제공업체 설정부터 확인하세요.

핵심 기능:

  • 속성을 바꾼 뒤 다시 보낼 수 있는, 기기 대상 테스트 알림
  • 개발 환경에서 알림이 APNs를 거치는 경로를 보여 주는 전송 로그
  • 특정 환경과 푸시 유형에 대한 토큰 검증
  • 테스트 및 프로덕션 알림의 전송 지표

장점:

  • 중간에 서드파티 없이 Apple에서 직접 제공
  • SDK를 탓하기 전에 푸시 토큰부터 검증

4. Firebase Cloud Messaging: 토큰으로 Android 푸시 테스트

Firebase Cloud Messaging 테스트 메시지

Google Play 서비스가 있는 기기의 Android 푸시는 Firebase Cloud Messaging을 거칩니다(Google 서비스가 없는 Huawei 기기는 HMS Push Kit을 사용합니다). Firebase 콘솔에서 등록 토큰 하나로 테스트 메시지를 보낼 수 있어, Android 빌드를 위한 간단한 푸시 알림 테스트 툴이 됩니다.

마이그레이션에서 하는 일: 새 SDK가 기기를 등록하면 FCM 토큰을 콘솔에 붙여 넣고 테스트를 보냅니다. 도착한다면 토큰과 Firebase 설정은 정상입니다.

핵심 기능:

  • 콘솔에서 특정 FCM 등록 토큰으로 테스트 메시지 발송
  • 기기에서 토큰을 읽는 것 외에는 빠른 확인에 코드 불필요

장점:

  • Cloud Messaging 사용 비용 없음
  • Android 푸시는 이미 FCM을 거침

5. Proxyman: SDK 트래픽과 페이로드 확인

Proxyman HTTP 디버깅 프록시

Proxyman은 macOS, Windows, Linux용 HTTP 디버깅 프록시입니다. 푸시 SDK가 실제로 무엇을 보내는지 보여 줍니다. 등록 호출, 사용자 ID 업데이트, 태그 요청 등입니다.

마이그레이션에서 하는 일: 새 SDK를 넣은 앱을 실행하고 요청을 지켜봅니다. 태그가 기기를 떠나지 않는다면, 세그먼트가 비어서 나오기 훨씬 전에 여기서 확인할 수 있습니다.

핵심 기능:

  • 기기, 시뮬레이터, 에뮬레이터의 앱에서 HTTPS 트래픽 캡처
  • 유료 플랜의 원클릭 iOS Simulator 및 Android Emulator 캡처
  • 요청과 응답을 수정하는 Breakpoints와 Map Local/Remote

4단계. 단계적으로 배포하기

6. fastlane: 단계적 릴리스 자동화

fastlane 릴리스 자동화

fastlane은 iOS와 Android 배포를 자동화하는 오픈 소스 플랫폼입니다. 마이그레이션에서 핵심은 릴리스 레인에 스크립트로 넣을 수 있는 파라미터 2개입니다.

마이그레이션에서 하는 일: upload_to_app_store는 phased_release: true를 받아 업데이트를 7일에 걸쳐 출시합니다. upload_to_play_store는 빌드를 받을 사용자 비율인 rollout 값을 받습니다(10%는 0.1, 1이면 출시 완료). 마이그레이션 릴리스가 매번 같은 단계적 경로를 따르고, 아무도 체크박스를 깜빡하지 않습니다.

핵심 기능:

  • phased_release를 지원하는 deliver / upload_to_app_store
  • rollout과 release_status(halted 포함)를 지원하는 supply / upload_to_play_store
  • 두 앱 마켓을 위한 레인 1개

장점:

  • 오픈 소스
  • 단계적 출시를 수동 작업이 아닌 기본값으로 만듦

7. App Store 단계적 출시와 Google Play 단계적 출시: 피해 범위 제한

App Store 단계적 출시 설정
Google Play 단계적 출시 설정

두 앱 마켓 모두 업데이트를 일부 사용자에게 먼저 배포할 수 있습니다. 어떤 릴리스 툴을 쓰든, 이 기능이 푸시 SDK 교체의 안전망입니다.

마이그레이션에서 하는 일: Pushwoosh가 들어간 새 빌드가 소수의 사용자에게 먼저 도달합니다. 발송이나 크래시율이 이상해 보이면 모두에게 배포되기 전에 출시를 멈춥니다. 그동안 OneSignal은 아직 업데이트하지 않은 사용자에게 계속 발송하므로, 캠페인을 놓치는 사용자는 없습니다.

핵심 기능:

  • App Store: 자동 업데이트를 켠 사용자에게 7일에 걸쳐 1%, 2%, 5%, 10%, 20%, 50%, 100%로 출시합니다. 총 30일까지 일시 중지하거나 언제든 전체 사용자에게 출시할 수 있습니다
  • Google Play: 비율을 직접 설정하고 수동으로 올립니다. 출시를 중단했다가 재개할 수 있으며, 이미 업데이트한 사용자는 해당 빌드를 유지합니다
  • 두 앱 마켓 모두 사용자를 무작위로 샘플링

장점:

  • 앱 마켓에 내장
  • 문제 있는 빌드를 사용자 1% 단계에서 멈출 수 있음

5단계. 크래시와 발송 모니터링하기

8. Firebase Crashlytics: 교체 후 크래시 포착

Firebase Crashlytics 대시보드

Firebase Crashlytics는 Android, Apple, Flutter, Unity 앱의 크래시와 비치명적 오류를 보고합니다. 배포 기간 내내 실행하고, 새 빌드를 이전 빌드와 비교하세요.

마이그레이션에서 하는 일: 알림 핸들러나 SDK 초기화 중 발생한 크래시가 가장 먼저 여기에 나타납니다. 비치명적 이벤트는 더 조용한 문제를 잡는 데 도움이 됩니다. 푸시 등록이 실패할 때 비치명적 이벤트를 기록하면 빌드별로 확인할 수 있습니다.

핵심 기능:

  • 이슈로 묶이고 빌드별로 필터링할 수 있는 크래시 리포트
  • 기기에 기록되고 다음 앱 실행 시 전송되는 비치명적 이벤트
  • Android, Apple, Flutter, Unity용 공식 SDK

9. Pushwoosh 메시지 통계: 조용한 발송 감소 포착

Pushwoosh 푸시 알림 통계

크래시 리포트는 푸시가 더 이상 도착하지 않는다는 사실을 알려 주지 않습니다. Pushwoosh 푸시 통계는 알려 줍니다.

마이그레이션에서 하는 일: 모든 푸시에 대해 오디언스에서 발송, 전달, 오픈으로 이어지는 퍼널을 플랫폼별로 확인하고, 별도의 오류 탭도 볼 수 있습니다. 교체 후 첫 캠페인을 이전 OneSignal 수치와 비교하세요. iOS 전달률이 Android보다 뒤처진다면 코드보다 인증 정보부터 확인하세요.

대규모 앱을 위한 5단계 마이그레이션 계획

코드를 건드리기 전에 모든 OneSignal 호출 목록 만들기

모든 저장소에 걸쳐 SDK 호출, 래퍼, 콜백, 테스트를 모두 나열하세요. 이 목록이 교체 작업과 코드 리뷰의 체크리스트가 됩니다.

푸시를 내부 인터페이스 하나 뒤로 감싸기

로그인, 로그아웃, 태그, 알림 처리 등 모든 푸시 호출을 단일 내부 서비스로 라우팅하세요. 그러면 마이그레이션은 호출 지점 50곳이 아니라 구현 하나만 바꾸면 되고, 다음 제공업체 변경도 쉬워집니다.

protocol PushService {
func login(userId: String)
func setTags(_ tags: [String: Any])
func handleNotificationOpen(_ payload: [AnyHashable: Any])
}

릴리스 하나에서 SDK 교체하기

같은 빌드에서 Pushwoosh SDK를 추가하고 OneSignal SDK를 제거하세요. 한 앱에 푸시 SDK가 두 개 있으면 알림 콜백을 두고 경쟁합니다. 새 빌드가 배포되는 동안에는 이전 버전 사용자에게 OneSignal로 계속 발송하세요.

단계적으로 출시하고 발송 지표 비교하기

단계적 출시로 소수의 사용자부터 시작하세요. Crashlytics에서 크래시를, Pushwoosh 통계에서 전달을 확인한 뒤 출시 범위를 넓히세요.

발송이 확인된 뒤에만 OneSignal 발송 중단하기

OneSignal 발송을 멈추기 전까지는 롤백이 곧 OneSignal로 계속 발송하는 것을 의미합니다. Pushwoosh 전달과 오디언스 가져오기가 모두 확인되면 그때 OneSignal을 끊으세요.

🛠️

Pushwoosh를 사용하면 제공업체 측 작업은 저희 팀이 처리합니다. 푸시 인증 정보와 오디언스 내보내기 파일을 보내 주시고, 다음 릴리스에서 새 SDK를 배포하시면 됩니다. 마이그레이션 전체 가이드 보기

자주 묻는 질문

Pushwoosh 마이그레이션 가이드에 따르면 SDK 변경 자체는 개발자 1명이 약 하루면 끝납니다. 대규모 앱이라면 모든 호출 매핑, 테스트, 단계적 출시에 필요한 시간을 더하세요. 전체 사용자에게 새 SDK가 퍼지기까지는 앱 업데이트에 달려 있어 몇 주가 걸리지만, 오디언스 가져오기 덕분에 그 전에도 기기에 도달할 수 있습니다.

Pushwoosh Team
Content Team at Pushwoosh
공유

관련 기사

전체 보기