Action Push Native: 모바일 푸시 알림을 위한 새로운 Rails 젬 오픈소스화

Introducing Action Push Native

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

핵심 요약

  • 1 Action Push Native는 Apple 및 Google 푸시 알림 서비스를 지원하는 Rails 젬으로, 모바일 플랫폼으로 푸시 알림을 효율적으로 전송합니다.
  • 2 이 젬은 Amazon SNS와 Pinpoint에서 벗어나기 위한 클라우드 이탈 전략의 일환으로 개발되었으며, Basecamp와 HEY에서 하루 1천만 건 이상의 푸시 알림을 안정적으로 처리하고 있습니다.
  • 3 HTTP/2 영구 연결을 통해 작업 시간을 대폭 단축하고, 재시도, 속도 제한, 비활성 기기 삭제 등의 기능을 자동 처리하여 푸시 알림 시스템의 안정성과 효율성을 높였습니다.

도입

최근 37signals는 모바일 푸시 알림 전송을 위한 Rails 젬인 'Action Push Native'를 오픈소스로 공개했습니다. 이 젬은 원래 'Action Native Push'라는 이름으로 개발되었으나, 출시 직후 현재의 이름으로 변경되었습니다. Action Push Native는 Apple Push Notification service (APNs)와 Google Firebase Cloud Messaging (FCM)을 모두 지원하여, 개발자들이 자체적으로 모바일 푸시 알림 시스템을 구축하고 관리할 수 있도록 돕습니다. 이는 Amazon SNS 및 Pinpoint와 같은 클라우드 기반 서비스에서 벗어나 자체 인프라로 전환하려는 광범위한 클라우드 이탈 전략의 핵심 부분으로 개발되었습니다.

Action Push Native는 37signals가 클라우드 의존도를 줄이기 위해 Amazon SNS 및 Pinpoint를 대체할 목적으로 개발되었습니다. 현재 Basecamp와 HEY 서비스에서 하루 1천만 건 이상의 푸시 알림을 문제없이 전송하며 안정성을 입증했습니다.

주요 특징 및 작동 방식

  • 직접 연결: Apple (APNs) 및 Google (FCM) 푸시 알림 서비스에 직접 연결하여 작동합니다.

  • HTTP/2 활용: Apple Push Notification service에는 HTTP/2 영구 연결을 사용하여 기존 HTTP/1 기반의 AWS Pinpoint 설정 대비 작업 시간을 크게 단축했습니다.

  • 자동화된 관리:

    • 재시도(Retries): 알림 전송 실패 시 자동으로 재시도합니다.
    • 속도 제한(Rate-limiting): 각 서비스의 속도 제한 정책을 준수하여 과도한 요청을 방지합니다.
    • 비활성 기기 삭제(Deleting dead devices): 더 이상 유효하지 않은 기기 토큰을 자동으로 식별하고 삭제합니다.

사용 예시

젬을 사용하려면 각 플랫폼에 대한 인증 정보를 설정한 후, 다음과 같이 알림을 전송할 수 있습니다.

ruby device = ApplicationPushDevice.create! \ name: "iPhone 16", token: "6c267f26b173cd9595ae2f6702b1ab560371a60e7c8a9e27419bd0fa4a42e58f", platform: "apple" notification = ApplicationPushNotification.new \ title: "Hello world!", body: "Welcome to Action Push Native" notification.deliver_later_to(device)

현재 버전 0.1.0이 GitHub를 통해 공개되어 있으며, 자세한 내용은 GitHub 저장소에서 확인할 수 있습니다.

결론

Action Push Native 젬은 기존 클라우드 기반 푸시 알림 서비스의 대안을 찾는 Rails 개발자들에게 매우 유용한 도구가 될 것입니다. 특히 대규모 푸시 알림을 처리해야 하는 서비스에 안정적이고 효율적인 자체 호스팅 솔루션을 제공하며, 클라우드 이탈이라는 37signals의 전략적 방향성을 잘 보여줍니다. 성능 최적화와 자동화된 관리 기능 덕분에 개발자들은 푸시 알림 시스템 운영의 복잡성을 줄이고 핵심 비즈니스 로직에 집중할 수 있을 것으로 기대됩니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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