SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
WHAT / WHY / HOW
WE’RE ENGINEERING AT SMARTSTUDY
박현우 / @lqez
2013-05
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
•2010년 6월에 시작했습니다.
•제품과 서비스를 위해서 기술을 파고들며,
최신 기술 자체에 빠져서 허우적거리지 않습니다.
•2013년 5월, 26명이 이 배에 타고 있고,
그 중 14명이 코드를 읽고 쓰고 있습니다.
우리는
“서비스에 미쳤어요”
스마트스터디는
무엇을 하는지, 그걸 왜 하는지,
그리고 어떻게 하고 있는지.
그래서, 무엇을
무엇을
이런 걸 만들었습니다.
}
•모바일 앱
•로그 수집기
•로그 분석기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
그런데 왜
왜
•모바일 앱
•로그 수집기
•로그 분석기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
모바일 앱의 시장은 공평합니다.
누구나 앱을 만들어 글로벌 시장에
내놓아 경쟁할 수 있습니다.
:
우리는 300개 이상의 앱을 만들어
글로벌 시장에 출시했습니다.
서비스의 성공은 사용자의 행동을
유심히 보고, 얘기를 귀기울여 듣는
데 있다고 알고 있습니다.
:
다중 접속 온라인 게임을 10년 이
상 서비스 하며 얻은 경험을 살려
모바일에서도 실천하고 있습니다.
•모바일 앱
•로그 수집기
•로그 분석기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
로그는 그저 로그일 뿐입니다.
이를 가공해, 시각적인 데이터로
만들어야 의미가 있습니다.
:
우리는 로그를 다듬어 데이터로
만들고, 다시 정보로 가공한 후에
이를 통해 통찰력을 얻습니다.
•모바일 앱
•로그 수집기
•로그 분석기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
모바일 서비스의 푸시 메세지는
과거 이메일과 같습니다.
심지어 더 강력합니다.
:
우리는 자체적인 푸시 토큰 수집
데이터베이스와 대용량 메세지
발송 시스템을 만들었습니다.
•모바일 앱
•로그 수집기
•로그 분석기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
웹은 모든 플랫폼에서 동작하는
가장 완전한 기반이 됩니다.
골치아픈 업데이트도 필요 없이요.
:
HTML5 위에서, Django와 같은
높은 생산성을 자랑하는 웹 개발
도구를 이용하고 있습니다.
•모바일 앱
•로그 수집기
•로그 분석기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
오픈 소스는 단순한 코드의 공유를
넘어서는, 개발자의 문화입니다.
:
우리는 오픈소스를 널리 사용하고
우리의 코드도 공유하고 있습니다.
•모바일 앱
•로그 수집기
•로그 분석기
•푸시 솔루션
•웹 기반 도구
•오픈 소스
왜
그러면 어떻게
어떻게/ 모바일 앱
어떻게/ 모바일 앱
OpenGLNativeWeb
어떻게/ 모바일 앱
OpenGLNativeWeb
OpenGLNativeWeb
어떻게/ 모바일 앱
어떻게/ 모바일 앱
OpenGLNativeWeb개발에는 경계나 정해진 룰이 없습니다.
최적의 아키텍처를 골라 사용합니다.
어떻게/ 모바일 앱
iOS / Android
Native API
OpenGL
SMARTSTUDY 라이브러리
Cocos2d-x
C/C++
NDKPython
HTML
Javascript
CSS
모바일 앱 & 서비스
어떻게/ 모바일 앱
개발자 Z
iOS Android
개발자 M
iOS Android Web
개발자 B
Android Windows
개발자 H
iOS Android Bada
어떻게/ 모바일 앱
개발자 Z
iOS Android
개발자 M
iOS Android Web
개발자 B
Android Windows
개발자 H
iOS Android Bada
다양한 플랫폼에서 개발하고 있기 때문에,
모든 개발자는 둘 이상의 플랫폼을 담당합니다.
어떻게/ 모바일 앱
•플랫폼을 구축하려하지 않고, 각각의 앱과
콘텐츠에 집중했던 것.
•윈도우 스토어나 스마트 TV 등의 비주류 플
랫폼에도 진출하여 좋은 관계를 맺은 것.
•모든 개발자가 ‘주 플랫폼’ 외에 ‘부 플랫
폼’을 익혀 대응하고 있는 것.
잘한 점
어떻게/ 모바일 앱
•플랫폼 독립적인 엔진, 라이브러리나 미들웨
어를 충실히 가지지 못한 것.
•너무 많은 앱을 서비스하고 있는 것.
•개발자에게 여러 플랫폼으로 강요하고 있는
것은 아닌지?
못한 점
어떻게/ 모바일 앱
•각각의 앱과 서비스에 코드 베이스는 많이
가지고 있으므로,
•잘 정리해서 모두가 각자의 바퀴를 만들지
않고 쓸 수 있도록 하기.
•문서화, 문서화, 문서화, 그리고 문서화...
그리고 널리 공유하기.
앞으로
어떻게/ 로그 수집과 분석
어떻게/ 로그 수집과 분석
•전통적인 RDB + NoSQL 의 결합.
•MySQL InnoDB / MyISAM 와 함께
MongoDB 를 이용해 로그를 저장하고 분석
하고 있습니다.
어떻게/ 로그 수집과 분석
초당 230건
하루에 약 20,000,000건
하루에 약10GB정도
어떻게/ 로그 수집과 분석
이제까지
30억건의 로그를 수집하고 있습니다
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
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
참고
Redis, MongoDB and MySQL
모바일 애플리케이션 서비스에서의 로그 수집과 분석
링크 : http://www.slideshare.net/lqez/redis-mongodb-mysql
영상 : http://youtu.be/NYtRr2URAkI
어떻게/ 로그 수집과 분석
•각각의 시스템 장애를 허용하도록 한 것.
•서버의 장애나 네트워크 문제로 클라이언트
가 로그를 보내는데 실패해도, 로컬 저장소
에 저장해 나중에 다시 보내는 것.
•MongoDB 점검 중에도 Redis에서 로그를 보
관하고 있다, 복원된 후에 쓰도록 한 것.
잘한 점
어떻게/ 로그 수집과 분석
•다양한 형태의 로그를 테이블 생성 없이
MongoDB를 통해 손쉽게 쌓았던 것.
•장시간의 ‘ALTER TABLE’ 등으로 고민하는
일이 없어졌던 것.
•MySQL로 이전한 후에 SQL을 통한 분석 작
업도 익숙했던 점.
잘한 점
어떻게/ 로그 수집과 분석
•하나의 콜렉션(테이블)에 모든 로그를 담았
던 것.
•MongoDB의 Lock 과 관련된 문제들.
•MongoDB 로부터 분석을 위해 MySQL 로
옮기는데 너무 많은 시간과 비용이 발생.
못한 점
어떻게/ 로그 수집과 분석
•여러 콜렉션으로 잘게 나눠서 넣을 것.
•2.1 버전에 추가된 통계 프레임워크 사용하기.
•짧은 키(key) 이름을 사용할 것.
•메모리와 SSD 장비를 추가하는 일.
•여전히 Lock은 문제가 되므로, 용도에 따라
물리적으로 장비를 나누기.
앞으로
어떻게/ 푸시 솔루션
어떻게/ 푸시 솔루션
•APNS, GCM, C2DM 을 지원합니다.
•초당 200 개의 토큰을 수집.
•2천만개의 토큰을 MongoDB에 보관.
•로그 수집 시스템과 유사한 형태입니다.
어떻게/ 푸시 솔루션
•개인 정보를 제외한 기기의 언어 설정, 시간
대, 앱 버전 정보 등을 같이 수집합니다.
•예약 시스템을 통해, 특정 대상에게 푸시 메
세지를 전송하고 있습니다.
•한 달에 약 3천만 건 정도를 발송합니다.
•Urban Airship 등의 외부 푸시 솔루션의 약
$3,000 에 상응합니다.
어떻게/ 푸시 솔루션
•다른 서비스 데이터베이스들과 분리되어 독립
적으로 동작하고 있습니다.
•다른 서비스와 유기적으로 결합되어, 더 밀접
한 형태의 푸시 메세지 전송을 하는 것이 필요
합니다.
•기기의 타임존에 따른 푸시 예약 발송 기능.
앞으로
어떻게/ 웹 기반 도구
어떻게/ 웹 기반 도구
•웹은 복잡한 도구를 빠르게 만들어 공급하
는데 최선의 플랫폼입니다.
•Python과 PHP를 사용하고 있으며, 백엔
드 프레임워크로 Django와 Flask를 주로 사
용합니다.
•그리고 - 뻔한 얘기지만 - 프론트엔드에서
jQuery, Bootstrap, Google Chart 등을 사용
하고 있습니다.
참고
만화 서비스 제작 후기
“넝쿨째 굴러온 김성모”
링크 : http://www.slideshare.net/lqez/ss-14820081
영상 : http://youtu.be/-TEyIAqAB_E
참고
Do not use Django as like as
SMARTSTUDY
링크 : http://www.slideshare.net/lqez/do-not-use-django-
as-like-as-smartstudy
어떻게/ 웹 기반 도구
•다양한 도구들에서 공통적으로 사용하는
Authentication 과 Authorization 이
정의되어 있지 않습니다.
•위에 대응하여 OAuth2 를 이용한 라이브러
리를 제작하고 있습니다.
앞으로
어떻게/ 오픈 소스
어떻게/ 오픈 소스
•오픈 소스는 단순한 코드 공유나 라이센스
문제가 아닙니다.
•오픈 소스는 해커들의 문화입니다.
•우리는 오픈 소스를 널리 사용하고 있을 뿐
아니라,
•내부 라이브러리나 도구들을 만들 때에도
오픈 소스로 진행하는 것을 권장합니다.
어떻게/ 오픈 소스
•여기에 다 나열하기도 어렵습니다.
• 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...
어떻게/ 오픈 소스
•미약하지만, 오픈 소스에 참여하고 있습니다.
• 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
어떻게/ 오픈 소스
•코드 외에, 실습 세션을 열어 오픈 소스 커뮤
니티에 보답하고 있습니다.
•2012 년 8월, 외부 개발자들을 대상으로
‘Django In Action’을 진행했습니다.
•40 여명의 개발자들이 이틀 동안, 4시간
에 걸쳐, Python 설치부터 시작하여
Django 를 익히는 시간을 가졌습니다.
• http://blog.naver.com/ez_/140166283139
어떻게/ 오픈 소스
•더 많은 코드를 오픈 소스화 합니다.
•더 많은 실습 세션을 진행합니다.
•다양한 개발자 컨퍼런스의 스폰서가 됩니다.
•사용하고 있는 우수한 오픈 소스 프로젝트에
공헌합니다.
앞으로
그리고,
•아마존 웹 서비스 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)
지금까지는
단지 시작일 뿐
대단하거나 우아한 플랫폼이 아니라
좋은 제품을 만듭니다
콘텐츠는 플랫폼을 이기며,
재능을 지배하는 것은 경험입니다.
그래서,
우리의
가장
큰
자산은
당신과 나,
We, Human do
make it works.
코드 조각이나 튜링 머신이 하는게 아닙니다.
WHAT / WHY / HOW
WE’RE ENGINEERING AT SMARTSTUDY아직도 할 일이,
잘 하고 싶은 일이
정말 많습니다!
박현우 / @lqez
2013-05

