SlideShare a Scribd company logo
1 of 62
Download to read offline
WHAT / WHY / HOW
WE’RE ENGINEERING AT SMARTSTUDY
Park Hyunwoo / @lqez
2013-05
• We started at Jun, 2010.
• We do engineering for products and services,
not for playing with breeding-edge technologies.
• 26 freaks in this ship.
And 14 of them are hackers. (May 2013)
We are
“Service Freak”
This slide describes:
What we do? and Why we do it?
and How we did it and will do it?
So WHAT
WHAT
What we’ve created.
}
• Mobile Apps
• Log Crawler
• Log Analyzer
• Push Solution
• Web-based tools
• Open Source
But WHY
WHY
•Mobile Apps
• Log Crawler
• Log Analyzer
• Push Solution
• Web-based tools
• Open Source
Mobile application markets are
fair.Anybody can upload their
apps and deploy globally.
:
We’ve developed and deployed
300+ apps in mobile era.
WHY
• Mobile Apps
•Log Crawler
• Log Analyzer
• Push Solution
• Web-based tools
• Open Source
We knew that the success of
business is up to keep eyes on
the behavior of users.
:
We adapt technologies and
experiences what we learned
from 10y+ online game services.
WHY
• Mobile Apps
• Log Crawler
•Log Analyzer
• Push Solution
• Web-based tools
• Open Source
a Bunch of logs has no meaning.
We have to examine them in
various ways via visualization.
:
We polish logs into Data,
and again to Information,
at last, we’ll get Insight from it.
WHY
• Mobile Apps
• Log Crawler
• Log Analyzer
•Push Solution
• Web-based tools
• Open Source
In mobile market, push message
works as same as email.
Even more powerful.
:
We build redundant storing
& massive reservation
system.
WHY
• Mobile Apps
• Log Crawler
• Log Analyzer
• Push Solution
•Web-based tools
• Open Source
Web is the best platform
to serve tools without a
headache of updating, and
runs on every machines.
:
We stand on HTML5
with high-productivity
framework like Django.
WHY
• Mobile Apps
• Log Crawler
• Log Analyzer
• Push Solution
• Web-based tools
•Open Source
Open source is not only codes,
but also culture.
:
We uses open sources and
open our codes to the world.
Then HOW
HOW/ Mobile apps
HOW/ Mobile apps
OpenGLNativeWeb
HOW/ Mobile apps
OpenGLNativeWeb
OpenGLNativeWeb
HOW/ Mobile apps
HOW/ Mobile apps
OpenGLNativeWebThere are no boundary or no fixed rules.
We just choose the best fit architecture.
HOW/ Mobile apps
iOS / Android
Native API
OpenGL
SMARTSTUDY Library
Cocos2d-x
C/C++
NDKPython
HTML
Javascript
CSS
Mobile Apps and Services
HOW/ Mobile apps
Developer Z
iOS Android
Developer M
iOS Android Web
Developer B
Android Windows
Developer H
iOS Android Bada
HOW/ Mobile apps
Developer Z
iOS Android
Developer M
iOS Android Web
Developer B
Android Windows
Developer H
iOS Android Bada
We develop on various platforms, so
Every developer are needed to work on
two or more platforms.
HOW/ Mobile apps
• We’ve focused on each app and content,
not on making platform.
• Release apps on various mobile platforms
even on Windows Store and Smart TV.
• Each developer has their own ‘Main role’
but also ‘Sub role’ to expand experiences.
GOOD
HOW/ Mobile apps
• We have own platform-independent data
format and service models, but do not have
own rich middleware or library.
• Too many apps to be serviced.
• Pressure of multi-platform experience.
BAD
HOW/ Mobile apps
• We have lots of codebase on each apps.
• If we can refine them into loose-tied
libraries, it’ll be good to prevent making a
‘Wheels’ again.
• Document it and Share it.
TO-BE
HOW/ Log Crawler
& Analyzer
HOW/ Log Crawler & Analyzer
• Traditional RDB + NoSQL solution
• We uses MySQL InnoDB / MyISAM with
MongoDB to store & analysis logs.
HOW/ Log Crawler & Analyzer
230logs/sec
20,000,000logs/day
about 10GB/day
HOW/ Log Crawler & Analyzer
over
3 billion
logs till now.
Server
Apache httpd
mod_php
Server
Redis
Apache httpd
mod_php
Predis
Server
Apache httpd
mod_php
PredisPredis
ReplicaSet
Secondary Secondary
Primary
Redis
PV / UV
DAU / MAU
PU / ARPU
NRU / RR
ReplicaSet
See also:
Redis, MongoDB and MySQL
Crawl and Analysis log in Mobile Application Service
Link : http://www.slideshare.net/lqez/redis-mongodb-mysql
Video : http://youtu.be/NYtRr2URAkI
HOW/ Log Crawler & Analyzer
GOOD
• Fault tolerance log crawler.
• Client stores logs in own local storage
when it failed to send logs by any reason.
(i.e. server problem, network unreachable)
• Redis can hold logs while MongoDB have
problems while upgrading or replicating.
HOW/ Log Crawler & Analyzer
GOOD
• MongoDB can hold various types of log
without creating tables for each log type.
• And good bye long ‘ALTER TABLE’.
• MySQL is very familiar for us.
HOW/ Log Crawler & Analyzer
BAD
• Storing entire logs in only one collection is
not a good idea.
• Lock strangle us every each second.
• Copying logs from MongoDB to MySQL
needs logs of time.
HOW/ Log Crawler & Analyzer
• Divide logs into small pieces in MongoDB.
• Use aggregation framework added in 2.1.
• Use shorter key name.
• Add more memory and SSD.
• There are (still) many global locks.
Use more physical instances for each purpose.
TO-BE
HOW/ Push Solution
HOW/ Push Solution
• Support APNS, GCM and C2DM.
• Collect ~200 tokens per every second.
• Storing 20M+ tokens in MongoDB.
• Adapt a similar architecture of the Log
crawling system.
HOW/ Push Solution
• Stores tokens with version of app,
language, timezone and other meaningful
device information without personal’s.
• With reservation system, we can send
messages to the targeted users.
• We sent ~30,000,000 msgs per month.
• via Urban Airship = $3,000 per month.
HOW/ Push Solution
TO-BE
• Current token database is isolated from
other application database.
• To make better user experience,
combination of two databases is needed.
• Timezone awareness.
HOW/ Web-based tools
HOW/ Web-based tools
• Web - actually, web browser is a good
platform to provide rich toolkits rapidly.
• We use Python and PHP as backend and
mainly use Django and Flask.
• And also use jQuery, Bootstrap and Google
Chart library for frontend. (as like as you)
See also:
Creating a comic service
Link : http://www.slideshare.net/lqez/ss-14820081
Video : http://youtu.be/-TEyIAqAB_E
See also:
Do not use Django as like as
SMARTSTUDY
Link : http://www.slideshare.net/lqez/do-not-use-django-
as-like-as-smartstudy
HOW/ Web-based tools
TO-BE
• Currently, there is no rule for
Authentication and Authorization.
(some uses just LDAP)
• So,We’re building standard A-A library via
OAuth2.
HOW/ Open Source
HOW/ Open Source
• Open source is not only code or license.
• It is a culture for hackers.
• We’re using open source projects for our
service widely.
• We also recommend to make in-house
library or middleware as open source.
HOW/ Open Source
• Can’t enumerate all in here,
• Linux, OpenLDAP, Redmine, Cacti, Nginx,
MySQL, MongoDB, watch, ImageMagicK,
ffmpeg, libx264, OpenSSH, awk, sed, find,
Python, wget, Celery, PHP, tar, gzip, curl, zlib,
iptables, Django, Flask,Werkzeug, vim, fabric,
eventlet, Sentry, django-debug-toolbar,
Bootstrap, jQuery, Postgres, Redis, uWSGI...
HOW/ Open Source
• And open our sources, even they’re tiny.
• 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
HOW/ Open Source
• And we gave back to Open source by
another way - Open a hands-on session.
• Django In Action,Aug 2012 at
SMARTSTUDY Seoul HQ.
• 40 developers learned from the
installation of Python to Django in 4H.
• http://blog.naver.com/ez_/140166283139
HOW/ Open Source
TO-BE
• Open more codes to community.
• Open more sessions, especially hands-on
sessions. It’s very rare in Korea.
• Be more sponsors for developer conferences.
• Contribute to open source projects.
AND
• Using AWS CloudFront with S3
• http://www.slideshare.net/lqez/using-cloud-front-with-s3-at-smartstudy
• Post-mortem of Making a comic service
• http://blog.naver.com/ez_/140157300770 (in Korean)
• Using Sentry for Django applications
• http://blog.naver.com/ez_/140177157684 (in Korean)
• Test environment for mobile devices
• http://www.slideshare.net/lqez/ss-20901287 (in Korean)
MOVING
TOWARD
Good Product
not great or elegance platforms.
Content rules platform,
Time rules talent.
So,
Our most
important
value is
YOU, AND I
We, Human do
make it works.
not code or turing machines.
WHAT / WHY / HOW
WE’RE ENGINEERING AT SMARTSTUDY
Park Hyunwoo / @lqez
2013-05
AND WE’RE STILL
WALKING ON !

