8. 왜
•모바일 앱
•로그 수집기
•로그 ѫ기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
모바일 앱의 시장은 공평합니다.
누구나 앱을 만들어 글로벌 시장에
내놓아 경쟁할 수 있습니다.
:
우리는 300개 이상의 앱을 만들어
글로벌 시장에 출시했습니다.
9. 서비스의 성공은 사용자의 행동을
유심히 보고, 얘기를 귀기울여 듣는
데 있다고 알고 있습니다.
:
다중 접속 온라인 게임을 10년 이
상 서비스 하며 얻은 경험을 살려
모바일에서도 실천하고 있습니다.
•모바일 앱
•로그 수집기
•로그 ѫ기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
10. 로그는 그저 로그일 뿐입니다.
이를 가공해, 시각적인 데이터로
만들어야 의미가 있습니다.
:
우리는 로그를 다듬어 데이터로
만들고, 다시 정보로 가공한 후에
이를 통해 통찰력을 얻습니다.
•모바일 앱
•로그 수집기
•로그 ѫ기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
11. 모바일 서비스의 푸시 메세지는
과거 이메일과 같습니다.
심지어 더 강력합니다.
:
우리는 자체적인 푸시 토큰 수집
데이터베이스와 대용량 메세지
발송 시스템을 만들었습니다.
•모바일 앱
•로그 수집기
•로그 ѫ기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
12. 웹은 모든 플랫폼에서 동작하는
가장 완전한 기반이 됩니다.
골치아픈 업데이트도 필요 없이요.
:
HTML5 위에서, Django와 같은
높은 생산성을 자랑하는 웹 개발
도구를 이용하고 있습니다.
•모바일 앱
•로그 수집기
•로그 ѫ기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
13. 오픈 소스는 단순한 코드의 공유를
넘어서는, 개발자의 문화입니다.
:
우리는 오픈소스를 널리 사용하고
우리의 코드도 공유하고 있습니다.
•모바일 앱
•로그 수집기
•로그 ѫ기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
33. PV / UV
DAU / MAU
PU / ARPU
NRU / RR
ReplicaSet
34. 참고
Redis, MongoDB and MySQL
모바일 애플리케이션 서비스에서의 로그 수집과 ѫ
링크 : http://www.slideshare.net/lqez/redis-mongodb-mysql
영상 : http://youtu.be/NYtRr2URAkI
35. 어떻게/ 로그 수집과 ѫ
•각각의 시스템 장애를 허용하도록 한 것.
•서버의 장애나 네트워크 문제로 클라이언트
가 로그를 보내는데 실패해도, 로컬 저장소
에 저장해 나중에 다시 보내는 것.
•MongoDB 점검 중에도 Redis에서 로그를 보
관하고 있다, 복원된 후에 쓰도록 한 것.
잘한 점
36. 어떻게/ 로그 수집과 ѫ
•다양한 형태의 로그를 테이블 생성 없이
MongoDB를 통해 손쉽게 쌓았던 것.
•장시간의 ‘ALTER TABLE’ 등으로 고민하는
일이 없어졌던 것.
•MySQL로 이전한 후에 SQL을 통한 ѫ 작
업도 익숙했던 점.
잘한 점
37. 어떻게/ 로그 수집과 ѫ
•하나의 콜렉션(테이블)에 모든 로그를 담았
던 것.
•MongoDB의 Lock 과 관련된 문제들.
•MongoDB 로부터 ѫ을 위해 MySQL 로
옮기는데 너무 많은 시간과 비용이 발생.
못한 점
38. 어떻게/ 로그 수집과 ѫ
•여러 콜렉션으로 잘게 나눠서 넣을 것.
•2.1 버전에 추가된 통계 프레임워크 사용하기.
•짧은 키(key) 이름을 사용할 것.
•메모리와 SSD 장비를 추가하는 일.
•여전히 Lock은 문제가 되므로, 용도에 따라
물리적으로 장비를 나누기.
앞으로
40. 어떻게/ 푸시 솔루션
•APNS, GCM, C2DM 을 지원합니다.
•초당 200 개의 토큰을 수집.
•2천만개의 토큰을 MongoDB에 보관.
•로그 수집 시스템과 유사한 형태입니다.
41. 어떻게/ 푸시 솔루션
•개인 정보를 제외한 기기의 언어 설정, 시간
대, 앱 버전 정보 등을 같이 수집합니다.
•예약 시스템을 통해, 특정 대상에게 푸시 메
세지를 전송하고 있습니다.
•한 달에 약 3천만 건 정도를 발송합니다.
•Urban Airship 등의 외부 푸시 솔루션의 약
$3,000 에 상응합니다.
42. 어떻게/ 푸시 솔루션
•다른 서비스 데이터베이스들과 분리되어 독립
적으로 동작하고 있습니다.
•다른 서비스와 유기적으로 결합되어, 더 밀접
한 형태의 푸시 메세지 전송을 하는 것이 필요
합니다.
•기기의 타임존에 따른 푸시 예약 발송 기능.
앞으로
44. 어떻게/ 웹 기반 도구
•웹은 복잡한 도구를 빠르게 만들어 공급하
는데 최선의 플랫폼입니다.
•Python과 PHP를 사용하고 있으며, 백엔
드 프레임워크로 Django와 Flask를 주로 사
용합니다.
•그리고 - 뻔한 얘기지만 - 프론트엔드에서
jQuery, Bootstrap, Google Chart 등을 사용
하고 있습니다.
45. 참고
만화 서비스 제작 후기
“넝쿨째 굴러온 김성모”
링크 : http://www.slideshare.net/lqez/ss-14820081
영상 : http://youtu.be/-TEyIAqAB_E
46. 참고
Do not use Django as like as
SMARTSTUDY
링크 : http://www.slideshare.net/lqez/do-not-use-django-
as-like-as-smartstudy
47. 어떻게/ 웹 기반 도구
•다양한 도구들에서 공통적으로 사용하는
Authentication 과 Authorization 이
정의되어 있지 않습니다.
•위에 대응하여 OAuth2 를 이용한 라이브러
리를 제작하고 있습니다.
앞으로
51. 어떻게/ 오픈 소스
•미약하지만, 오픈 소스에 참여하고 있습니다.
• npk : Neat package library
• https://github.com/lqez/npk
• django-project-layout
• https://github.com/smartstudy/django-project-layout
• FormEncode-Jinja2
• https://github.com/Kroisse/FormEncode-Jinja2
52. 어떻게/ 오픈 소스
•코드 외에, 실습 세션을 열어 오픈 소스 커뮤
니티에 보답하고 있습니다.
•2012 년 8월, 외부 개발자들을 대상으로
‘Django In Action’을 진행했습니다.
•40 여명의 개발자들이 이틀 동안, 4시간
에 걸쳐, Python 설치부터 시작하여
Django 를 익히는 시간을 가졌습니다.
• http://blog.naver.com/ez_/140166283139
53. 어떻게/ 오픈 소스
•더 많은 코드를 오픈 소스화 합니다.
•더 많은 실습 세션을 진행합니다.
•다양한 개발자 컨퍼런스의 스폰서가 됩니다.
•사용하고 있는 우수한 오픈 소스 프로젝트에
공헌합니다.
앞으로
54. 그리고,
•아마존 웹 서비스 CloudFront 사용기
• http://www.slideshare.net/lqez/using-cloud-front-with-s3-at-smartstudy
•만화 서비스 제작 후기
• http://blog.naver.com/ez_/140157300770 (in Korean)
•Django + Sentry 사용하기
• http://blog.naver.com/ez_/140177157684 (in Korean)
•모바일 기기를 위한 테스트 환경 구축
• http://www.slideshare.net/lqez/ss-20901287 (in Korean)