안드로이드 개발을 하려고 하는 초보입니다.

푸시 서버에 대해 검색을 해보니 대부분 GCM으로 구현한다 라고 써있더군요.

GCM의 경우 구글에서 제공하는 걸로 알고 있고, 특징을 보니 메시지 전송 순서를 신경쓰지 않는다고 하더군요.



제가 질문 하고자 하는 것은 다음과 같습니다.

1. 푸시 서버 구현 방법에 어떤 어떤 것들이 있으며 차이 점이 무엇인가요? (gcm, xmpp, c2dm )


2.  보통 푸시를 이용하는 프로젝트를 하실 때 gcm을 이용하시는지


3. 구글에서 지원해주는 gcm을 이용하지 않고 직접 구현 하시는 이유는 무엇인가요?


4. gcm이 메시지의 전달과 순서를 보장 하지 않는다고 하는데, 무슨 말인가요? 

- 메시지 전달의 순서를 보장해야 하는 프로젝트의 경우 gcm을 사용 할 수 없나요?


5. gcm을 사용하지 않는다면, 어떤 프로토콜을 이용하여 푸시 서버를 구현 해야 하는가요? 또한 구현 방법에 대한 추천을 부탁드립니다.



최대한 검색 해서 찾아보고는 있지만 이해가 안가는게 한둘이 아닙니다. 

이에 대해 아시는 분 답변 부탁 드립니다. ㅠ