XE(라이믹스)를 앱으로 만드는 난이도가 어떤가요?
그냥 웹뷰만 씌우는 정도로는
어떤 예상 문제들이 있을까요?
푸시관련해서는
앱을 켰을 때 푸시를 전달받을
사용자의 토큰을 받아서
회원디비에 넣는다.
댓글이나 대댓글 달렸을 때
알림센터? 가 호출되는 시점을 찾아서
푸시 메세지를 전송해준다.
이럼 될까요?
이 푸시알림 부분이랑 또 어떤 난관이 있을까요?
그냥 웹뷰만 씌우는 정도로는
어떤 예상 문제들이 있을까요?
푸시관련해서는
앱을 켰을 때 푸시를 전달받을
사용자의 토큰을 받아서
회원디비에 넣는다.
댓글이나 대댓글 달렸을 때
알림센터? 가 호출되는 시점을 찾아서
푸시 메세지를 전송해준다.
이럼 될까요?
이 푸시알림 부분이랑 또 어떤 난관이 있을까요?
댓글 15
말씀하신대로 회원별로 reg_id 라는 기기 고유번호랑 회원들간의 연동을 잘해주시면 되요.
그리고 댓글 및 게시글들은 모듈의 트리거를 활용해서 글작성이 완료된 시점의 트리거를 활용하시면 되고요
그냥 쌓인 알림을 php 단에서 보내는 정도로 하시면 아주 소규모 사이트에서나 가능하고 조금 규모가 커지면 타임아웃 걸리거나 알림 발송에 문제가 될 겁니다. 이부분을 많이 고려하셔서 수만개 수십만개라도 빠짐없이 잘 전송이 되도록 해야 합니다. 글 작성 등록도 이로 인해 지연이 되어서는 안되구요. 댓글 알림이야 전송할 대상이 몇명 안되지만 새글 알림은 사이트 회원수와 비례하기 마련이죠.
라이믹스 2.0 기준, 로그인시 토큰을 등록하기만 하면 푸시알림은 코어가 알아서 쏴줍니다. 앱에서는 이 푸시알림을 받아 적당히 표시해 주기만 하면 됩니다. 푸시 기능이 알림센터에 내장되어 있으므로 글쓰기, 댓글쓰기 등 알림이 발생할 만한 상황에 일일이 대응할 필요가 없습니다.
비동기식으로 잘 나가나요?? 수십만개도???? 보통 푸시기능을 쓰는 이유가 새글 알림인데요. 새글 알림도 코어에서 지원이 된다구요?
특정 게시판에 새 글이 등록되었을 때 (해당 게시판을 "구독"한) 모든 회원에게 일괄적으로 알림을 발송하는 기능을 말씀하시는 거라면, 그건 알림센터에 포함된 기능이 아니므로 공식 지원하지 않습니다. 푸시알림을 사용하는 이유가 그것만 있는 것도 아니고요.
서드파티에서 구현하시려고 할 경우 동기식으로 할지 비동기식으로 할지, 만약 비동기식으로 한다면 기존 푸시앱처럼 자기 자신에게 요청을 또 하는 꼼수를 사용할지 아니면 제대로 크론탭을 사용할지는 구현하시는 분의 취향과 역량에 맡깁니다. 일단 코어에서 제공하는 푸시 기능은 동일한 내용을 다수의 회원에게 발송할 때 한 명씩 일일이 루프를 돌릴 필요는 없도록 설계되어 있습니다.
현재 구현해 놓은 방식으로는 한 번에 1000개의 기기까지 푸시알림을 전송할 수 있습니다. 수신자가 1000명 이상이거나, 회원들이 여러 기기를 등록해 놓아서 기기 수가 1000개를 초과할 경우 자동으로 1000개씩 끊어서 발송합니다. 여러 회원을 동시에 @멘션하거나 질문자의 댓글을 모든 답변자에게 알리는 등, 현재 코어에서 지원하는 알림 발생 상황은 이것으로 충분히 대응할 수 있습니다.
물론 수십만 명에게 동일한 내용을 전송하려면 수백 번 끊어야 하니까 시간이 오래 걸리겠지요. 동기식으로 한다면 아마 타임아웃이 걸릴 겁니다. 이런 경우까지 한 방에 처리할 수 있는 보완책이 없는 것은 아닌데, 게시판 모듈에 공식적으로 구독 기능이 없기 때문에 굳이 코어에서 지원할 필요성을 느끼지 않아서 보류중입니다. 나중에 필요할 경우 언제든지 구현할 수 있습니다.
지금 한명씩 다 루프돌려서 보내면 적당히 끊어서 반복해서 보내지 않으면 다 실패할 확율이 높은데 아마 그걸 1000배로 압축한다면 수십만개도 문제 없이 나갈거 같네요.
푸시앱 모듈도 3000개씩 끊어서 보내게 되어있네요.
사소한부분들이 많은데 여기 개발자분들이 많이 다루는 부분이 아니라 웹뷰나 네이티브앱 전문으로 하는 곳에서 답을 듣는게 효율적일 겁니다.
"라이믹스라서" 생기는 문제/난관이 있을시 여쭈어봤습 니다
기존 푸시앱 모듈 한정으로, 라이믹스에서 secure 속성이 있는 (SSL 전용) 세션 또는 쿠키를 사용하도록 설정하거나, httpOnly 속성이 있는 세션 보안키를 적용할 경우 로그인이 안 되는 경우를 본 적이 있습니다. 일반적인 브라우저와 똑같이 처리하면 전혀 문제가 되지 않을 텐데, 웹뷰로 구현된 부분과 네이티브로 구현된 부분 사이를 오갈 때 쿠키 관리에 일관성이 없는 것 같더군요.
라이믹스는 세션 보안 강화를 위한 옵션과 여기에 사용되는 쿠키가 여러 가지 있으니, 앱에서 쿠키 관리할 때 누락되지 않도록 주의하시면 좋겠습니다. 최근에는 samesite 속성까지 생겨서 쿠키가 점점 복잡해지고 있습니다.
멀티도메인까지 지원한다면 쿠키 관리가 더욱 복잡해질 것으로 생각됩니다.