👯‍♀️ 프로젝트

[개인 프로젝트] 푸시 알림

ji-hyun 2022. 10. 25. 23:01

시작하게 된 계기

처음엔 이 프로젝트를 할 생각이 없었다.
단지 회사에서 일 하던 중 사수분이 캐시스텝을 구현하고 있었고 그때쯔음 백그라운드에서 걸음수가 쌓이지 않던 이슈가 있었다.
그때부터 나의 호기심이 발동되었다.
백그라운드가 뭘까 부터 시작했다.
백그라운드에서는 앱이 동작하지 않을 수도 있구나
그러면 백그라운드에서 카카오톡 같은 알림은 어떻게 오는걸까
실제로 다른 앱들의 푸시 알림은 어떻게 구현하였을까
이렇게 생각이 꼬리에 꼬리를 물어 파이어베이스 클라우드 메시징에 도달하였고 나는
파이어베이스 클라우드 메시징을 직접 구현해보고 싶어졌다.




시작은 가벼웠다

물론 삽질도 있었다.
블로그 보고 따라해서 구글서비스 파일을 직접 넣기도 하고 네이티브 코드를 직접 수정하는 등 삽질을 하였다.
결국 공식 문서를 보고 flutterfire 명령어로 파이어베이스를 쉽게 세팅했다.
역시 공식문서를 봤어야 했다. 앞으로 세팅 같은 일을 할 때는 공식문서부터 먼저 봐야겠다.
아무튼 공식문서를 잘 참고해서 안드로이드는 제법 빨리 끝났다. 이제 iOS 만 하면 금방 끝나겠구나 생각이 들었다.


안드로이드 푸시 알림 테스트





iOS 에서 삽질이 시작되다

솔직히 금방 할 줄 알았다.
처음의 벽은 ios 의 멤버십이었다. 나는 identifier 를 만들 수 없었다. 아무리 찾아봐도 답이 나오지 않았다.
그도 그럴 것이 나는 애플 개발자 계정을 구입했기 때문에 당연히 identifier 를 추가할 권한이 있다고 생각했다.
결국 멤버십이 문제였다는 것을 한참 나중에 발견했고 멤버십을 또 추가 구매하였다
그렇게 또 나는 이번엔 정말로 순조로울 줄 알았으나 apns 인증까지 완전히 다하고 푸시 노티를 추가하려는 순간 푸시 노티 항목이 없었다.
나는 분명 푸시 노티를 세팅했는데 왜 추가가 안되지
또 이렇게 며칠동안 혼자 고민, 또 고민했다
결국엔 프로비저닝 프로필 원인이었다
자세한 삽질 기록은 여기에 ↓

2022.10.24 - [TIL] - xcode push notification not showing






 

프로젝트에서 얻게 된 점

1. 네이티브에 대해 간접적인 경험을 하게 되다
엄청난 네이티브까지 한건 아니지만 둘을 다르게 세팅하는게 필요해서 네이티브를 살짝 맛보게 되었다.
예전에는 플러터 패키지를 설치할때 의미없이 하란 대로 네이티브 파일을 만졌는데 이번에는 이 파일이 무슨 역할이고 권한을 허용하게 하려면 어떤 부분을 수정해줘야 하는지에 대해 찾아보고 생각을 하였다. 이 경험을 하고 나니 나중에 플러터 패키지를 설치할 때 한 번 정도 생각해보고 따라해보는 것 같다.
파일의 역할을 알고 나니 좀 더 이해가 생기고 훨씬 더 개발이 흥미있어졌다. 

이번 프로젝트에서 유의한 경험이 아니었나 싶다.

 

깃허브에 정리해보았다!

 


2. 각각의 os 의 차이점을 알게 된다
나는 그 전까진 폰 설정을 건드리는 것에 대한 관심이 없었다. 필요할 때만 만지게 되는 부분이 설정인데 이번 프로젝트를 구현하면서 안드로이드, ios 설정에는 뭐가 있는지 그리고 어떤 설정을 만지면 어떤 동작을 하는지 알게 되었고 이 둘의 차이점도 발견할 수 있어서 흥미로움 또한 느꼈다.

 

 

iOS - 백그라운드 앱 새로 고침을 선택할 수 있다

android - 강제 중지하면 백그라운드 푸시 알림이 오지 않는다

 



3. 백그라운드 개념을 확실히 알수 있었고 부수적인 공부 효과까지 얻게 되다
사실 백그라운드 개념을 몇번이나 찾아봤지만 정확히는 와닿지 않았다. 그래서 이 프로젝트를 시작하게 된 계기가 이것 때문이었다.
대강 알고 넘어갈 수도 있었지만 두 os 를 구현함으로써 백그라운드는 확실히 알게 되고 또한 파이어베이스, 네이티브 를 경험하게 됨으로써 보는 시야가 넓어져서 의미가 있었다.

 


4. 파이어베이스의 편리함을 알게 된다.
파이어베이스 또한 백엔드 없이 편리하게 서비스를 이용할 수 있다는 말만 들어서 이것 또한 3번과 같이 와닿지 않았다.
하지만 프로젝트를 하고 나니 이 말이 이해가 되었다.
앱을 개발하는 사람의 입장에서는 파이어베이스를 이용하면 어느 정도 충분히 백엔드 없이도 기능 구현이 가능하다는 점에서 메리트가 있다는 점을 느꼈다.
파이어베이스의 다른 기능에도 호기심이 생긴다. (다음엔 remote config 를 공부해보고 싶다!)

 



5. Ios 의 인증 과정을 알게 되다.
금방 끝날 줄 알았던 푸시 알림 프로젝트가 ios 인증 과정의 벽에 부딪혀 시간이 꽤나 소비 되었다.
하지만 개발적인 입장에서 이 인증서를 왔다 갔다 하는 것이 얼마나 신뢰를 주는 것인지를 느꼈다
안드로이드에 비해 되는 것이 없었지만 ios 의 확실한 인증 방식이 나는 나쁘지 않다고 생각했다.
지금 인증 과정에서 헤매는 것은 점점 경험을 쌓아 극복하면 되는 것이고 ios 개발을 한번 해보고 싶다는 생각이 들었다.


순서를 깃허브에 기록해보았다

 

 

 

iOS 푸시 알림 테스트

 

 

 

 

 

프로젝트 코드
https://github.com/ji-hyun219/fcm_practice

 

GitHub - ji-hyun219/fcm_practice: fcm 을 이용하여 정해진 시간 주기에 따라 android, ios 앱에 푸시 알림을

fcm 을 이용하여 정해진 시간 주기에 따라 android, ios 앱에 푸시 알림을 보내는 서비스를 연습합니다. - GitHub - ji-hyun219/fcm_practice: fcm 을 이용하여 정해진 시간 주기에 따라 android, ios 앱에 푸시 알림

github.com

 

 

프로젝트 기간

10/9 ~ 10/25

 

'👯‍♀️ 프로젝트' 카테고리의 다른 글

[프로젝트] HINES  (0) 2021.12.26