Action Native Push 개발 배경 및 목적
Action Native Push는 기존 Amazon SNS 및 Pinpoint 서비스에서 벗어나 자체적인 푸시 알림 시스템을 구축하기 위해 개발되었습니다. 이는 37signals의 광범위한 클라우드 서비스 이탈 전략의 핵심 부분으로, 외부 서비스에 대한 의존도를 줄이고 내부 제어력을 강화하는 데 중점을 두었습니다.
주요 기능 및 기술적 특징
- 직접 연결: Action Native Push는 Apple Push Notification service (APNs) 및 Google Firebase Cloud Messaging (FCM)에 직접 연결하여 푸시 알림을 전송합니다. 이를 통해 중간 단계를 제거하고 효율성을 높였습니다.
- HTTP/2 영구 연결: 특히 APNs와의 통신에 HTTP/2 영구 연결을 활용하여 기존 HTTP/1 기반 AWS Pinpoint 설정 대비 작업 시간을 크게 단축시켰습니다. 이는 알림 전송의 지연 시간을 줄이고 처리량을 증가시키는 데 기여합니다.
- 자동화된 처리: 알림 전송 실패 시 재시도, 과도한 요청 방지를 위한 속도 제한, 그리고 더 이상 유효하지 않은 비활성 기기(dead devices) 자동 삭제 기능을 내장하여 개발자의 부담을 줄이고 시스템의 안정성을 확보합니다.
사용 방법 예시
이 Gem은 간단한 API를 통해 푸시 알림을 보낼 수 있도록 설계되었습니다. 다음은 알림을 전송하는 예시 코드입니다.
ruby
device = ApplicationPushDevice.create! \
name: "iPhone 16",
token: "6c267f26b173cd9595ae2f6702b1ab560371a60e7c8a9e27419bd0fa4a42e58f",
platform: "apple"
notification = ApplicationPushNotification.new \
title: "Hello world!",
body: "Welcome to Action Native Push"
notification.deliver_later_to(device)
현재 버전 0.1.0으로 GitHub에서 자세한 내용을 확인할 수 있습니다. 이 Gem은 개발자들이 푸시 알림 기능을 쉽게 통합하고 관리할 수 있도록 지원합니다.