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