More Related Content

What's hot

Softshake 2013 - Let's take this offline
Softshake 2013 - Let's take this offlineSoftshake 2013 - Let's take this offline
Softshake 2013 - Let's take this offlineClaire Reynaud
 
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...Ontico
 
Sfd hanoi2012 nguyen ha duong yang node.js-intro
Sfd hanoi2012 nguyen ha duong yang   node.js-introSfd hanoi2012 nguyen ha duong yang   node.js-intro
Sfd hanoi2012 nguyen ha duong yang node.js-introVu Hung Nguyen
 
Pre-render Blazor WebAssembly on static web hosting at publishing time
Pre-render Blazor WebAssembly on static web hosting at publishing timePre-render Blazor WebAssembly on static web hosting at publishing time
Pre-render Blazor WebAssembly on static web hosting at publishing timeJun-ichi Sakamoto
 
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of JavascriptIrfan Maulana
 
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기NAVER D2
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Bibby Chung
 
Javascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsJavascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsClay Smith
 
Cloud App Develop
Cloud App DevelopCloud App Develop
Cloud App DevelopFin Chen
 
Go & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and ErrorsGo & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and ErrorsYoshiki Shibukawa
 
npm + browserify
npm + browserifynpm + browserify
npm + browserifymaxgfeller
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS LimitationsValeri Karpov
 