Mais conteúdo relacionado

Mais procurados

이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
2020년 6월 13일 개발 이야기 정리
2020년 6월 13일 개발 이야기 정리2020년 6월 13일 개발 이야기 정리
2020년 6월 13일 개발 이야기 정리Jay Park
 
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjsJae Sung Park
 
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현nexusz99
 
NRISE 개발스택
NRISE 개발스택NRISE 개발스택
NRISE 개발스택Moon Soo Kim
 
2014.04.24.nrise 개발환경
2014.04.24.nrise 개발환경2014.04.24.nrise 개발환경
2014.04.24.nrise 개발환경Moon Soo Kim
 
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)Jeongkyu Shin
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01SangHun Lee
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정Kenu, GwangNam Heo
 
2020년 4월 18일 개발 이야기 정리
2020년 4월 18일 개발 이야기 정리2020년 4월 18일 개발 이야기 정리
2020년 4월 18일 개발 이야기 정리Jay Park
 
2020년 2월 1일 개발 이야기 정리
2020년 2월 1일 개발 이야기 정리2020년 2월 1일 개발 이야기 정리
2020년 2월 1일 개발 이야기 정리Jay Park
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)JinKwon Lee
 
웹 IDE 비교
웹 IDE 비교웹 IDE 비교
웹 IDE 비교Junyoung Lee
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP FrameworkInseok Lee
 
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...Dennis Kim
 
