Jiwift

[iOS/Swift] FCM(Firebase Cloud Messaging) 푸시 알림(Push Notification) 간단하게 알아보기, APNs 본문

라이브러리/Firebase

[iOS/Swift] FCM(Firebase Cloud Messaging) 푸시 알림(Push Notification) 간단하게 알아보기, APNs

지위프트 2023. 1. 21. 09:57
반응형

2023.01.21 - [라이브러리/FCM] - [iOS/Swift] FCM(Firebase Cloud Messaging) - 푸시 알림(Push Notification) 간단하게 알아보기, APNs

 

2023.02.03 - [라이브러리/FCM] - [iOS/Swift] FCM(Firebase Cloud Messaging) - Xcode, 구글 콘솔 프로젝트 생성하기, Signing & Capabilities 등록

 

2023.02.03 - [라이브러리/FCM] - [iOS/Swift] FCM(Firebase Cloud Messaging) - Xcode, 구글 콘솔 프로젝트 연동하기

 

2023.02.04 - [라이브러리/FCM] - [iOS/Swift] FCM(Firebase Cloud Messaging) - 키 등록

 

2023.02.04 - [라이브러리/FCM] - [iOS/Swift] FCM(Firebase Cloud Messaging) - 메세지 전송

 iOS 앱에서 Push Notification을 띄우는 방법은 로컬과 서버에서 가능합니다.

 

로컬 : 앱에서 특정 상황이 발생하면 신호를 보내서 알림을 보여주는 방식

서버 : 서버에서 앱으로 신호를 보내서 그걸 받은 앱이 알림을 보여주는 방식

 

 위 두 방식은 알림을 사용자에게 보여준다는 결과는 같지만 시작하는 위치가 다른 차이가 있습니다. 로컬 방식은 앱만 있어도 구현 가능하기 때문에 간편한 개발이 가능합니다. 하지만 iOS는 앱이 죽어있으면 우리가 원하는 시점에 알림을 보여준다거나 배포하고 나서 수정이 필요하면 일이 더 복잡해지는 문제가 있습니다. 서버에서 전송하는 방법은 앱이 죽어있어도 가능하지만 서버를 구축해야 하는 번거로움이 있습니다. 

 

 이번 시간에는 서버를 사용한 방식을 구현할 예정입니다. 카카오톡을 만든다고 생각을 해봅시다. A 사용자가 채팅방에 메세지를 보내면 서버는 그 메시지를 받습니다. 그리고 서버에서 채팅방에 속한 B와 C에게 알림을 보내면 iOS 기기에서 알림이 보입니다. 

 

 간단하게 그림으로 그려보면 위와 같은 동작이 이루어집니다. 하지만 Apple은 iOS 단말기로 Push를 전송하기 전에 APNs를 거치게 합니다.

APNs : Apple Push Notification service 애플 푸시 알림 서비스는 애플이 개발한 플랫폼 알림 서비스로, 서드파티 애플리케이션 개발자들이 알림 데이터를 애플 장치에 설치된 애플리케이션에 보낼 수 있게 한다. 

 애플 내부에서는 어떻게 작동하는지 모르겠지만 서버와 단말기 사이에 APNs가 들어갑니다. 

 

 지금까지 내용으로는 FCM이 없어도 Push를 사용할 수 있습니다. 서비스가 커서 iOS만을 위한 Push 관리와 개발이 가능하다면 이 상태로 괜찮을 것 같다는 판단입니다.(해본 적은 없음) 하지만 대부분 회사들이 아니기 때문에 FCM을 사용하는 게 정신적 건강에 좋다고 판단됩니다.

FCM(Firebase Cloud Messaging)은 iOS와 Android뿐만 아니라 웹에서도 Push를 지원합니다. FCM 하나만을 관리해서 다양한 기종의 Push를 사용할 수 있는 서비스입니다. Google에서 만들었고 Firebase 제품 중 하나입니다. 

 

프로젝트를 생성하고 iOS와 Android 프로젝트 번들을 등록하면 웹 콘솔에서 관리할 수 있습니다. FCM을 사용하면 서버가 없어도 Firebase 웹 사이트 콘솔에서 Push를 전송할 수 있습니다. 서버가 있다면 FCM에서 발급한 키를 사용해서 등록된 프로젝트를 사용하는 사용자들에게 Push를 보낼 수 있습니다. 또한 구글에서 제공하는 분석을 사용할 수 있습니다. 

 

 즉 FCM은 Push를 크로스플랫폼으로 서버가 있던 없던 쉽게 구현 및 사용을 가능하게 하고 관리까지 도와주는 서비스입니다. 

 그림으로 보면 서버에서 로직을 통한 Push와 FCM 콘솔에서 바로 전송하는 방법을 확인할 수 있습니다.

 

 

반응형