Using Javascript in today's world
Using Javascript in today's worldUsing Javascript in today's world
Using Javascript in today's worldSudar Muthu
 
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스Rhio Kim
 
JavaScript Engine and WebAssembly
JavaScript Engine and WebAssemblyJavaScript Engine and WebAssembly
JavaScript Engine and WebAssemblyChanghwan Yi
 
codecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introducecodecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introduceCaesar Chi
 
Lessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODMLessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODMValeri Karpov
 
TypeScript Jump Start
TypeScript Jump StartTypeScript Jump Start
TypeScript Jump StartMostafa
 
Introduction to node.js
Introduction to  node.jsIntroduction to  node.js
Introduction to node.jsMd. Sohel Rana
 

What's hot (20)

Softshake 2013 - Let's take this offline
Softshake 2013 - Let's take this offlineSoftshake 2013 - Let's take this offline
Softshake 2013 - Let's take this offline
 
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
 
Grunt and Bower
Grunt and BowerGrunt and Bower
Grunt and Bower
 
Sfd hanoi2012 nguyen ha duong yang node.js-intro
Sfd hanoi2012 nguyen ha duong yang   node.js-introSfd hanoi2012 nguyen ha duong yang   node.js-intro
Sfd hanoi2012 nguyen ha duong yang node.js-intro
 