이클립스 플랫폼
이클립스 플랫폼이클립스 플랫폼
이클립스 플랫폼Kenu, GwangNam Heo
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문종훈 박
 

Mais procurados (20)

이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
2020년 6월 13일 개발 이야기 정리
2020년 6월 13일 개발 이야기 정리2020년 6월 13일 개발 이야기 정리
2020년 6월 13일 개발 이야기 정리
 
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
[DEVIEW 2016] 네이버의 모던 웹 라이브러리 - egjs
 
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
파일기반 동기식 메세지큐를 이용한 간단한 레스토랑 서비스 시뮬레이션 구현
 
NRISE 개발스택
NRISE 개발스택NRISE 개발스택
NRISE 개발스택
 
2014.04.24.nrise 개발환경
2014.04.24.nrise 개발환경2014.04.24.nrise 개발환경
2014.04.24.nrise 개발환경
 
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정
 
2020년 4월 18일 개발 이야기 정리
2020년 4월 18일 개발 이야기 정리2020년 4월 18일 개발 이야기 정리
2020년 4월 18일 개발 이야기 정리
 
2020년 2월 1일 개발 이야기 정리
2020년 2월 1일 개발 이야기 정리2020년 2월 1일 개발 이야기 정리
2020년 2월 1일 개발 이야기 정리
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
 
