카카오가 걸어온 길 - mmlab.snu.ac.krmmlab.snu.ac.kr/courses/2014_fall_seminar/kakao.pdf ·...
TRANSCRIPT
이확영
카카오가����������� ������������������ 걸어온����������� ������������������ 길
프로그래밍을 좋아하는 평범한 40대 개발자
삼성SDS
입사교육 때 통신프로그램 개발. 유니텔사업부 발령.
프리챌
친구따라 강남. IT업계 최고 인재들과 동고동락.
NHN
엔토이와 한게임. 짧은 일본 파견 생활.
카카오
Buru, Wisia, Agit. 모바일 시대 개막. 카카오톡의 폭발적 성장.
8cruz
모바일 실시간 대전 캐주얼 게임
발표자����������� ������������������ 소개
카카오가����������� ������������������ 걸어온����������� ������������������ 길
첫����������� ������������������ 시작����������� ������������������ -����������� ������������������ IWILab
“배는 항구에 정박해 있을 때 가장 안전합니다
하지만 그것이 배의 존재 이유는 아닙니다.”
- 김범수
세����������� ������������������ 번의����������� ������������������ 실패����������� ������������������ -����������� ������������������ buru.com
세����������� ������������������ 번의����������� ������������������ 실패����������� ������������������ -����������� ������������������ wisia.com
세����������� ������������������ 번의����������� ������������������ 실패����������� ������������������ -����������� ������������������ 카카오����������� ������������������ 아지트
모바일로의����������� ������������������ 방향����������� ������������������ 전환
모바일로의����������� ������������������ 방향����������� ������������������ 전환����������� ������������������ (Cont’d)
- 2009.2 스마트폰 위젯 개발사 바이콘 인수
- 2009.4 아이폰앱 개발자 모임 IWILunch
- 2010.3 카카오톡, 카카오아지트와 카카오 수다 오픈
카카오톡,����������� ������������������ 날다
- 아이폰 앱스토어 전체 1위
- 성공 요인
타이밍, 타이밍, 타이밍!
무료 서비스
상대적으로 안정적인 서비스
그룹채팅 및 추천친구
0
21,429
42,857
64,286
85,714
107,143
128,571
150,000
2010.3 2010.9 2010.10 2010.12 2011.4 2011.7 2011.11 2012.6 2013.7 2014.8
(‘000)
150MM
카카오톡����������� ������������������ 가입자수
100MM
50MM
20MM10MM
5MM
30MM
2MM1MM
꿈은����������� ������������������ 이루어진다!
경쟁����������� ������������������ 상황
수익����������� ������������������ 모델
서비스����������� ������������������ 확장
글로벌����������� ������������������ 확장
- 2010.6 카카오톡 다국어 지원 (영어, 일본어)
- 2011.7 카카오 재팬 설립
- 2012.10 야후 재팬과 JV 설립
- 2013.3 해외 TV 광고 (인도네시아, 베트남)
- 2012.4 텐센트와 위메이드로부터 1,000억 펀딩
- 2012.7 카카오 게임하기 오픈과 국민게임의 탄생
두����������� ������������������ 번째����������� ������������������ 비상
0
900
1,800
2,700
3,600
4,500
2009 2010 2011 2012 2013 2014
(‘000)
카카오����������� ������������������ 매출����������� ������������������ (억)
0.03 0.3 18
458
2,108
4,295 (예상)
-200
200
600
1,000
1,400
1,800
2009 2010 2011 2012 2013 2014
(‘000)
카카오����������� ������������������ 순이익����������� ������������������ (억)
-17 -40-152
70
614
1,600 (예상)
다음카카오의����������� ������������������ 탄생
- 2014.5.26 다음과의 합병 발표
- 2014.10.1 합병 법인 탄생 예정
- 카카오의 성장 지속여부에 대한 우려가 많았음
- 카카오의 모바일 장악력과 다음의 컨텐츠가 결합하여 시너지를 낼 것으로 기대
- 개발자 확보의 어려움도 합병의 이유 중 하나
카카오����������� ������������������ 시스템의����������� ������������������ 진화
모바일����������� ������������������ 메신저의����������� ������������������ 특성
- 지인들의 전화번호가 폰에 저장되어 있다.
=> 소셜 그래프의 확장 용이. 친구 신청 불필요
- 상대방이 접속 중이 아닌 경우도 있다. (음영지역)
=> 메시지 저장
- 항상 휴대하고 있다.
=> 대용량 서비스
시작은����������� ������������������ 미약하나…⋯
…
Web
MySQL
NAS
L4 Switch
- Web Application Server 6EA
Ruby on Rails
Push System (APNS)
- Database Server 1EA
MySQL
- NAS
그����������� ������������������ 끝은����������� ������������������ 창대하리라
카카오톡 가입자수 1억 5천만명
카카오톡 일 메시지 전송건수 70억건
전체 서버 대수 1만대 이상
사용 중인 디스크 용량 10PB 이상
1.����������� ������������������ Push����������� ������������������ System����������� ������������������ 부하����������� ������������������ 증가
- Push Server 분리
- Message Queue를 사용한 비동기 방식
Web
MySQL
ActiveMQ Push Server
APNS
2.����������� ������������������ Android����������� ������������������ 폰����������� ������������������ 출시
- C2DM(현 GCM)의 문제점
사용량 제한, 신뢰성 부족
- Channel Server 도입
Channel Server
Web ActiveMQPush Server
3.����������� ������������������ 데이터베이스����������� ������������������ 시스템의����������� ������������������ 부하����������� ������������������ 증가
- Scale Up
32core 서버 도입 => MySQL 5.1 버전의 문제
- NoSQL DB 도입 검토
Cassandra 0.6
- MySQL Sharding
- memcached 및 redis 도입
4.����������� ������������������ 파일서버(NAS)의����������� ������������������ 부하����������� ������������������ 증가
- 일 수 천만개의 사진 전송 (전체 메시지수의 1% 정도)
- 여러 디렉토리로 분산
유닉스 파일 시스템의 구조적 문제로 인해 접근 시간이 기하급수적으로 증가
개별 삭제가 어려워 볼륨 전체를 삭제
- 대용량 파일 처리를 위한 파일 서버 구현 (HDFS와 유사)
여러 파일을 하나의 청크에 저장, Data Replication
- 이미지 캐시서버 도입 (Yahoo Traffic Server)
5.����������� ������������������ Ruby����������� ������������������ on����������� ������������������ Rails의����������� ������������������ 성능����������� ������������������ 문제
- Ruby의 성능 문제
생산성은 뛰어나나 스크립트 언어라는 한계점
VM의 Garbage Collection 성능 문제
- 3-tier Architecture
비지니스 로직을 수행하는 Java Application Server
Web (RoR) MySQLApplication Server (Java)
6.����������� ������������������ 메시징����������� ������������������ 서버����������� ������������������ 도입
- https 연결의 비효율성
- Channel Server는 단순히 push message 전달 역할
- 2011.10 겁나 빠른 황소 프로젝트
- 메시징 서버 도입을 통한 비약적인 성능 개선
앱 실행 시마다 연결을 맺는 구조 => 항상 서버와 연결
6.����������� ������������������ 메시징����������� ������������������ 서버����������� ������������������ 도입����������� ������������������ -����������� ������������������ Before
6.����������� ������������������ 메시징����������� ������������������ 서버����������� ������������������ 도입����������� ������������������ -����������� ������������������ After
7.����������� ������������������ 무정지����������� ������������������ 시스템의����������� ������������������ 구현
- Fault Tolerant System Design
Network Switch, Database, Application Server 등 전 시스템의 이중화
- MySQL Replication
Online DB Schema Migration이 가능해짐
마지막으로…⋯
인생은����������� ������������������ 마라톤일까?
감사합니다.