xe푸시앱 사이트의 푸시알림기능에 지금 문제가 있어서 혹시 공지를 받지 못하시는 분이 있으실 것 같아 여기에 글 남깁니다.

 

그동안 @웹지기님 혹은 그외 몇몇 분들이 알림설정 관련 오류를 제보해주셨는데, 간혹 모든 기기의 알림설정이 동일하게 초기화되는 오류가 있었습니다. 이번에 이 오류의 원인을 발견하게 되었습니다.

 

저는 그동안 슈퍼캐시와의 연동에서 문제가 있는 것으로 생각했고, 기진곰님께서 슈퍼캐시에서 xe푸시앱을 배제할 수 있도록 해주셨습니다.

 

그런데 우연히 그 원인을 발견했는데, 슈퍼캐시 문제가 아니었네요.

 

오류 원인을 설명드리자면 다음과 같습니다.

 

앱 최초 실행시 FCM reg_id값 생성 후 (reg_id를 기기의 DB에 저장한 후!) 서버로 reg_id등록하는 과정으로 진행되는데, 극히 일부 기기(안드로이드 하위버전 또는 속도가 느린 기기)에서 reg_id를 기기의 DB에 저장하는 과정이 누락된 채로 진행되어버렸습니다.


그런 과정에서 reg_id 값이 저장되지 않은채 설정 액티비티에서 서버로 설정값 변경사항을 전송하기 위해 DB에서 regid를 불러오면 ""(빈공란, null아님)값이 되고, 이 ""값이 그대로 서버로 전송되어 서버쪽에서 쿼리실행단계에서 regid param이 빈공란이므로 값이 없다고 여기고, regid를 빼고 쿼리를 진행하여 문제가 된 것이죠. 즉 설정변경사항을 특정 regid에 적용하는게 아니라, 모든 기기에 적용해 버리는 것입니다.
 

그래서 지금 긴급조치하여 업데이트 하였습니다. xe푸시앱 사용자분들께서는 빠른시간내에 업데이트 해주시기 바랍니다. 

 

http://xepushapp.com/43932

 

해결방법은 reg_id를 기기의 DB에 저장하는 과정이 누락되지 않도록 하였고, 모듈 api 에 룰셋을 적용하여 post전송시 reg_id값을 필수로 지정하도록 하였습니다.

 

제가 초보 개발자다보니 이런 사소한 부분에서 큰 실수를 저질러버렸네요... 그래도 지금이나마 원인을 발견하고 해결할 수 있게되어 다행이라고 생각합니다. (정말 개발자의 길은 멀고도 험합니다. ㅠㅠ)

 

한편 이제는 xe푸시앱에서도 슈퍼캐시를 사용해도 괜찮을 듯 합니다. 그래도 혹시 모르니 제가 먼저 마루타(?)가 되어 사용해보고 결과를 알려드릴께요.

 

(참고로 아이폰 푸시앱 출시가 머지 않았습니다. 기대해주세요~!)

 

(매일 xe타운에서 눈팅만 하다가 글 남기려니 좀 쑥쓰럽기도 합니다. 앞으로 열심히 활동해야 할텐데... xe를 위해서 열심히 활동하시고 개발하시는 모든 분들 존경합니다.~!)

 

 

단희아빠

profile
단희아빠입니다. ~~~~
  • Lv16

    전 그게 뭔지 모르지만 단희아빠님이 직접 만드신건가봐요. 참 대단하세요.

    XE 사용자들 위해 치명적인 오류 발견된걸 이렇게 알려주신건 참 잘하셨다 싶어요. 
    눈팅만 하지 마시고 쑥쓰러워하지도 마시고 이곳 자유게시판에 가끔 오셨으면 좋겠네요.

  • Lv16 ? Lv17
    제이엔지님도 무슨일이든 쑥쓰러워하지 말고 당당하세요~ 응원합니다~
  • Lv16 Lv4
    감사합니다. 제이엔지님 쓰신 글 늘 재미있게 일고 있습니다. 재치와 아이디어가 넘치시는 것 같아요.
  • Lv36

    감사합니다. 슈퍼캐시 버그가 아니라니 한숨 덜었네요 ㅎㅎ

     

    전에도 비슷한 원인이 의심되기는 했지만 null값이 아니기에 괜찮을 거라 생각했는데, 빈 문자열도 문제가 되는 모양이군요. 이건 푸시앱 개발자님의 실수가 아니라 XE의 엉성한 쿼리 param 관리 방식이 문제라고 생각합니다. null값이 아니라면 당연히 WHERE regid = '' 조건이 들어가야 하는데...

  • Lv11
    패치 감사합니다! ㅎ 간만에 또 업뎃하려니 매뉴얼을 열어봐야겠네요 ㅎ
  • Lv7
    마침 어젯밤에 밤새고 업데이트했는데 오늘 또 해야겠군요 ㅎㅎ 깊은 한숨이 ㅎㅎㅎ
  • 패치해야겠네요