Parse.com 맛보기

Preview:

Citation preview

parse.com 맛보기

2015-08 불투 스터디

이 자료는 아래의 항목을 파스닷컴의 튜토리얼을 정리한 내용입니다.

-안드로이드 푸시 -안드로이드 데이터 추가 조회 수정 삭제 !-클라우드 코드 -클라우드 호스팅 ㄴ JS 푸시 ㄴ JS 데이터 추가 조회 수정 삭제

예전부터 좋다고 이야기는 많이 들어본 parse.com… 튜토리얼 문서를 보고 따라 해 보겠습니다.

https://www.parse.com/products/core

DB도 제공해 주고… 푸시 서버도 제공해 주고… 사용 분석도 제공합니다. +@!

Parse서비스란?

가격 정책은… 초당 30처리 제한이 있지만… 저장소도 20GB에 푸시는 월 백만건 무료!

이메일(혹은 페북, 깃헙, 구플)로 간단 가입! 신용 카드 등록 X!

Android Push 맛보기

대시보드의 모습… 일단 문서를…

QuickStart선택

https://www.parse.com/apps/quickstart여러 서비스들의 안내가 있지만 일단 푸쉬를!

플랫폼은 안드로이드로…

자바 언어를 선택(사마린까지 제공하다니…)

새 프로젝트에서 파스를 연동할 건지 기존 프로젝트에서 할 건지 물어봅니다.

새 프로젝트를 하면 파스 라이브러리가 연동되어있는 상태의 빈 프로젝트를 다운받아서 사용 할 수 있습니다.

기존 프로젝트를 선택하면 라이브러리 파일을 다운로드해서 사용할 수 있게 안내합니다.

AndroidStudio New Project ← Existing project

양쪽다 약간씩 경험하기 위해 안드로이드 스튜디오에서 새 프로젝트를 만들고 기존 프로젝트에 추가하는 방식으로 해보겠습니다.

compile 'com.parse.bolts:bolts-android:1.2.1' compile 'com.parse:parse-android:1.10.1'

문서에는 sdk를 다운받아서 사용하도록 안내 되어있지만 dependencies 설정만으로 사용이 가능합니다.

Application을 상속받는 새 클래스를 만들겠습니다.

Application을 상속받고 onCreate를 만들었습니다.

QuickStart 페이지를 보면 자신의 키에 맞게 복사 붙여넣기를 할 수 있도록 잘 안내되어 있습니다.

Copy And Paste…

Manifest에 방금 만든 Application 클래스를 등록 합니다.

QuickStart에는 Manifest -> application안에 들어가야 할 내용도 안내되어있습니다.

application 사이에 붙여 넣기…

단 category name은 기존의 com.parse.starter가 아니라 자신의 패키지명을 사용해야 합니다.

마찬가지로 QuickStart의 퍼미션 정보도 붙여넣기…

여기도 자신의 패키지명으로 수정… ( 패키지명.permission.C2D_MESSAGE )

아무것도 없는 앱이지만…

QuickStart에서 하단의 Test버튼을 눌러보겠습니다.

푸쉬가 정상적으로 들어왔습니다!

키를 잘못 선택해서 예전 프로젝트로 테스트를…

대시보드의 Push탭을 보면 전송 내역들을 보거나 +Send a push버튼을 누르면 웹에서 푸쉬를 전송 할 수 있습니다.

메시지를 보낼 대상을 고를 수 있고…

메시지를 적고…스샷에는 누락되었지만 메시지의 A/B테스트도 가능하고

메시지 열람률과 열람 시각도 푸쉬 전송 내역에서 확인이 가능합니다.

미리보기를 한번 보고…

전송!

수신!

데이터 다루기

http://pastebin.com/uwVhUmpa

테스트를 위해 간단한 레이아웃을 만들었습니다.

http://pastebin.com/FPdET77J

일단 MainActivity의 버튼에 리스너들좀 달고…

데이터 삽입

데이터를 삽입해 보겠습니다… ParseObject를 만들고 넣고 싶은 값을 key-value형태로 넣고 save하면 끝!

(콜백에 exception이 null == 정상 그리고 db Id를 잠시 TextView에 저장하였습니다.)

대시보드의 Core를 보면 데이터가 잘 들어가 있는것을 보실 수 있습니다. (몽고DB등을 사용해 보신분은 익숙하시지만 MySql등만을 사용하셨으면 좀 신기하실 지도…)

objectId

데이터를 가져 올 때에는 ParseQuery를 사용합니다. !

(objectId가 아니라 다른 값으로 데이터를 가져 올 때에는 whereEqualTo나 lessThan greaterThan등등을 사용합니다…

단 한번에 가져올 수 있는 갯수에 제한이 있으므로 많은 데이터를 가져 올 때에는 limit과 skip을 조합해서 여러번에 나누어서 데이터를 받아와야 합니다.)

Put버튼을 누르면 데이터가 삽입되고 그 데이터의 id가 표시가 됩니다. Get버튼을 누르면 방금 전 삽입한 데이터를 표시합니다.

데이터의 수정은 전에 한 Get과 동일합니다. 단 찾은 ParseObject의 값을 수정하고 다시 Save하면 끝!