Pre-render Blazor WebAssembly on static web hosting at publishing time
Pre-render Blazor WebAssembly on static web hosting at publishing timePre-render Blazor WebAssembly on static web hosting at publishing time
Pre-render Blazor WebAssembly on static web hosting at publishing time
 
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
 
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319
 
Javascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsJavascript Apps at Build Artifacts
Javascript Apps at Build Artifacts
 
Cloud App Develop
Cloud App DevelopCloud App Develop
Cloud App Develop
 
Go & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and ErrorsGo & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and Errors
 
npm + browserify
npm + browserifynpm + browserify
npm + browserify
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS Limitations
 
Using Javascript in today's world
Using Javascript in today's worldUsing Javascript in today's world
Using Javascript in today's world
 
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
Node.js 기반 정적 페이지 블로그 엔진, 하루프레스
 
JavaScript Engine and WebAssembly
JavaScript Engine and WebAssemblyJavaScript Engine and WebAssembly
JavaScript Engine and WebAssembly
 
codecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introducecodecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introduce
 
Lessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODMLessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODM
 
TypeScript Jump Start
TypeScript Jump StartTypeScript Jump Start
TypeScript Jump Start
 
Introduction to node.js
Introduction to  node.jsIntroduction to  node.js
Introduction to node.js
 

Viewers also liked

The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습Hyun-woo Park
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYHyun-woo Park
 
넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모Hyun-woo Park
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYHyun-woo Park
 
Using CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYUsing CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYHyun-woo Park
 
The importance of english in engineering
The importance of english in engineeringThe importance of english in engineering
The importance of english in engineeringHenry Delgado
 
채용도 서비스다. 2013 스마트스터디 채용 과정에 대한 지원자 지표 분석.
채용도 서비스다. 2013 스마트스터디 채용 과정에 대한 지원자 지표 분석.채용도 서비스다. 2013 스마트스터디 채용 과정에 대한 지원자 지표 분석.
채용도 서비스다. 2013 스마트스터디 채용 과정에 대한 지원자 지표 분석.민석 김
 
English for engineering
English for engineeringEnglish for engineering
English for engineeringQoimah Adielah
 
English in technical engineering
English in technical engineeringEnglish in technical engineering
English in technical engineeringRaquel Pasciullo
 
그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라Hyun-woo Park
 
A Great Book - Technical English Vocabulary and Grammar
A Great Book - Technical English Vocabulary and GrammarA Great Book - Technical English Vocabulary and Grammar
A Great Book - Technical English Vocabulary and GrammarHai Dang Nguyen
 

Viewers also liked (11)

The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
 
넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDY
 
Using CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYUsing CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDY
 
The importance of english in engineering
The importance of english in engineeringThe importance of english in engineering
The importance of english in engineering
 
채용도 서비스다. 2013 스마트스터디 채용 과정에 대한 지원자 지표 분석.
채용도 서비스다. 2013 스마트스터디 채용 과정에 대한 지원자 지표 분석.채용도 서비스다. 2013 스마트스터디 채용 과정에 대한 지원자 지표 분석.
채용도 서비스다. 2013 스마트스터디 채용 과정에 대한 지원자 지표 분석.
 
English for engineering
English for engineeringEnglish for engineering
English for engineering
 
English in technical engineering
English in technical engineeringEnglish in technical engineering
English in technical engineering
 
그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라
 
A Great Book - Technical English Vocabulary and Grammar
A Great Book - Technical English Vocabulary and GrammarA Great Book - Technical English Vocabulary and Grammar
A Great Book - Technical English Vocabulary and Grammar
 