웹 IDE 비교
웹 IDE 비교웹 IDE 비교
웹 IDE 비교
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
 
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
[발표] 멜팅팟 서버 사이드 레벨에서 자바 스크립트 엔진 Node.js의 가능...
 
이클립스 플랫폼
이클립스 플랫폼이클립스 플랫폼
이클립스 플랫폼
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
 

Semelhante a WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY

2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래Sung-tae Ryu
 
[D2CAMPUS] Tech meet up ; iOS 개발편
[D2CAMPUS] Tech meet up ; iOS 개발편[D2CAMPUS] Tech meet up ; iOS 개발편
[D2CAMPUS] Tech meet up ; iOS 개발편NAVER D2
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it goChris Ohk
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
 
The growth process of open source projects
The growth process of open source projectsThe growth process of open source projects
The growth process of open source projectsKevin Kim
 
The four myths of open source (2013)
The four myths of open source (2013)The four myths of open source (2013)
The four myths of open source (2013)Channy Yun
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Sung-tae Ryu
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화Terry Cho
 
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a jobDeo Kim
 
How to implement your dream 20150427
How to implement your dream 20150427How to implement your dream 20150427
How to implement your dream 20150427Will Kim
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기Jay Park
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈NAVER D2
 
어플리케이션 및 웹 개발
어플리케이션 및 웹 개발어플리케이션 및 웹 개발
어플리케이션 및 웹 개발Leonardo Taehwan Kim
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드Devgear
 
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyunjaeyunjeong1
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기Soojin Ro
 
31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"hyu_jaram
 

Semelhante a WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (20)

2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
 
[D2CAMPUS] Tech meet up ; iOS 개발편
[D2CAMPUS] Tech meet up ; iOS 개발편[D2CAMPUS] Tech meet up ; iOS 개발편
[D2CAMPUS] Tech meet up ; iOS 개발편
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
The growth process of open source projects
The growth process of open source projectsThe growth process of open source projects
The growth process of open source projects
 
