기획적으로는 fcm server 일반적으로 이렇게 개발하니다.
서버에서 실시간 혹은 스케듈러에 의해 푸시메시지를 사용자에게 보냅니다.
- 이때 보통 푸시 메시지를 DB에 보관하고 보냅니다. (별도 조회 화면을 통해서 볼 수 있게 하죠)
- 푸시 전송
앱에서 노티가 뜨면, 간단하게 보여주는 화면이 나오고, 터치했을 때, 원하는 화면으로 이동시키죠.
서버에서 fcm 서버로 푸시를 보내면,
보낸 메시지에 대한 처리 결과를 callback으로 받을 수 있습니다.
callback을 보면, 푸시가 어떻게 되었는지를 알 수 있습니다만, 이 정보를 바로 받지 못할 수 있습니다.
fcm에서도 여러번 전달 시도를 하는 경우가 있습니다.
페이스북같은 경우는 사용자가 물리적인 디바이스 여러개를 허용하기 때문에,
푸시 수신도 디바이스별로 다 관리해야겠죠.
푸시는 결제나 본인 인증 등 중요 메시지에는 안쓰고 SMS를 사용하는 경우도 많습니다.
중요한 메시지의 경우, 복잡하게는
푸시를 보내고 10분안에 터치를 안하면,
카톡 메시지나 SMS를 보내는 식으로 하는 경우도 있습니다.
It depends on your service definition 입니다.