이 글을 작성하는 이유는 가이드가 영어로 되어 있고 또한 가이드가 약간 틀린 부분이 있다.
(제가 테스트 해본 2012/7/16 에는 잘못되었는데 지금은 수정되었다.)
그래서 가이드를 보고 잘 하는 사람이 있는 반면 잘 못하는 사람도 있다.
누구나 이 글을 보고 따라하면 할 수 있도록 step by step으로 작성한다.
GCM(Google Cloud Messaging for Android) 이란?
서버에서 안드로이드 단말의 앱에 데이터를 전송하는 서비스이다. 즉, 푸시서비스이다.
전에는 C2DM이라는 푸시 서비스가 존재했다. 하지만 2012 구글 I/O에서 젤리빈과 함께 GCM 서비스가 공개되었다. 앞으로는 C2DM 의 신규 서비스 신청을 받지 않고 GCM을 이용해야 한다.
C2DM 서비스를 종료하는 것은 아니지만 GCM으로 migration 하는 것을 권장하고 있다.
*GCM 소개 : http://developer.android.com/guide/google/gcm/index.html
GCM 서비스 신청하기
*가이드 문서 : http://developer.android.com/guide/google/gcm/gs.html
1. 먼저 Google APIs Console 페이지로 이동한다. (로그인 안되어 있으면 로그인 하기)
2. 구글 api를 사용한 적이 없으면 아래와 같은 화면이 나온다. 그러면 Create Project 버튼을 누른다.

3. 프로젝트를 생성을 하면 왼쪽 메뉴 중 Overview 로 이동한다. 그 후 Project ID를 등록한다.
또한 구글 API를 사용한 적이 있다면 아래와 같은 화면이 나올 것이다.
만약 Project ID가 등록 안되어 있으면 등록을 해야 한다.

Project ID를 등록 하였으면 아래처럼 나올 것이다.

4. 그러면 왼쪽 위에 있는 Google apis 로고를 클릭하여 새로고침을 한다.
그 후 브라우저의 URL 주소를 잘 보자.
아마도 [https://code.google.com/apis/console/#project:긴 번호] 이러한 형식일 것이다.
#project: 이후의 숫자를 잘 적어놓자. 단말에서 GCM등록할 때 필요한 값이다.
5. 왼쪽 메뉴 중 Servies 메뉴로 이동 후 GCM 서비스를 활성화 시킨다.


6. GCM 서비스를 활성화 시켰으면 왼쪽 메뉴 중 API Access 메뉴로 이동한다.
그리고 Create new Server key 버튼을 누른다

7. 버튼을 누르면 조그만 창이 나온다. 그러면 아무것도 하지말고 create 버튼을 누른다.
*만약 특정 서버만 허용을 할 것이면 버튼 위에 있는 Accpet request from these server IP addresses: 공간에 서버 IP를 적으면 해당 서버만 허용한다.
*아무것도 적지 않으면 모든 ip 서버를 허용한다.

8. 서버 키가 생성되면 해당 키를 잘 적어놓는다. 서버에서 단말로 푸시를 보낼때 사용되는 값이다.
생성된 키는 언제든지 지우거나 새로 생성할 수 있다.
아래와 같은 화면이 나오면 서비스 신청은 끝났다.

신청 후 중요한 것은 2가지 이다.
단말에서 GCM 등록을 위한 값(SEND_ID)
- 프로젝트 ID를 등록하면 URL 주소가 변경되는데 url 주소 마지막 #project: 이후의 숫자
서버에서 단말에 푸시를 보낼때 사용하는 값 (SERVER_KEY)
- API Access 에서 Create Server key를 누르면 생성되는 API key 값