데이터 수정

Update 버튼을 누르고 대시보드에서 새로 고침 하시면 데이터가 수정된 것을 확인할 수 있습니다.

만약 원자적인 데이터 수정이 필요하시면 increment나 decre를 사용하시면 됩니다!

데이터 삭제

Update와 마찬가지로 찾고 찾은 ParseObject를 delete호출 하면 끝…

delete버튼을 누르고 새로고침하면…

간단하게 삭제!

지금 방식은 ObjectId 만 알고 있으면 누구나 수정해버릴 수 있는 게 아닌가?

지금 방식은 ObjectId 만 알고 있으면 누구나 수정해버릴 수 있는 게 아닌가?

해당기기만 그 데이터를 다룰 수 있게 하기…

Application클래스에서 ACL(Access Control List)설정을 합니다. (기기 고유번호를 생성합니다.)

기존에 ParseObject를 save하기 전에 setACL을 합니다.

대시보드를 보면 고유번호가 ACL에 추가되게 됩니다.

하드코딩 테스트 (다른 디바이스가 ObjectId를 찾아내서 데이터를 가져온다면?!)

데이터를 입력했던 곳에서는 데이터를 가져 올 수 있지만 다른곳에서는 실패합니다.

Cloud Code… Cloud Hosting 맛보기

Core에는 Cloud Code라는 기능도 제공합니다. Cloud Code를 사용하면 쉽게 API서버를 만들 수 있습니다.

https://www.parse.com/docs/js/guide#command-line-installation

Cloud Code를 이용하기 위해서는 Command Line Tool을 설치해야 합니다.

MAC AND LINUX curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash

!WINDOWS

https://github.com/ParsePlatform/parse-cli/releases/tag/release_2.2.4

(환경변수 설정 or 파일 직접 실행)

맥,리눅스는 쉘코드 받아서 실행하고 윈도우즈는 exe파일을 다운 받습니다.

1.parse new를 입력 2.로그인을 합니다.

3.새로운 앱을 만들거냐고 묻는데 여기서는 전에 안드로이드 테스트에 사용하던 앱을 계속 사용하겠습니다.

4.테스트해볼 curl예제를 줍니다. appId, api Key등이 나와있습니다.

1.

2.3.

4.

parse new를 하면 앱 폴더가 생성되고 main.js를 확인할 수 있습니다.

hello로 요청이 들어오면 Hello world!를 리턴해줍니다.

단 테스트 하기 위해서는 먼저 앱 폴더로 가서 parse deploy를 합니다

(앞으로 변경점이 생길시에는 꼭 deploy로 반영을 합니다.)

curl로 테스트를 하였더니 main.js에 기재되어 있는 대로 HelloWorld가 돌아왔습니다.

Cloud Hosting 사용하기

Settings -> Hosting -> ParseApp Name에서 나만의 도메인을 설정할 수 있습니다.

앞에서 설정한 도메인으로 접속해 보면 인덱스 페이지가 잘 표시됩니다.

parse generate를 하면 app.js와 views가 생성됩니다.

!main.js에는

require(‘cloud/app.js’);를 추가합니다.

app.js를 보면 get방식으로 hello가 오면 views에 hello.ejs파일에 Congrats…의 메시지를 담아서

화면에 보여줍니다.

물론 변경점을 parse deploy로 적용을 해줘야 합니다…

~.parseapp.com/hello에 접속하면 헬로월드 페이지가 표시되는걸 확인 가능합니다!

get, post방식으로 인자를 받을 때… (render를 사용하지 않고 바로 데이터를 보내는 send를 사용하였습니다.)

테스트도 성공!

post test by postman

get test by browser

Cloud Hosting에서도 push와 데이터 다루기

/push로 요청이 들어오면 설치된 디바이스에 푸쉬 메시지 보내기

푸쉬 보내기

데이터 삽입 (안드로이드 버젼때와 내용은 같습니다.)

데이터 삽입

데이터 가져오기

데이터 가져오기

데이터 수정

마찬가지로 get한 오브젝트를 수정후 save…

get한 오브젝트를 destroy를 호출…

데이터 삭제

https://www.parse.com/tutorials

파스닷컴의 튜토리얼은 잘 준비되어 있습니다.

주변에 흔히 보기 쉬운 앱들의 예제를 소스코드까지 제공합니다!

간단한 게임을 만들고 파스를 붙여 보겠습니다.

Unity 5.0 + Parse Hosting

순서 맞추기 게임을 하고…

공유하기를 누르면…

내 스코어가 ParseData에 들어가고 결과페이지(Parse Hosting)를 공유 가능

Match Id로 상대방과 동일한 게임을 하고 점수를 비교

결과 페이지에는 도전자의 정보가 계속 기록 됨https://play.google.com/store/apps/details?id=com.limecolor.unity.sort

Api 제작하는데 약 2시간 소요 + 결과 페이지 UI적용에 시간이 오래 걸림…

사용자도 많이 없을 걸로 예상되니…ㅠㅠ 운영 비용도 없음!!

쉽고 빠르다… 이것만으로도 충분히 쓸만하지 않을까요?

감사합니다.

Recommended