BaaS중에는 Parse.com이 가성비 갑이지요…
그런데 Appcelerator Cloud 대비로 거의 유일한 단점이 dev/production 구분 기능이 없습니다.
어제는 테스트를 하다가 User 테이블에서 테스트 유저를 지운다는게 단순한 실수로 유저를 통채로 날렸습니다-_ -!!!
우왕~굳~
User 테이블의 row는 다른 테이블에 pointer관계로 연결되어 있는것들도 있는데 그런거 무시하고 지워지더군요-_ -;;
뭐 여차저차 정보를 짜깁기해서 유저 테이블을 리빌드 하여서 다행히 큰 사단은 일어나지 않았지만…
유저들은 앱을 켜면 인증이 풀려서 다시 인증해야하는 상황이…
어차피 아직 유저가 적어서 그러려니 할것 같습니다만… 정말 아찔 했네요.
냉큼 cloud code에 beforedelete 트리거를 설정했습니다… 어후…
// 유저를 지울 수 없게 처리
Parse.Cloud.beforeDelete(Parse.User, function(request, response) {
response.error("Error : User delete blocking.");
});
1개의 좋아요
@Faith 님 난데없이 제가 User 데이터를 날려서 같이 고생하셨어요…
역시 그런건 어떻게든 원청봉쇄하는게 최고인것 같아요. ㅎ ㄷ ㄷ
그러고 보니 Parse 자체적으로 Backup을 해 주는 기능을 찾을 수가 없네요.
자체적으로 백업을 하지만, 자신들의 엔지니어링 적인 문제에만 복구에 사용한다고 하더군요…
개발/운영하면서 생기는 문제는 대응해주지 않고, soft delete를 권장하더군요…
등골이 서늘하고, 응꼬가 찌릿찌릿해지는 기분 오래만이었어요…
heedoo
(문희두)
8
정말 짜릿하셨겠네요. 저는 그래서 처음부터 아예 Dev, Prod 용 두개를 만들어서 사용해요.
네 이게 좋죠.ㅎㅎ 이럴때 사용하기 위해 만들었던 노드 모듈이 있어요.ㅎㅎ
cli에서 빌드할 때 옵션이나 build 환경에 따라서 app id 부터 각종 tiapp.xml의 속성을 바꿔주는 애죠.
dev. prod 나누는 코드가 매번 실행되기는 싫고 나눌때 딱입니다. (혹시 최신 ti에서 동작 안하면 알려주세요.^^)
<id>com.licky.www</id>
<dev.id>dev.co.licky.www</dev.id>
<property name="server_url">http://www.myserver</property>
<property name="dev.server_url">http://192.168.0.10:8080</property>
<property name="ti.facebook.appid">12345xxxxxxxxx</property>
<property name="dev.ti.facebook.appid">xxxxxxx56789</property>
1개의 좋아요
사실 처음부터 알고 있었는데… 퍼블리싱 하는 타이밍에 바빠서 무시했더랬죠 ㅠ_ㅠ