얼마전 iOS 개발자로 일하고 있는 친구와 함께 사진 공유 App을 런칭했다. (App Store Link). 어차피 돈 벌기 위한 작업이 아니었으므로 서버 비용을 최소화하는 방법으로 구현했다.
1. 사진 데이터는 Facebook에 올린다.
2. 우리 App에서 보여주기 위한 데이터(순위, 투표 현황 등)는 Google App Engine에 저장한다. 1 GB까지
무료이므로 어느정도 수준까지 무료로 서비스 가능. 이 이상이면 소액 지출로 해결한다. 1GB 이상의 데이터가 쌓일 정도면 일정
수준 성공한 서비스이므로 광고 등으로 유지 비용을 벌 수 있을 것이라 판단.
3. iOS App에서 cache를 적절히 활용하여 Google App Engine에 조회를 최소화한다.
위와 같은 방식으로 하면 초기 비용 없이 서비스를 한동안 제공할 수 있을 것이라 생각하고 App을 한달전 쯤 런칭하였는데... 딱
일주일만에 Google App Engine의 DB read 동작이 무료로 제공되는 한계치를 넘을려 하고 있었다. 어쩔 수 없이
유료화로 전환하여 약간의 비용을 지출하게 되었는데.
실제 사용자 수에 비해 DB read 횟수가 많아 보여 이를 감소하는 방법을 찾아 적용하였다. 혹시, Google App Engine을 사용하여 서비스를 구축하려는 분들에게 도움이 될 듯 싶어 공유한다.
DB read 동작 횟수에 대한 정확한 이해가 필요
- Entity를 읽으면 무조건 1회의 read 동작
- Query를 실행하면 1회, Query에서 얻어지는 모든 Entity에 대해 1회의 read 동작 (read는 100k 당 0.07 USD)
- Key만 조회하는 Query의 경우는 read 1회에 Query에서 얻어지는 모든 Entity Key에 대해 1회의 small 동작 (small은 100k 당 0.01 USD)
즉, Entity를 얻어오는 동작을 최소화하고 Query를 실행 시 Key 값만으로도 충분하다면 언제나 Key only 조회를 실행하는 것이 비용을 줄일 수 있다.
실제 구현은 어떻게?
1. GAE (Google App Engine)이 제공하는 memcache를 활용하여 DB의 물리적인 read를 줄인다. 성능의 이점뿐 아니라 비용을 줄일 수 있다.
2. Query를 실행 시 되도록 Key only Query를 사용한다. 1/7로 비용을 줄일 수 있다.
3. fetch의 offset 인자 대신 Cursor를 사용한다. fetch의 offset을 이용하여 특정 데이터를 skip시
read 동작으로 count 되기 때문이다. 더 자세한 설명은 아래 GAE 문서에서 발췌한 Note를 참고.
Note: Using
an offset only avoids returning the skipped entities to your
application, but these entities are still retrieved internally. The
skipped entities do affect the latency of the query, and your
application is billed for the read operations required to retrieve them.
To avoid these costs, it is often better to use a query cursor instead of an offset.
4. Query를 이용하여 for loop에서 Entity를 가져오는 대신 Model의 get(keys) 를 이용하는 것이
read 횟수를 줄일 수 있다. Query의 경우 Query 1회, Entity 가져오기 1회의 read 동작이 필요하고
get(keys)는 Entity를 가져오는 1회의 동작만 필요하다.
References:
-
-
Android M에 추가된 Doze 모드는 일정한 조건이 되면 어플리케이션의 타이머, Wakelock, 네트워크 사용을 금지한다. 스마트폰의 배터리 수명을 늘리기 위한 기술이지만 개발자에게는 난감할 수도 있는 기능.
Doze 모드에 진입한 상태에서도 네트워크에 접근하여 필요한 데이터를 가져오는 등의 동작을 구현하기 위해서는 GCM의 high priority message를 사용하면 된다. 단, 어떤 경우에 high priority로 하고 어떤 경우에는 normal priority로 해야할지 고민이 필요하다.
트위터의 경우 사용자에게 직접 보내는 메시지(direct message)에는 high priority message로 멘션의 경우에는 normal priority 메시지를 사용하여 배터리 효율과 사용성을 모두 만족시킬 수 있었다고 한다. 자세한 내용은 아래 블로그 글을 참조 하시라.
http://googledevelopers.blogspot.kr/2015/12/how-twitter-used-doze-in-android-60.html
-
http://blogs.blackberry.com/2015/11/managing-android-security-patching-for-priv/
Android Monthly Security Updates
Each month Google releases to BlackBerry and other Android OEMs a security bulletin containing a list of recently discovered Android vulnerabilities. Approximately one month later, Google exposes these in the public domain, so it is critical that BlackBerry release software in advance of public disclosure. BlackBerry will release these monthly updates to users that have purchased PRIV through shopblackberry.com and to PRIV resellers (carriers and other authorized dealers) that have agreed to participate in our regular monthly update program and facilitate rapid approval of our monthly updates for over-the-air (OTA) to subscribers.
BlackBerry도 Android Monthly Security Updates에 동참한다는 뉴스입니다. 이미 삼성전자도 동일한 메시지를 발표했었죠. Nexus 기기의 경우 아래와 같이 보안 패치를 제공 받을 수 있습니다.
====
Nexus 4, Nexus 5, Nexus 6, Nexus 7, Nexus 9 및 Nexus 10 기기는 Google로부터 직접 최신 Android 버전을 받을 수 있습니다.이러한 기기는 Google 스토어에서 해당 기기가 처음 판매된 때부터 최소 2년 동안 Android 버전 업데이트를 받게 됩니다.
보안 패치
또한 심각하다고 여겨지는 보안 문제에 대해 Nexus 기기는 적어도 다음 기간 동안 업데이트를 받습니다.
Google 스토어에서 해당 기기가 처음 판매된 때부터 3년
또는 Google 스토어에서 해당 기기의 판매가 중단된 때부터 18개월
기기에 마지막으로 보안 패치가 수신된 때를 보려면 다음 단계를 따르세요. -
이번 주 Nexus 5X와 6P가 발표습니다. 구글 스토어에서는 사전 예약이 시작되었죠. Nexus 5 이후 2년 만에 한국에서도 Nexus 디바이스를 구매할 수 있게 되었네요.
Google의 레퍼런스 폰답게 운영체제 업데이트를 최초 판매일로 부터 2년간 보장합니다. 보안 패치의 경우는 3년간 보장합니다. (Nexus Help 사이트 참조)
Nexus 5X Nexus 6P 5.2 inch Full HD, 423 ppi
1.8 GHz hexa-core 64-bit
RAM: 2 GB LPDDR3
136 g
2700 mAh Battery
Nexus Imprint (지문인식)
12.3 MP, 1.55 μm pixels real camera
IR laser-assisted autofocus
4K (30 fps) video capture
5 MP, 1.4 μm pixels front camera
Single front-facing speaker
USB Type-C5.7 inches WQHD, 518 ppi
2.0 GHz octa-core 64-bit
RAM: 3 GB LPDDR4
178 g
3450 mAh Battery
Nexus Imprint (지문인식)
12.3 MP, 1.55 μm pixels real camera
IR laser-assisted autofocus
4K (30 fps) video capture
8 MP, 1.4 μm pixels front camera
Dual front-facing stereo speaker
USB Type-C
-
작년 일본어 공부를 좀 했다고 자신만만하게 떠난 후쿠오카 여행. 하지만, 내 일본어 실력은 아직 멀었는지 일단 물어보고 싶은 것은 자신만만 일본어로 물어보았으나 상대방 말은 영 들리지 않느다. 대략 낭패.
해외 여행 시 겪는 외국어 울렁증. 대화는 물론 간단한 표지판, 음식점 메뉴에도 까막눈이 된다면 Google 번역기의 도움을 받아보자.
음성인식 기능으로 간단한 대화가 가능
2개의 언어를 동시에 인식 가능하므로 한국어와 해석이 필요한 외국어를 설정해놓고 간단한 대화가 가능하다. 아래 비디오는 영어와 독일어로 대화하는 설정 데모.
카메라 인식 기능으로 표지판, 메뉴 등을 바로 번역해서 확인 가능
카메라 인식 모드에서는 화면에 비친 외국어를 선택하여 바로 번역해볼 수 있다.
필기 인식으로 필담도 가능
음성인식률에 문제가 있다고 생각되면 필기체 인식모드로 변경하여 필담으로 해결하자.
-
구글·美이통사, 애플페이 부상에 '적'에서 '동지'로
언제나 애플이 문제 :)
구글의 조립식 스마트폰 ‘아라’, 어디까지
ARA DevCon2 행사에서 논의된 모듈화된 H/W가 사용자에 의해 탁찰 시 안드로이드 운영체제가 동적으로 해당 모듈의 기능을 사용할 수 있도록 지원할 예정이라는 것이 가장 흥미로왔다. ARA 폰은 푸에루토리코에서 출시 예정이라고 한다. 푸에루토리코는 미국령에 미국/지역 통신사들이 혼재되어 있고 스마트폰과 피쳐폰의 비율이 50/50으로 ARA 폰을 테스트하기에 최적의 조건이라고.
구글, 이동통신 서비스 직접 뛰어드나
이라는 루머가 있다.
구글플레이, 애플보다 앱 개수 늘었지만 수익성은 아직
등록된 application이 갯수는 150만 vs 120만으로 Google Play가 앞서지만 매출은 150억 달러 (15조원 정도) vs 250억 달러로 Appstore가 높다는 기사.
리브레오피스도 안드로이드용 나온다
한국에서는 뭐...
안드로이드 태블릿용 MS오피스 정식판 출시
MS 오피스 정도는 되어야 한국 시장에 통하지. 무료로 설치할 수 있지만 편집을 하려면 Office 365에 가입해야하는구나. 그냥 Google Docs써야지.
안드로이드폰 세계 판매량 10억대 돌파
작년 한해 전체 스마트폰 판매량의 81%를 차지하며 10억대 넘게 안드로이드폰이 팔렸다고. 세계 인구가 72억명 정도라는데...
-
- 현대차가 개발한 '원격조종 앱 블루링크
Android wear에서 자동차를 원격조종 가능한 앱을 제공합니다. Wear 디바이스에 흥미로운 활용 사례가 나오기 시작하네요
- `후후`, 안드로이드 기반 웨어러블 버전 출시
Android wear 관련 뉴스 하나 더. 걸려 온 전화의 스팸여부를 Wear 디바이스에서 확인할 수 있는 후후 app이 출시되었습니다.
- 구글 GO, 안드로이드 앱 개발서 자바와 격돌
Go 언어의 Android 지원은 꽤 전 부터 제공되고 있었습니다만 기사가 좀 과장이 섞인 것 같습니다. 하지만, iOS에 Swift가 있는 것처럼 Android용 추가 개발 언어가 제공된다면 개발자 커뮤니티에 새로운 활력이 될 수는 있겠지요.
- 구글, 안드로이드 OS 킷캣 점유율 40% 근접.. 롤리팝 비중은 없어
iOS의 새로운 버전 적용에 비하면 느리지만 Android도 차근 차근 새로운 버전이 확산되고 있고 기존 버전들에 비하면 점점 적용 시기도 빨라지고 있는 것으로 보입니다. 5.0 버전은 이제 점유율을 늘리기 시작할 것 같습니다.
- CES2015, 안드로이드 품은 TV와 차로 시끌벅적
Android가 이미 성공한 스마트폰 외에 새로운 영역으로 확장을 꾀하는 모습입니다. 특히, 이번 CES에서는 자동차 분야가 주목을 받았죠.
- 구글, 조립식 스마트폰 '아라' 연내 푸에르토리코서 발매
Google이 약 3년간 연구해온 ARA 폰을 중남미 국가인 푸에르토리코에서 실 사용자 테스트를 해보려고 하네요. ARA에 관심있는 분들은 1월 21일 ARA DevCon2에 참석해보세요.
- '갤럭시노트4' 이달 중 '롤리팝' 업데이트 유력.. 롤리팝 매뉴얼 등장
점차 Android 5.0 기반 스마트폰들이 늘어나고 있습니다.
- 연내 출시될 2세대 구글글래스, 애플식 비밀주의 채택?
Google Glass도 Android 기반이랍니다. 현재는 기업 시장에서의 관심이 높은 것으로 보입니다. 일반인이 사용하기에는 아직 가격도 좀 비싸고 프라이버시 문제도 해결해야겠죠. GDK (Glass Development Kit) 참고하세요.
- 현대차가 개발한 '원격조종 앱 블루링크
-
2015년 1월 1주
- 삼성, 모든 스마트 TV에 ‘타이젠’ 탑재한다
Android 관련 뉴스는 아니지만 흥미로운 기사여서 링크를 걸어봅니다. Google의 Android TV와 각을 세우는 시도입니다. 휴대폰에서는 이렇다할 성과를 내지못한 Tizen O.S. TV에서는 어떨런지요. (참고: tizen tag로 stackoverflow를 검색해보니 275개의 질문이 등록되어 있네요.)
- 삼성전자, '갤럭시S5' 안드로이드 5.0.2 롤리팝 준비 中
- 안드로이드 스마트폰 업계 수익성 급락
- Kodak의 Android 폰 출시 예정 (영문)
CES 2015에서 Kodak이 Android 폰을 선보일거라고 합니다. 전통의 카메라 기술 강자였지만 디지털 시대에 적응치 못해 파산을 하였던 Kodak이 어떤 스마트폰을 선보일지 궁굼하네요. 물론, 카메라 기능에 특화된 휴대폰이겠지요?
- 삼성, 모든 스마트 TV에 ‘타이젠’ 탑재한다
-
2014년 12월 4주
- 안드로이드스튜디오에 구글 클라우드 결합
얼마전 1.0 버전이 발표된 Android Studio에 Google App Engine 개발 환경을 제공한다는 뉴스입니다. 이를 이용하여 모바일 어플리케이션의 백엔드 개발을 손쉽게 할 수 있습니다. 자세한 내용은 Google 블로그 글(영문)을 참조하세요.
- 내차에 구글 안드로이드가 들어간다고?
다음 버전(M)에서는 Android Auto가 자동차에 내장된 형태로 제공될 것이라는 예측성 기사입니다. 당연한 수순일까요?
- 구글, '안드로이드원' 출시국 확대
인도에서 첫선을 보인 Android One 디바이스가 스리랑카, 방글라데시, 네팔 등으로 출시국을 확대한다는 소식입니다.
- 2015년 안드로이드에 던져진 5가지 숙제
파편화, 차별화, 웨어러블 시장 전망, 기업시장, 앱 수익률 등의 문제점을 지적하고 있습니다.
Wish your happy new year! - 안드로이드스튜디오에 구글 클라우드 결합
-
2014년 12월 3주
- 구글 '넥서스5' 안드로이드 5.0.1 롤리팝 업데이트 돌입
모든 Nexus 디바이스의 factory image는 구글 사이트에서 다운로드 받을 수 있습니다.
- Android Wear 해커톤 지원 소식
구글이 Android Wear 해커톤 행사를 지원합니다.
- 안드로이드 5.1 내년 2월말 공개 (소문)
확인되지 않은 소문이랍니다.
- 카드보드 SDK for Android 공개
값싼 VR (virtual reality) 구현을 위한 카드보드 SDK가 안드로이드용으로 공개되었습니다. 몇 종류의 카드보드도 구매 가능하네요.
- 구글플레이 기프트 카드 프로모션
기프트카드 구매하고 게임 캐릭터도 공짜로 받고. 2주간 진행되는 프로모션입니다.
- 구글 게임 플레이 서비스
에 publishing API가 새로이 추가되었네요.
- Project ARA DevCon 2
모듈기반 스마트폰 ARA의 두번째 developer conference가 열린답니다. Hangout으로 remote로 참석도 가능합니다. 이곳에서 등록하세요.
- 중국 Coolpad 안드로이드 테블릿에서 백도어 발견
중국 Coolpad의 저가 안드로이드 테블릿에서 백도어가 발견되었다고 Palo Alto Networks사가 밝혔습니다.
- Watch Face의 성능을 높이는 방법
+Hoi Lam의 블로그 글 입니다.
- 구글 '넥서스5' 안드로이드 5.0.1 롤리팝 업데이트 돌입
Loading
Dynamic Views template. Powered by Blogger.
댓글
댓글 쓰기