Similar to WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)

Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShiftSteven Pousty
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...LetsConnect
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaChristian Heilmann
 
Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier Eeckhoutte
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...Heiko Voigt
 
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014Gil Irizarry
 
How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)SATOSHI TAGOMORI
 
DevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdfDevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdfVishwas N
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitWittawas Wisarnkanchana
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source ContributionsNeev Technologies
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoSzczepan Faber
 
Building Pistachio with Sencha Touch 2 (introductory)
Building Pistachio with Sencha Touch 2 (introductory)Building Pistachio with Sencha Touch 2 (introductory)
Building Pistachio with Sencha Touch 2 (introductory)Luis Merino
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, UkraineJustin Ison
 
Intro to OpenShift, MongoDB Atlas & Live Demo
Intro to OpenShift, MongoDB Atlas & Live DemoIntro to OpenShift, MongoDB Atlas & Live Demo
Intro to OpenShift, MongoDB Atlas & Live DemoMongoDB
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesYshay Yaacobi
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA NITIN GUPTA
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumit Kataria
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEVishal Mittal
 

Similar to WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English) (20)

Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShift
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasia
 
Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2Olivier meetup-boston-2013-jan-21-v2
Olivier meetup-boston-2013-jan-21-v2
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
 
How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)
 
DevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdfDevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdf
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkit
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
 
Building Pistachio with Sencha Touch 2 (introductory)
Building Pistachio with Sencha Touch 2 (introductory)Building Pistachio with Sencha Touch 2 (introductory)
Building Pistachio with Sencha Touch 2 (introductory)
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, Ukraine
 
Intro to OpenShift, MongoDB Atlas & Live Demo
Intro to OpenShift, MongoDB Atlas & Live DemoIntro to OpenShift, MongoDB Atlas & Live Demo
Intro to OpenShift, MongoDB Atlas & Live Demo
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
 
SamSegalResume
SamSegalResumeSamSegalResume
SamSegalResume
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststem
 
OS Accelerate London - 09/16/15
OS Accelerate London - 09/16/15OS Accelerate London - 09/16/15
OS Accelerate London - 09/16/15
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
 

More from Hyun-woo Park

2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분Hyun-woo Park
 
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the BasicHyun-woo Park
 
2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝Hyun-woo Park
 
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기Hyun-woo Park
 
파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 Coveralls파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 CoverallsHyun-woo Park
 
WE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDYWE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDYHyun-woo Park
 
Django in Production
Django in ProductionDjango in Production
Django in ProductionHyun-woo Park
 
파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기Hyun-woo Park
 
Dive into OpenSource
Dive into OpenSourceDive into OpenSource
Dive into OpenSourceHyun-woo Park
 
그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말Hyun-woo Park
 
스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기Hyun-woo Park
 
SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08Hyun-woo Park
 

More from Hyun-woo Park (12)

2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분
 
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
 
2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝
 
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
 
파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 Coveralls파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 Coveralls
 
WE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDYWE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDY
 
Django in Production
Django in ProductionDjango in Production
Django in Production
 
파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기
 
Dive into OpenSource
Dive into OpenSourceDive into OpenSource
Dive into OpenSource
 
그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말
 
스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기
 
SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08
 