The four myths of open source (2013)
The four myths of open source (2013)The four myths of open source (2013)
The four myths of open source (2013)
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
 
Goorm소개
Goorm소개Goorm소개
Goorm소개
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
 
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a job
 
How to implement your dream 20150427
How to implement your dream 20150427How to implement your dream 20150427
How to implement your dream 20150427
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
조재완
조재완조재완
조재완
 
어플리케이션 및 웹 개발
어플리케이션 및 웹 개발어플리케이션 및 웹 개발
어플리케이션 및 웹 개발
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
 
Android Developer JeongJaeyun
Android Developer JeongJaeyunAndroid Developer JeongJaeyun
Android Developer JeongJaeyun
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
 
31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"31기 고지웅 "구글오픈소스"
31기 고지웅 "구글오픈소스"
 

Mais de 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
 
그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라Hyun-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
 
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 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 (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)Hyun-woo Park
 
Using AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 at SMARTSTUDYUsing AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 at SMARTSTUDYHyun-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
 
넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모Hyun-woo Park
 
SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08Hyun-woo Park
 

Mais de Hyun-woo Park (19)

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
 
그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말
 
스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기
 
Using CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYUsing CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDY
 
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 (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
 
Using AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 at SMARTSTUDYUsing AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 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
 
넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모
 
SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08
 

WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY

  • 1. WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY 박현우 / @lqez 2013-05
  • 3. •2010년 6월에 시작했습니다. •제품과 서비스를 위해서 기술을 파고들며, 최신 기술 자체에 빠져서 허우적거리지 않습니다. •2013년 5월, 26명이 이 배에 타고 있고, 그 중 14명이 코드를 읽고 쓰고 있습니다. 우리는 “서비스에 미쳤어요”
  • 4. 스마트스터디는 무엇을 하는지, 그걸 왜 하는지, 그리고 어떻게 하고 있는지.
  • 6. 무엇을 이런 걸 만들었습니다. } •모바일 앱 •로그 수집기 •로그 분석기 •푸시 솔루션 •웹 기반 도구 •오픈 소스
  • 8. 왜 •모바일 앱 •로그 수집기 •로그 분석기 •푸시 솔루션 •웹 기반 도구 •오픈 소스 모바일 앱의 시장은 공평합니다. 누구나 앱을 만들어 글로벌 시장에 내놓아 경쟁할 수 있습니다. : 우리는 300개 이상의 앱을 만들어 글로벌 시장에 출시했습니다.
  • 9. 서비스의 성공은 사용자의 행동을 유심히 보고, 얘기를 귀기울여 듣는 데 있다고 알고 있습니다. : 다중 접속 온라인 게임을 10년 이 상 서비스 하며 얻은 경험을 살려 모바일에서도 실천하고 있습니다. •모바일 앱 •로그 수집기 •로그 분석기 •푸시 솔루션 •웹 기반 도구 •오픈 소스 왜
  • 10. 로그는 그저 로그일 뿐입니다. 이를 가공해, 시각적인 데이터로 만들어야 의미가 있습니다. : 우리는 로그를 다듬어 데이터로 만들고, 다시 정보로 가공한 후에 이를 통해 통찰력을 얻습니다. •모바일 앱 •로그 수집기 •로그 분석기 •푸시 솔루션 •웹 기반 도구 •오픈 소스 왜
  • 11. 모바일 서비스의 푸시 메세지는 과거 이메일과 같습니다. 심지어 더 강력합니다. : 우리는 자체적인 푸시 토큰 수집 데이터베이스와 대용량 메세지 발송 시스템을 만들었습니다. •모바일 앱 •로그 수집기 •로그 분석기 •푸시 솔루션 •웹 기반 도구 •오픈 소스 왜
  • 12. 웹은 모든 플랫폼에서 동작하는 가장 완전한 기반이 됩니다. 골치아픈 업데이트도 필요 없이요. : HTML5 위에서, Django와 같은 높은 생산성을 자랑하는 웹 개발 도구를 이용하고 있습니다. •모바일 앱 •로그 수집기 •로그 분석기 •푸시 솔루션 •웹 기반 도구 •오픈 소스 왜
  • 13. 오픈 소스는 단순한 코드의 공유를 넘어서는, 개발자의 문화입니다. : 우리는 오픈소스를 널리 사용하고 우리의 코드도 공유하고 있습니다. •모바일 앱 •로그 수집기 •로그 분석기 •푸시 솔루션 •웹 기반 도구 •오픈 소스 왜
  • 19. 어떻게/ 모바일 앱 OpenGLNativeWeb개발에는 경계나 정해진 룰이 없습니다. 최적의 아키텍처를 골라 사용합니다.
  • 20. 어떻게/ 모바일 앱 iOS / Android Native API OpenGL SMARTSTUDY 라이브러리 Cocos2d-x C/C++ NDKPython HTML Javascript CSS 모바일 앱 & 서비스
  • 21. 어떻게/ 모바일 앱 개발자 Z iOS Android 개발자 M iOS Android Web 개발자 B Android Windows 개발자 H iOS Android Bada
  • 22. 어떻게/ 모바일 앱 개발자 Z iOS Android 개발자 M iOS Android Web 개발자 B Android Windows 개발자 H iOS Android Bada 다양한 플랫폼에서 개발하고 있기 때문에, 모든 개발자는 둘 이상의 플랫폼을 담당합니다.
  • 23. 어떻게/ 모바일 앱 •플랫폼을 구축하려하지 않고, 각각의 앱과 콘텐츠에 집중했던 것. •윈도우 스토어나 스마트 TV 등의 비주류 플 랫폼에도 진출하여 좋은 관계를 맺은 것. •모든 개발자가 ‘주 플랫폼’ 외에 ‘부 플랫 폼’을 익혀 대응하고 있는 것. 잘한 점
  • 24. 어떻게/ 모바일 앱 •플랫폼 독립적인 엔진, 라이브러리나 미들웨 어를 충실히 가지지 못한 것. •너무 많은 앱을 서비스하고 있는 것. •개발자에게 여러 플랫폼으로 강요하고 있는 것은 아닌지? 못한 점
  • 25. 어떻게/ 모바일 앱 •각각의 앱과 서비스에 코드 베이스는 많이 가지고 있으므로, •잘 정리해서 모두가 각자의 바퀴를 만들지 않고 쓸 수 있도록 하기. •문서화, 문서화, 문서화, 그리고 문서화... 그리고 널리 공유하기. 앞으로
  • 27. 어떻게/ 로그 수집과 분석 •전통적인 RDB + NoSQL 의 결합. •MySQL InnoDB / MyISAM 와 함께 MongoDB 를 이용해 로그를 저장하고 분석 하고 있습니다.
  • 28. 어떻게/ 로그 수집과 분석 초당 230건 하루에 약 20,000,000건 하루에 약10GB정도
  • 29. 어떻게/ 로그 수집과 분석 이제까지 30억건의 로그를 수집하고 있습니다
  • 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 를 이용한 라이브러 리를 제작하고 있습니다. 앞으로
  • 49. 어떻게/ 오픈 소스 •오픈 소스는 단순한 코드 공유나 라이센스 문제가 아닙니다. •오픈 소스는 해커들의 문화입니다. •우리는 오픈 소스를 널리 사용하고 있을 뿐 아니라, •내부 라이브러리나 도구들을 만들 때에도 오픈 소스로 진행하는 것을 권장합니다.
  • 50. 어떻게/ 오픈 소스 •여기에 다 나열하기도 어렵습니다. • 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. 어떻게/ 오픈 소스 •미약하지만, 오픈 소스에 참여하고 있습니다. • 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)
  • 56. 대단하거나 우아한 플랫폼이 아니라 좋은 제품을 만듭니다
  • 57. 콘텐츠는 플랫폼을 이기며, 재능을 지배하는 것은 경험입니다.
  • 61. We, Human do make it works. 코드 조각이나 튜링 머신이 하는게 아닙니다.
  • 62. WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY아직도 할 일이, 잘 하고 싶은 일이 정말 많습니다! 박현우 / @lqez 2013-05