본문 바로가기
프로그래밍/iOS

Push Notification 적용하기 #1. SSL 인증서 생성

by 백룡화검 2012. 4. 25.

APNS (Apple Push Notification Service)
iOS 기반의 서버/클라이언트(앱) 서비스 개발시, 서버에서 발생한는 다양한 이벤트나 데이터를 클라이언트에 전달하기 위해서는 APNS를 사용해야만 한다. iOS는 백그라운드 프로세스를 '제한적으로만' 제공하기 때문에 안드로이드처럼 폴링 방식을 사용할 수 없기 때문이다. 폴링 방식은 백그라운드 프로세스를 통해 서버와의 연결을 지속적으로 유지해야 하며, 짧은 주기로 서버와 통신을 해야 한다. 적은 메모리와, 더럽게 적은 배터리같이 한정된 자원을 가진 스마트폰이나 스마트패드에서 사용하기에는 껄끄로운 방법이다. 대신, 애플은 APNS라는 아주 세련된 방법을 통해 아이폰에게 데이터를 '던져' 줄 수 있는 방법을 제공한다. 배터리 걱정도 없고 보안 걱정도 없다. 낄낄..

APNS의 장점에 비하면, 비교적 간단한 방법으로 Push Notification을 구현할 수 있다. 여기서는 이미 iOS 개발자 프로그램을 취득하여 앱을 개발중인 개발자를 대상으로, 닷넷 프레임워크 기반의 푸시 서버에서 아이폰으로 메시지를 전달(Push)하기 위한 과정을 간략히 설명한다.

알리기 보단 기억을 위한 포스팅이다. 이 포스팅을 통해 흐름만 간략하게 파악하고, 애플이 제공하는 개발자 레퍼런스를 자세히 읽어 보기를 강력히 추천한다.


1. SSL 인증서 생성
우선 iPhone Provisioning Portal에서 SSL 인증서를 발급받아야 한다. 인증서는 Provider(Push Server)를 만들 때 필요하다. Provisioning Portal의 왼쪽 사이드바에서 App IDs 메뉴를 선택하면 다음과 같이 App 목록이 표시된다. App ID에 '*' 가 포함될 경우 APNS를 사용할 수 없으니 주의한다. (아래 화면의 두 번째 앱과 같이 Unavailable이라고 표시된다.) APNS를 사용할 App 항목의 Configure를 클릭한다.


두 가지 형식의 SSL 인증서가 제공되는 것을 확인할 수 있다. 개발 및 테스트 환경(Sandbox Environment)에서 사용될 인증서와 실제 배포 시(Product Environment) 사용될 인증서를 구분해야 한다. 설정값이 몇 개 틀리지만 동일한 방법으로 사용되며, 일단 개발 중인 App에서 사용하는 것으로 가정하고 Development Push SSL Certificate 인증서를 사용한다.  Enable for Apple Push Notification service를 체크하고 Configure를 클릭한다.



실제 SSL 인증서를 생성하기 위한 과정이 진행된다. 개발자 인증서 생성시 사용했던 인증서 서명 요청(CSR)파일을 선택하고 Continue를 클릭한다. 개발자 인증서 등록 과정에서 사용했던 CSR파일을 사용한다.




인증서 생성이 완료되면 Download를 클릭하여 인증서를 내려 받는다. Product 인증서가 필요하다면 동일한 과정으로 인증서를 생성한다.


다운받은 인증서 파일(*.cer)을 더블 클릭하면 키체인 유틸리티가 실행되며 인증서가 등록된다. 등록된 인증서를 선택하고 우클릭하여 "보내기"를 선택하여 개인 정보 교환 형식(*.p12)의 파일로 저장한다. 암호는 푸서 서버에서 인증서를 사용할 때 필요하다. 적당한 값으로 입력한다.



References.
iOS Developer Library : About Local Notifications and Push Notifications

출처 : http://sunsideup.tistory.com/66