Recently uploaded

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)

  • 1. WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY Park Hyunwoo / @lqez 2013-05
  • 2.
  • 3. • We started at Jun, 2010. • We do engineering for products and services, not for playing with breeding-edge technologies. • 26 freaks in this ship. And 14 of them are hackers. (May 2013) We are “Service Freak”
  • 4. This slide describes: What we do? and Why we do it? and How we did it and will do it?
  • 6. WHAT What we’ve created. } • Mobile Apps • Log Crawler • Log Analyzer • Push Solution • Web-based tools • Open Source
  • 8. WHY •Mobile Apps • Log Crawler • Log Analyzer • Push Solution • Web-based tools • Open Source Mobile application markets are fair.Anybody can upload their apps and deploy globally. : We’ve developed and deployed 300+ apps in mobile era.
  • 9. WHY • Mobile Apps •Log Crawler • Log Analyzer • Push Solution • Web-based tools • Open Source We knew that the success of business is up to keep eyes on the behavior of users. : We adapt technologies and experiences what we learned from 10y+ online game services.
  • 10. WHY • Mobile Apps • Log Crawler •Log Analyzer • Push Solution • Web-based tools • Open Source a Bunch of logs has no meaning. We have to examine them in various ways via visualization. : We polish logs into Data, and again to Information, at last, we’ll get Insight from it.
  • 11. WHY • Mobile Apps • Log Crawler • Log Analyzer •Push Solution • Web-based tools • Open Source In mobile market, push message works as same as email. Even more powerful. : We build redundant storing & massive reservation system.
  • 12. WHY • Mobile Apps • Log Crawler • Log Analyzer • Push Solution •Web-based tools • Open Source Web is the best platform to serve tools without a headache of updating, and runs on every machines. : We stand on HTML5 with high-productivity framework like Django.
  • 13. WHY • Mobile Apps • Log Crawler • Log Analyzer • Push Solution • Web-based tools •Open Source Open source is not only codes, but also culture. : We uses open sources and open our codes to the world.
  • 19. HOW/ Mobile apps OpenGLNativeWebThere are no boundary or no fixed rules. We just choose the best fit architecture.
  • 20. HOW/ Mobile apps iOS / Android Native API OpenGL SMARTSTUDY Library Cocos2d-x C/C++ NDKPython HTML Javascript CSS Mobile Apps and Services
  • 21. HOW/ Mobile apps Developer Z iOS Android Developer M iOS Android Web Developer B Android Windows Developer H iOS Android Bada
  • 22. HOW/ Mobile apps Developer Z iOS Android Developer M iOS Android Web Developer B Android Windows Developer H iOS Android Bada We develop on various platforms, so Every developer are needed to work on two or more platforms.
  • 23. HOW/ Mobile apps • We’ve focused on each app and content, not on making platform. • Release apps on various mobile platforms even on Windows Store and Smart TV. • Each developer has their own ‘Main role’ but also ‘Sub role’ to expand experiences. GOOD
  • 24. HOW/ Mobile apps • We have own platform-independent data format and service models, but do not have own rich middleware or library. • Too many apps to be serviced. • Pressure of multi-platform experience. BAD
  • 25. HOW/ Mobile apps • We have lots of codebase on each apps. • If we can refine them into loose-tied libraries, it’ll be good to prevent making a ‘Wheels’ again. • Document it and Share it. TO-BE
  • 26. HOW/ Log Crawler & Analyzer
  • 27. HOW/ Log Crawler & Analyzer • Traditional RDB + NoSQL solution • We uses MySQL InnoDB / MyISAM with MongoDB to store & analysis logs.
  • 28. HOW/ Log Crawler & Analyzer 230logs/sec 20,000,000logs/day about 10GB/day
  • 29. HOW/ Log Crawler & Analyzer over 3 billion logs till now.
  • 30.
  • 33. PV / UV DAU / MAU PU / ARPU NRU / RR ReplicaSet
  • 34. See also: Redis, MongoDB and MySQL Crawl and Analysis log in Mobile Application Service Link : http://www.slideshare.net/lqez/redis-mongodb-mysql Video : http://youtu.be/NYtRr2URAkI
  • 35. HOW/ Log Crawler & Analyzer GOOD • Fault tolerance log crawler. • Client stores logs in own local storage when it failed to send logs by any reason. (i.e. server problem, network unreachable) • Redis can hold logs while MongoDB have problems while upgrading or replicating.
  • 36. HOW/ Log Crawler & Analyzer GOOD • MongoDB can hold various types of log without creating tables for each log type. • And good bye long ‘ALTER TABLE’. • MySQL is very familiar for us.
  • 37. HOW/ Log Crawler & Analyzer BAD • Storing entire logs in only one collection is not a good idea. • Lock strangle us every each second. • Copying logs from MongoDB to MySQL needs logs of time.
  • 38. HOW/ Log Crawler & Analyzer • Divide logs into small pieces in MongoDB. • Use aggregation framework added in 2.1. • Use shorter key name. • Add more memory and SSD. • There are (still) many global locks. Use more physical instances for each purpose. TO-BE
  • 40. HOW/ Push Solution • Support APNS, GCM and C2DM. • Collect ~200 tokens per every second. • Storing 20M+ tokens in MongoDB. • Adapt a similar architecture of the Log crawling system.
  • 41. HOW/ Push Solution • Stores tokens with version of app, language, timezone and other meaningful device information without personal’s. • With reservation system, we can send messages to the targeted users. • We sent ~30,000,000 msgs per month. • via Urban Airship = $3,000 per month.
  • 42. HOW/ Push Solution TO-BE • Current token database is isolated from other application database. • To make better user experience, combination of two databases is needed. • Timezone awareness.
  • 44. HOW/ Web-based tools • Web - actually, web browser is a good platform to provide rich toolkits rapidly. • We use Python and PHP as backend and mainly use Django and Flask. • And also use jQuery, Bootstrap and Google Chart library for frontend. (as like as you)
  • 45. See also: Creating a comic service Link : http://www.slideshare.net/lqez/ss-14820081 Video : http://youtu.be/-TEyIAqAB_E
  • 46. See also: Do not use Django as like as SMARTSTUDY Link : http://www.slideshare.net/lqez/do-not-use-django- as-like-as-smartstudy
  • 47. HOW/ Web-based tools TO-BE • Currently, there is no rule for Authentication and Authorization. (some uses just LDAP) • So,We’re building standard A-A library via OAuth2.
  • 49. HOW/ Open Source • Open source is not only code or license. • It is a culture for hackers. • We’re using open source projects for our service widely. • We also recommend to make in-house library or middleware as open source.
  • 50. HOW/ Open Source • Can’t enumerate all in here, • Linux, OpenLDAP, Redmine, Cacti, Nginx, MySQL, MongoDB, watch, ImageMagicK, ffmpeg, libx264, OpenSSH, awk, sed, find, Python, wget, Celery, PHP, tar, gzip, curl, zlib, iptables, Django, Flask,Werkzeug, vim, fabric, eventlet, Sentry, django-debug-toolbar, Bootstrap, jQuery, Postgres, Redis, uWSGI...
  • 51. HOW/ Open Source • And open our sources, even they’re tiny. • 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. HOW/ Open Source • And we gave back to Open source by another way - Open a hands-on session. • Django In Action,Aug 2012 at SMARTSTUDY Seoul HQ. • 40 developers learned from the installation of Python to Django in 4H. • http://blog.naver.com/ez_/140166283139
  • 53. HOW/ Open Source TO-BE • Open more codes to community. • Open more sessions, especially hands-on sessions. It’s very rare in Korea. • Be more sponsors for developer conferences. • Contribute to open source projects.
  • 54. AND • Using AWS CloudFront with S3 • http://www.slideshare.net/lqez/using-cloud-front-with-s3-at-smartstudy • Post-mortem of Making a comic service • http://blog.naver.com/ez_/140157300770 (in Korean) • Using Sentry for Django applications • http://blog.naver.com/ez_/140177157684 (in Korean) • Test environment for mobile devices • http://www.slideshare.net/lqez/ss-20901287 (in Korean)
  • 56. Good Product not great or elegance platforms.
  • 58. So,
  • 61. We, Human do make it works. not code or turing machines.
  • 62. WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY Park Hyunwoo / @lqez 2013-05 AND WE’RE STILL WALKING ON !