ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 알람 기능 구현 (Node.js)
    프로젝트/개발자 지름길 2021. 12. 3. 13:52
    반응형

    알람 기능 구현을 위해서 youtube 알람 기능을 특히나 참고를 많이 했다. 내가 자주 쓰는 알람 기능이며, 특히나 해당 UI/UX를 사용하면서 불편함을 느낀적은 없기 때문에 참고를 많이 했다. 물론 youtube 외에 naver cafe이나 여기저기 웹을 돌아다니면서 참고를 했다.


    구현

    알람 기능 구현을 위해서 알람 기능을 쓰기 위한 조건을 고려했다. 여러 API들에서 알람기능을 쉽게 활용할 수 있어야하며, 가져다 쓰기 위해서 소스코드는 짧아야했다. 왜냐하면, 여러 API들 모두에서 알람 기능 구현을 위해서 소스코드가 길어지면 유지보수하기도 어렵고, 알람이 발생하도록 처리하는거 자체도 일이기 때문이다. 그래서 아래와 같이 알람 을 사용할 수 있도록 처리했다. return 값은 단순하게 true/false로 나누어서 받아서 처리할 수 있도록 했다.

     

    각 API에 따라 제목, 내용, url이 달라진다. 그래서 API에 따라 const값을 하나씩 설정하여 alram function에서 switch를 활용하여 일괄적으로 처리할 수 있도록 했다.

     

    간혹가다가 본인이 본인에게 알림을 발생시킬지도 모른다. 이러한 경우에 대비하여 alram function에서 받는이와 보내는이가 동일할 경우, 알람이 발생하지 않도록 처리했다.


    알람 확인

    소켓 통신 대신에 화면 전환이 발생할 때마다 알람이 왔는지 백엔드에 요청하여 알람 여부를 가져오도록 처리했다. 

     

    당장 웹 소켓 통신까지는 필요 없을거 같았다. 당장에는 사용자가 많지 않을 뿐더러, 프로젝트에 있어서 높은 우선 순위를 가진 것도 아니다. 당장은 핵심기능이 먼저다. 또, 알람 소켓통신이 필요없다고 생각한 이유가 24시간 항상 웹에 접속한 상태가 아니기 때문에 굳이 실시간으로 알람 정보를 보내줄 필요가 없었다. 나는 나중에 flutter를 활용하여 웹뷰를 띄워주는 android 앱과, iOS 앱을 모두 출시할 계획이 있다. 해당 모바일 앱으로 push 알람을 발생시키는게 직접적인 효과가 더 좋을거 같다.

     

    아마 내가 소켓 통신을 개발하려면, 웹에 접속한 사용자가 많아져서 웹 내 실시간 채팅앱을 개발할 때쯤 되어야 소켓 통신을 구현할거다.

     

    어쨌든 이런 생각들에 걸쳐 알람 기능을 완성했다.

     

    해당 알람을 클릭하면 관련 URL로 이동한다. 마음같아서는 해당 댓글 Modal을 오픈하여 댓글까지 찾아가도록 구현도 해보고 싶었다. 그런데 이 역시 트래픽이 많아지고나서 있으면 좋을 기능이기에 당장에 없어도 된다고 판단하여 구현하지 않았다. 얼마만큼의 시간이 걸릴지 의문이기 때문이다.


    알람 기능을 만들면서 든 생각

    개발을 하다보면 항상 이 생각이 떠오른다. '무엇을 위한 앱인가?'를 떠올리며 해당 기능이 정말 필요한지 점검하고, 당장 필요없으면 개발하지 않도록 했다. 구현하고 싶은 모든 것을 구현하려면 1년으로도 시간이 모자르게 될거다. 1년 동안 개발하여 99%를 만들고 출시하지 않은 앱은 결국에 만들지 않은 것과 같다. 차라리 하루를 만들어서라도 출시한 앱이 훨씬 낫다.

     

    결론은 나는 개발 시, 사용자에게 사용자에게 가치를 전달하는게 1순위 목표임을 늘 상기하면서 개발하고 있다.  그런데 아래 로딩 이미지는 좀 심각하긴 하네... 허허;; 메인 기능 아니라고 너무 대충 냅둔거 같긴하다. 반성하자...

     

     

    읽어주셔서 감사합니다.

    반응형

    댓글

Designed by Tistory.