Action Native Push 소개: Rails를 위한 새로운 푸시 알림 Gem

Action Native Push for Ruby on Rails

작성자
HackerNews
발행일
2025년 08월 18일

핵심 요약

  • 1 Action Native Push는 모바일 푸시 알림 전송을 위한 새로운 오픈소스 Rails Gem으로, Apple (APNs) 및 Google (FCM) 서비스를 지원합니다.
  • 2 이 Gem은 37signals의 클라우드 서비스(Amazon SNS, Pinpoint) 의존성 탈피 전략의 일환으로 개발되었으며, Basecamp와 HEY에서 안정적으로 사용 중입니다.
  • 3 HTTP/2 영구 연결을 통해 성능을 최적화하고, 재시도, 속도 제한, 비활성 기기 삭제 등 푸시 알림 전송에 필요한 복잡한 처리를 자동화합니다.

도입

37signals는 클라우드 서비스(Amazon SNS, Pinpoint) 의존성 탈피 전략의 일환으로, 모바일 푸시 알림 전송을 위한 새로운 오픈소스 Rails Gem인 Action Native Push를 공개했습니다. 이 Gem은 Basecamp와 HEY에서 하루 1천만 건 이상의 푸시 알림을 안정적으로 처리하며 그 효용성을 입증하고 있습니다. 개발자들은 이 Gem을 통해 자체적으로 효율적인 푸시 알림 시스템을 구축할 수 있게 되었습니다.

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은 개발자들이 푸시 알림 기능을 쉽게 통합하고 관리할 수 있도록 지원합니다.

결론

Action Native Push는 37signals가 클라우드 의존성을 줄이고 성능을 최적화하기 위해 개발한 중요한 오픈소스 프로젝트입니다. 이 Rails Gem은 모바일 푸시 알림 시스템을 자체적으로 구축하려는 개발자들에게 강력하고 효율적인 대안을 제공하며, 안정적인 서비스 운영에 기여할 것으로 기대됩니다. Ruby 및 Rails 생태계에 또 하나의 유용한 도구가 추가되어 개발 생산성 향상에 기여할 것입니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!