본문 바로가기
공부

Push 알림이 도착하는 과정

by 워냥 2025. 9. 4.

1. Push 알림이란?

일반적으로 클라이언트와 서버는 요청과 응답 관계로 통신한다.

클라이언트(앱)가 서버에 "새로운 상품 정보 보여줘"라고 요청하면, 서버는 그에 맞는 데이터를 응답해 주는 형식이다.

이 관계에서 중요한 점은 항상 클라이언트가 대화를 시작한다는 것이다.

서버는 클라이언트의 요청 없이는 먼저 말을 걸 수 없다.

 

서버-클라이언트 아키텍처

 

하지만 앱이 꺼져 있거나 백그라운드 상태일 때, 서버에서 긴급한 할인 정보나 중요한 배송 상태 변경이 발생한다면 어떻게 사용자에게 알릴 수 있을까?

기존의 요청-응답 구조로는 불가능할 것이다.

Push 흐름

여기서 Push라는 개념이 등장한다.

Push는 서버가 먼저 클라이언트에게 보내는 메시지이다.

클라이언트의 요청이 없는 상황에서도 서버가 필요에 따라 먼저 정보를 밀어주어(Push) 사용자의 기기에 메시지를 보낼 수 있게 해주는 기능이다.

Push 덕분에 우리는 항상 앱을 켜두지 않아도 중요한 소식을 실시간으로 받을 수 있다.


2. Push 알림이 도착하는 과정

택배 시스템

알림 시스템의 세 등장인물

Push 알림이 스마트폰에 도착하는 과정은 택배 시스템과 비슷하다.

이 택배 시스템에는 세 명의 등장인물이 존재한다.

  1. 앱 서버(Push 서버): 우리에게 메시지를 보내고 싶어 하는 발신인
  2. 애플/구글의 알림 전문 서버(PNS): 메시지를 전문적으로 배송하는 국제 택배 업체
  3. 우리의 스마트폰: 메시지를 받는 수신인

여기서 PNS라는 존재에 대해 의문이 생긴다.

왜 앱 서버가 스마트폰에 직접 알림을 보내지 않고 굳이 애플이나 구글 같은 중간 업체를 거쳐야 할까?

PNS란?
PNS는 Push Notification Service의 약자로, OS 제조사(Apple, Google 등)가 직접 제공하는 공식 알림 배송 서비스이다.
Apple의 APNs, Google의 FCM이 대표적이다.

 

배터리 효율성을 위한 PNS

각 서버와 연결을 유지하는 경우

Push를 위해 PNS를 거치는 이유는 스마트폰의 배터리 효율 때문이다.

만약 스마트폰에 설치된 수십 개의 앱이 각자 알림을 받기 위해 서버와 개별적인 연결(Connection)을 항상 유지한다면,

스마트폰은 잠시도 쉬지 못하고 배터리를 엄청나게 소모할 것이다.

PNS와 단일 연결 유지

이러한 문제를 막기 위해 스마트폰의 운영체제는 단 하나의 공식적인 알림 통로인 PNS와의 연결만을 유지한다.

모든 앱의 알림은 PNS와 연결된 하나의 통로로 전달되기 때문에 배터리 소모를 최소화할 수 있다.

 

Push 알림 전송 과정

1단계: 배송 주소 등록하기

우리가 앱을 설치하고 알림 허용에 동의하면 스마트폰은 자신만의 고유한 알림 주소(Device Token)를 발급받는다.

그리고 이 주소를 앱 서버에 전달하며 "이제부터 알림은 이 주소로 보내줘"라고 등록한다.

 

2단계: 보낼 메시지 준비, 택배 업체에 전달

앱 서버가 "가을 신상 50% 할인!"이라는 메시지를 보내기로 결정한다.

서버는 1단계에서 저장해 둔 사용자의 알림 주소와 메시지 내용을 포장해서 구글(안드로이드)이나 애플(iOS)의 PNS에게 전달한다.

 

3단계: 배송 완료

구글과 애플의 PNS는 전 세계의 스마트폰과 항상 연결을 유지하고 있다.

덕분에 앱 서버로부터 받은 메시지를 각 스마트폰의 알림 주소로 정확하게 배송이 가능하다.

"가을 신상 50% 할인!"


3. Push 서버가 하는 일

Push 서버의 역할은 아키텍처에 따라 크게 두 가지로 나눌 수 있다.

  1. 알림과 관련된 모든 것을 총괄하는 플랫폼 서버
  2. 알림 전송만을 전문적으로 처리하는 전송 대행 서버

모든 것을 관리하는 플랫폼 역할

플랫폼 역할을 하는 Push 서버는 알림과 관련된 모든 것을 책임진다.

 

사용자 및 정책 관리

어떤 사용자에게 알림을 보낼지, 어떤 메시지를 보낼지, 언제 보낼지 등 모든 정책을 직접 결정하고 관리한다.

서비스는 Push 서버에 준비된 정책을 선택하고 알림을 보내기만 하면 된다.

 

PNS와의 통신

결정된 정책에 따라 메시지를 생성하고 이를 애플이나 구글의 PNS가 이해할 수 있는 형식으로 변환하여 전달한다.

 

데이터 분석

알림 발송 성공 여부, 사용자의 클릭률 등 결과를 추적하고 분석한다.

수집한 데이터를 기반으로 의사결정에 도움이 되는 다양한 지표를 제공한다.

 

전송에만 집중하는 전송 대행 역할

전송 대행 역할을 하는 Push 서버는 오직 알림 전송만을 책임진다.

 

서비스 서버

비즈니스 로직을 담당하는 메인 서버가 '누구에게, 어떤 메시지를, 언제 보낼지' 모두 결정한다.

예를 들어 사용자의 주문 상태가 배송 시작으로 변경되면, 서비스 서버가 알림 내용을 구성해 Push 서버에 전달한다.

 

Push 서버

서비스 서버로부터 "이 주소(Token)로 이 메시지 보내줘"라는 요청을 받는다.

Push 서버는 해당 요청을 받아 PNS에 전달하는 중간 다리 역할만을 수행한다.

정책 관리나 결과 분석 같은 복잡한 기능은 서비스 서버가 담당한다.

 

 

이처럼 Push 서버는 아키텍처에 따라 알림에 대한 모든 것을 관리할 수도, 전송만을 관리할 수도 있다.


4. 마무리

지금까지 Push 알림의 원리와 그 중심에 있는 Push 서버에 대해 알아보았다.

마지막으로 내용을 다시 한번 되짚어보자.

 

Push란?

클라이언트가 먼저 요청해야만 응답할 수 있었던 기존 웹 규칙을 깨고, 서버가 먼저 사용자에게 메시지를 보내는 기술

 

전달 과정은?

앱 서버 -> PNS(애플/구글) -> 사용자 디바이스 순서로 전달된다.

PNS라는 전문 배송업체가 안전하고 효율적으로 메시지를 전달한다.

 

PNS가 필요한 이유

모든 앱이 각자 서버와 연결을 유지하면 스마트폰의 에너지 소모가 크기 때문이다.

OS가 관리하는 하나의 공식적인 알림 통로(PNS)를 이용해 효율을 높인다.

 

Push 서버의 역할은?

알림 정책부터 발송, 분석까지 모든 것을 책임지는 플랫폼 서버와 오직 전송만을 수행하는 전송 대행 서버가 있다.

아키텍처에 따라 Push 서버의 책임이 달라지게 된다.

 

 

우리가 무심코 넘겼던 작은 알림 하나에도 생각보다 복잡한 기술이 숨어있다.

댓글