dyway

I'm very well : Life of an ordinary programmer

GCM – Google Cloud Messaging 알아보기

안드로이드 단말에서 Push 메시지를 사용할 수 있게 해 주는  GCM – Google Cloud Messaging 에 대해 정리한 내용이다. 내가 맡은 파트는 아니지만, 현재 진행 중인 프로젝트에서 사용하고 있기도 하고, 워낙에 많은 애플리케이션에서 사용하는 Push 기능인만큼 간단하게나마 동작 원리만이라도 알 수 있으면 될 것 같다.

구글의 개발자 사이트 중 GCM 관련 페이지에서 데모 소스 코드-서버(애플리케이션 서버), 클라이언트(안드로이드 애플리케이션)-를 받을 수 있다. 이 소스 코드는 조금만 수정하면 개발자의 로컬 PC환경에서도 완벽하게 동작한다. 완벽하게 동작한다는 것은 개발자의 로컬 PC에 애플리케이션 서버를 띄우고, 안드로이드 단말(휴대폰, 태블릿 등)에 클라이언트 소스를 컴파일 하여 애플리케이션을 설치하면, 로컬 PC에서 메시지 발송 -> GCM -> 안드로이드 단말로 Push 메시지가 오는 것을 볼 수 있다는 것을 말한다.

데모 소스 코드에서 수정해야 할 곳은 두 군데이다.

  1. 서버 소스 코드 중에서 api.key파일에 들어가는 API Key값을 프로젝트에서 생성한 API Key값으로 변경해야 한다.
  2. 클라이언트 소스 코드 중 단말을 GCM 서버에 등록하고 받는 Reg ID를 애플리케이션 서버로 전송하여 등록하는 부분이 있는데, 여기서 Reg ID를 보내는 애플리케이션 서버의 IP를 애플리케이션 서버가 돌아가고 있는 로컬 PC의 IP로 변경해야 한다.
    * 이 때, 단말이 로컬 PC의 IP에 접근가능한지를 확인해야 한다. 모든 설정이 정상인데, Reg ID등록이 되지 않는다면 로컬 PC의 IP를 찾지 못하는 경우일 수 있다.

아래 첨부한 구글 드라이브 프리젠테이션에 정리했다. 영문으로 된 문서를 정리한 것일 뿐이지만, 나처럼 처음 접하는 분들에게 조금이나마 도움이 되길 바란다. 글로 된 설명보다는 단순한 동작 과정만 알고 싶다면 프리젠테이션의 16~20 페이지에 그려놓은 그림을 참고하면 된다. 하지만 역시 가장 좋은 건 데모 소스 코드를 받아서 실행시켜 보는 것이다. 프리젠테이션을 만들면서 참고한 사이트 정보는 프리젠테이션의 맨 마지막 장에 첨부했으며, 링크만 따로 빼면 아래와 같다.

개념적인 설명 외에 실제 구현과 관계된 것은 다른 블로그나 게시판-GCM 구현, GCM 사용하기 등으로 검색-에도 많으므로 정리하지 않았다.

GCM 알아보기(새창)

안드로이드 단말에서 GCM의 Push 기능를 사용하는 애플리케이션이나 서비스를 구현해 본 적이 없는 입장에서 궁금했던 점은

  1. 앱을 삭제하면 어떻게 되는가?
  2. 애플리케이션의 설정에서 Push 메시지를 받지 않겠다고 설정하면, 애플리케이션 서버로 단말의 Reg ID를 등록 해지 하는지 아니면, Push 메시지는 전달되지만 애플리케이션 레벨에서 무시를 하는지?

였었는데, 1번에 대한 답은 GCM 관련 문서에 정리가 잘 되어있었고, 2번과 관계된 내용은 찾지 못했다. Push 메시지를 받을 때에 특별하게 큰 비용이 드는 게 아니기 때문에 애플리케이션에서 메시지를 수신했을 때 처리하지 않는 로직을 사용하는 게 맞을 것 같다는 생각만 들었다. 실제 서비스에서는 어떤 식으로 구현을 하는지 궁금하다.

광고

Written by dyway

2012년 10월 4일 , 시간: 5:38 오후

%d 블로거가 이것을 좋아합니다: