Facebook Parse로 클라우드 앱 개발하기 — 3. iOS Push

Parse 는 별도의 서버작업 없이 간편하게 클라우드 기능을 앱에 적용할 수 있는 개발 플랫폼 입니다. 클라이언트의 데이터를 서버에 저장하고 sync 하는 작업, 대량의 사용자에게 빠른시간에 Push 를 보내고 tracking 할 수 있는 기능을 지원합니다. 지금 바로 무료로 시작해 보세요!


오늘은 iOS 시작하기 튜토리얼 에 이어, Push Notification 과 원격으로 클라이언트의 Config 값을 변경하는 방법에 대해 알아보겠습니다.

Parse 에서는 서버코드 없이 다른 클라이언트로 Push notification 을 보내는 기능을 제공하고 있습니다. 클라이언트에서 푸시전송을 처리한다는게 처음에는 어색하게 느껴졌지만 쓰다보면 무척 편합니다.

Parse.com 의 앱 설정 > Push 항목에 진입하면 “Client push enabled?” 항목을 활성화 하면 이제 클라이언트에서 푸시를 보낼 수 있게 됩니다. 이제 Apple Push Certificate 를 설정해 보겠습니다. iOS Certificate 만들기 튜토리얼을 참고하여 아래와 같이 설정해주세요.

CSR 파일생성
Apple Dev Portal 에서 앱 생성하기
Push 설정시 CSR 업로드 & Cer 파일 내려받기
Cer 파일 실행하여 Keychain 에 등록
등록된 Certificate 에서 p12 파일 export. 비밀번호는 공백으로
설정을 두번반복하여 Dev 와 Prod Certificate 를 각각 Parse 에 업로드

그리고 AppDelegate 및 프로젝트 설정을 변경 하였습니다. 위 코드 중, application:didRegisterForRemoteNotificationsWithDeviceToken: 에서 Channel 에 “global” 을 추가하고 있는 부분을 주의깊게 봐주세요. 이제 푸시가 잘 동작하는지 테스트 푸시를 보내 볼 차례 입니다.

우선, iOS device 를 한번 이상 실행시켜서 Parse.com 에 installation 항목이 저장되었는지를 확인해야 합니다. 위 그림에 보면 Installation 테이블이 생성된것을 확인할 수 있습니다.

Parse.com 상단의 push > “Send Push” 로 진입한 뒤 서버에서 클라이언트로 “hello push!” 와 “hello push2!” 메시지를 보내보았습니다.

잘 동작하네요! 앱을 사용중에 있을 때는 Alert 가 띄워지고, 앱을 사용하지 않을 때는 Noti bar 에 푸시 메시지가 보여집니다. 이제 사진을 찍고 cloud 에 저장되었을 때 push 를 보내는 방법에 대해 알아보겠습니다.

userPhoto 가 업로드 된 뒤 PFPush 객체 생성 및 전송하는 코드를 추가하였고, 사용자들은 각자의 사진 업로드를 전체 유저에게 알릴 수 있게 되었습니다. 정확히는, “global” 채널을 구독하는 사용자의 모든 디바이스에 푸시를 보내게 되었습니다. 각 사용자 그룹을 channel 이용해 관리하고 어떤 그룹에 푸시를 보낼 것인지를 결정할 수 있습니다.


이번에는 Cloud Config 기능을 추가해보겠습니다.

Parse.com 의 Core > Config 기능에서 description 변수를 설정하였습니다. 이제, 클라이언트 코드를 수정하겠습니다.

그리고 ViewDidLoad 에서 위 코드를 실행시켜 동적으로 description 을 변경하도록 하였습니다. Parse.com 의 config 를 변경하면, 위 화면의 “Touch Anywhere” 문구는 동적으로 변하게 됩니다.


다음 튜토리얼에서는 Android 클라이언트 구현을 해보겠습니다. 문의/피드백은 이 문서에 코멘트나 Github, 페이스북 그룹 으로 부탁드릴게요!

Show your support

Clapping shows how much you appreciated 김유민’s story.