푸시 서비스.
다들 알고 계시죠? 휴대폰 등의 알림을 제공해 주는 서비스입니다.
푸시 서비스가 없다면, 서버가 클라이언트에게 정보를 제공해 주기가 어려우니.. 클라이언트가 수시로 서버에게 알림이 왔는지 물어봐야 하는 형태가 될 겁니다. 그렇게 되면 의미 없는(?) 요청이 계속되어질 테고(알림이 계속 뜨진 않을 테니까요..) 그로 인해 서버/네트워크 부하가 가중될 것입니다.
그래서 푸시 서비스가 나온 것으로 알고 있습니다.
서버가 클라이언트에게, 필요할 때에만 정보를 제공하는 것이죠.
필요할 때 접속하는 것은 어쩔 수 없는 것이죠. 이것 때문에 부하가 가중된다면, 용량을 증설해야겠죠.
그런데 본질적인 궁금증이 있습니다.
논리적 서버는 1대로 보고.. 논리적이든 물리적이든 클라이언트는 전 세계에 수십억 대가 있을 텐데..
서버 입장에서 어디로 정보를 보내야 하는지 어떻게 식별할까요?
실제로 이런 '알림'은 거의 실시간으로 오던데..
심지어 일부 이동통신망은 공인IP도 아니고.. 사설IP로 되어 있는 경우도 있던데요..
(쉽게 말하자면 공유기 뒤에 있는 거죠. 클라이언트 입장에서 나가는 건 자유롭겠지만, 들어오는 건 막혀 있을 겁니다.)
그리고, 푸시 서비스 역시 TCP/IP 통신을 할 것 같은데..
각 클라이언트에 어떻게 연결되는 것일까요? 보통 클라이언트는 막혀 있잖아요.
하긴, 이건 클라이언트(IOS, 안드로이드)가 특정 IP/포트에 대해서 개방해 놓으면 되긴 하겠네요.
자료 검색을 좀 해 봤는데, 이런 밑바닥(?) 이야기는 별로 없어서, 질문 드려봅니다.
IOS, 안드로이드 각각 이런 푸시 서비스를 제공하고 있다는데.. 전세계의 그 많은 알림을 다 처리한다니 놀랄노자네요.
카카오는 자체 서비스를 구축했다고 그러더군요.
궁금합니다..
¿¹Àü¿¡ ÀåÅ;˸®¹Ì Á¾·áÇÒ¶§ °ø°³ÇßÁö¸¸, ¸¸µé¶§ ÂüÁ¶Çß´ø ·¹ÆÛ·±½º Á¤º¸µéÀ» ¾Æ·¡ ºÙÀÔ´Ï´Ù. ÇÊ¿ä½Ã Âü°íÇÏ½Ã¸é µÉ°Í °°½À´Ï´Ù.
Web Push Notification ÂüÁ¶ÀÚ·áµé
Ǫ½Ã¼¹ö
(GITHUB) PHP À¥Çª½Ã ¼¹ö https://github.com/web-push-libs/web-push-php
±¸±Û°ø½ÄÀÚ·á
(HTML) Introduction to Push Notifications : https://developers.google.com/web/ilt/pwa/introduction-to-push-notifications
(HTML) Push Notifications on the Open Web: https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web
(Youtube) Intro to Web Push & Notifications : https://www.youtube.com/watch?v=ggUY0Q4f5ok
(HTML) Web Push Notifications Overview : https://developers.google.com/web/fundamentals/push-notifications
MDN web docs
Push API : https://developer.mozilla.org/ko/docs/Web/API/Push_API
Notification API : https://developer.mozilla.org/ko/docs/Web/API/notification
»ç¿ëÀÚÀÚ·á
(Youtube) Web Push Notifications in Xampp with PHP : https://www.youtube.com/watch?v=vi9d6MjiBGQ
¼³¸íÀÌ Á» ÀÌÇØÇϱ⠾î·Á¿îµ¥..
'endpoint' --> Á¦°¡ ¸»ÇÏ´Â 'Ŭ¶óÀ̾ðÆ®'
ÀÌ·¸°Ô ÀÌÇØÇÏ¸é µÇ·Á³ª¿ä?
±×¸®°í, ÀÌ endpoint·Î ¿¬°áÀ» ¾î¶»°Ô ÇÏ´ÂÁö´Â FCMÀÇ °æ¿ì, ±¸±ÛÀÌ ¾Ë¾Æ¼ ÇØ ÁØ´Ù? --> ±× ·ÎÁ÷Àº °í¹ÎÇÒ ÇÊ¿ä°¡ ¾ø´Ù?
ÀÌ·¸°Ô ÀÌÇØÇÏ¸é µË´Ï±î? ^^
±×·¡¼ ¸®¹ö½º Ä¿³Ø¼ÇÀº À̹ø °ÇÀÇ ÇØ°áÃ¥Àº ¾Æ´Ñµí ÇÕ´Ï´Ù.
Ŭ¶óÀ̾ðÆ®¿¡¼ (Á¤È®È÷´Â °¢ ¾ÛÀÌ ¾Æ´Ï¶ó OS¿¡¼ »ç¿ëÇÏ´Â ¼ºñ½º °°Àº °Å) ÁÖ±âÀûÀ¸·Î ±Ü¾î ¿À´Â °ÍÀÌ°ÚÁÒ.
»ç¿ëÀÚ (¾Û) ÀÔÀå¿¡¼´Â OS¿¡¼ ÁÖ±âÀûÀ¸·Î È®ÀÎÇÑ ³»¿ëÀ» ¾ÛÀ¸·Î Ǫ½¬ ÇØÁÖ´Â °Å´Ï±î ¼¹ö¿¡¼ Ǫ½¬ ÇØÁÖ´Â °É·Î ´À²¸Áö´Â.. ¹¹ ±×·± °Å ¾Æ´Ò±î¿ä?
p.s. À§¿¡¼ ²Ü¹ú´Ô ¾ê±â¸¦ º¸´Ï±î ÁÖ±âÀûÀ¸·Î ±Ü¾î¿À´Â °ÍÀÌ ¾Æ´Ï¶ó ³» À§Ä¡°¡ ¹Ù²ð ¶§¸¶´Ù ³»À§Ä¡¸¸ °»½ÅÇØÁÖ°í À̺¥Æ®°¡ ÀÖÀ» ¶§ ¼¹öÂÊ¿¡¼ ¹Ù²ï À§Ä¡·Î ½÷ÁÖ´Â °Ç°¡ º¸³×¿ä.
´ë´ÜÈ÷ °í¸¿½À´Ï´Ù.
¼¹ö¿¡ Ŭ¶óÀ̾ðÆ®¸¦ µî·ÏÇØ µÓ´Ï´Ù.
(±×·¯¸é ¼¹ö°¡ Ŭ¶óÀ̾ðÆ®¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖ½À´Ï´Ù.)
Ŭ¶óÀ̾ðÆ®ÀÇ À§Ä¡°¡ ¹Ù²î°Å³ª Çϸé, Ŭ¶óÀ̾ðÆ®°¡ ¼¹ö¿¡°Ô À̸¦ ¾Ë¸³´Ï´Ù.
±×·¯´Ï ¼¹ö´Â Ç×»ó Ŭ¶óÀ̾ðÆ®¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌÁÒ.
¾Ë°í º¸´Ï º° °Í ¾Æ´Ï±ä Çϳ׿ä. ^^