SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
LINE은 어쩌다어떻게 
글로벌 메신저 플랫폼이 
되었는가 
이석찬 / 개발4실 
LINE+
CONTENTS 
LINE? Global 
Platform 
LINE 
원정대 
Client 
Analytics Apps Global 
Network 
Big 
LINE 
Data Game 
Security
490+ Million Users
Q& 
A 6+ 
Global Branch 
6 
Engineering 
Base 
4 
Regional 
CS Center 
Global Platform 
8 
Global POP 
100+Gbps 
thru 
100+ Peering 
20,000 
Servers 
9 
Supported 
OS 
20 : 80 
Japan : World 
1B Downs 
71 Apps
Global Problem 2개 
어느 정도 잘 하고 있다고 생각했는데 
1. Ranked #1 in 60 countries 
2. 71/179 Family Apps, 17+ Language Support, 9 OS Supported and more 
3. Glocalization : emoji, stickers, UX, event 
Q&A 
But, 개발자를 괴롭히는 2가지 문제들 
1. 경쟁사보다 느려요, 메시지가 잘 가지 않아요 
2. 배터리를 (처)먹어요!
문제를 맞이하는 자세 
1. 무엇이 문제인데? 카더라, 나는 겪었거던, 재현은 어떻게 하는지 몰라, … 
2. 얼마나 빨라야 하는데? 그냥 경쟁 앱보다 빠르면 되잖아 
3. 왜 느린가? 알면 얘기하겠어 
4. 무엇을 해야 하나? 
5. 누가 이 문제를 고쳐야 하나? 
6. 왜 하필 지금? 그리고 나에게 묻죠? 
Q&A 
v 머피의 법칙: 왜 모든 문제는 boss의 폰에만 생기는가 ?
문제를 찾으러 - LINE 遠征隊 
2012년 12월 Spain, 사용자가 갑자기 늘었어요 (마치 지금의 Telegram처럼) 
2013년 2월 어느날, 출발 전날 Spain 비행기 티켓이 주어지고 
… 
2 ~ 6명의 Client/Server 개발자가 3 ~ 5일씩 
GPRS, Edge, 3G/3G+, 4G/LTE and Airplane WiFi 
호텔, 식당, 지하철, 버스, 관광지 
엘리베이터, 비행기, 물 속, 높은 곳
LINE 遠征隊 
Taiwan 
Indonesia 
India 
Spain
통신사의 흔한 문제들 
문제(아)들 
• Welcome to Hell : Transparent Cache/Proxy 
• 503, sessions, image, header … 
• Transparent images, 사라진 Content-Length, X-Capital-Header: 
• 차단 : IP, DNS blackhole, VoIP, DPI, 국가/종교의 이름으로 
• 3G는 몹쓸 것, http://helloworld.naver.com/helloworld/111111 
• High DNS resolving failures : 40-60% at peak time on some carriers 
• Philippines, Vietnam, Indonesia, India, China, Iran …
흔한 문제들에 대한 대응 
이런 경우에는 
• “피하세요” : HTTPS and SPDY on 443/tcp 
• “대비하세요” : No one magic protocol, 언제라도 변경이 가능해야 합니다 
• SPDY, HTTPS, HTTP protocols are supported on a single 443/tcp 
• “우리 친구해요”: 통신사와 장비회사 모두랑, peering, zero rating 
• carrier-contact@linecorp.com 
• 빠르게 : less round trips, less bytes, light UI 
• Async operations, pre-fetching, background sync 
• Warmup 3G(Ping) and TCP(pre-connection) 
• CDN, Cloud DNS on BGP Anycast 
• 그래도 안 되면, 빠른 척이라도 UX : 어차피 떨어져 있어 몰라요
진지했던 문제들 
• 출장을 가지 않고도 어떻게 문제를 찾고, 해결되었는지 알 수는 없을까 
• App Reviews 
• Client Analytics 
• New features 
• Zombie WiFi(Captive portal) 대응 
• More compact protocol 
• Typing ping 
• Troubleshooting, Improvements 
• SPDY protocol 
• In-flight WiFi 
• Battery 사용량 개선
App Reviews 
(반성) 2013.04, 싱가폴 사용자들이 앨범 뷰가 안 보인다고 리뷰 도배질을 1달 뒤에 알았다 
없어서, 만들었더니 알게 된 것 
• Android : Package File invalid – Google, Android 
• iOS X beta : 제발 beta 사용하지 마세요 
• major, minor bugs, crashes 
• 특정 국가, 통신사, Phone, OS, 특정일에만 발생하는 문제들 
• 새로운 기능/UX에 대한 피드백 : 정말 국가마다 달라요 
• Features comparison by Apps 
• 종교 전쟁 : WhatsApp vs LINE 
• 그 중의 백미(白眉), 새 버전 발매하는 날의 Tag Cloud “튕겨요” 
• Weekly Review by Language/Region
App Reviews
App Reviews
Client Analytics 
• User Behavior Analytics 할려다, Performance & problem trending 
• WiFi에 연결되어 충전 중일 때, App이 보낸 통계 데이타를 Big Data 분석 
• 이제는 모든 국가, 통신사, OS & App version 구분하여 tracking 가능 
• 하지만, 앱리뷰에 욕한 사람의 기록을 찾지 못해요 ㅠ.ㅠ (개인정보) 
• QMS, Gomez, Google Analytics 사용하지 않는 이유는?
Client Analytics 
• Time to send, receive Text / Audio / Video / Sticker / Themes 
• Size and speed to send, receive Multimedia files 
• Error types, error rates of each operations 
• Net connect and DNS resolving 
• Battery usage in bg/fg, # of run per day
Only SPDY 
• SPDY, SPDY, SPDY : 99.8% 이상의 사용자 접속 
• 가능하면 http(s) 사용하지 않도록 변경 
• 추가의 connection 만들지 않게 : +1 RTT, 배터리, TCP window size 
• SPDY의 server-side push 를 미래에 사용하기 위해서
More compact protocol 
대만 Chunghwa : 밤 시각의 메시지 송신에 8~9초 걸리는 문제 분석 
• In 200byte + Out 200byte 정도면, 3G FACH ~ DCH transition delay 발생함 
• 3G RRC transition delay를 피하도록, 가능한 FACH에 머물도록 
• 평균 응답 크기, P4 : P5 = 244.8 : 194.7 (19.5% 감소) 
• 1000byte 이하 응답 평균 = 149.4 : 117.9 (21.2% 감소) 
send “hello” 
Out (DATA) 
send “hello” 
In (ACK) 
get “hello” 
In (DATA) 
get “hello” 
out (ACK) 
WhatsApp 56 44 97 43 
LINE 83 100 (63) 244 166
In-flight WiFi 
네트웍 특성: 300~1000ms RTT, 1대가 download 5Mbps & upload 1Mbps 공유 
바꾸어야 하는 것들 
• WiFi에서 사용하던 HTTPS 대신에 모두 SPDY로 변경할 필요성 대두 
• 대신에 모든 커넥션을 암호화 해야 => “light but strong encryption” 새 숙제 
• NSpeedEm, Apple’s Network Link Conditioner를 이용한 simulation
Light but strong encryption 
SSL은 mobile connection에 맞지 않음: 1 RTT 위해 max 1초 희생해야 한다. 
대신에 
• Server Certificate를 앱 배포시 내장하고 
• 자체적인 RSA + AES 암호화 방법을 구현 
• Redis를 통한 session cache 구현 
장점 단점 
HTTPS (공인) 추가 구현이 매우 간단 
구현 방법 매우 안전(OS내장) 
인증서 size, 다운로드 
SSL handshaking 필요 
HTTPS (사설) 구현이 간단하다 
구현 방법 매우 안전(OS내장) 
SSL handshaking 필요 
Public Key 
+ AES 
키 사이즈가 작음 추가 구현 코스트 
추가 메모리 사용 
키 유출시의 대응 필요
Android battery 문제 
• 버그의 수정: 수많은 looping 관련한 버그들 
• Server side ping than client side ping 
• Push notification 방법의 변경 
• Stop background polling for inactive users 
• 빠른노티와 배터리와의 타협 
• 휴면 사용자의 배터리는 소모되지 않도록 
• Timeout wake-lock 
• 요즘 사용자들은 앱 리뷰에 “WLD에 몇회나 호출된다”는 말까지 적는다 ㅜ.ㅜ 
• Android 설정의 “Battery”, WLD, BetterBatteryStats 다 확인
Android battery 문제 
Client Side Ping 
• Timer: heartbeating every X seconds 
• Network: upstream 
Total mA Total 3G Total CPU 
GCM only 538 1,604 387 
Client Ping 3, 731 12,474 1,333 
Server Ping 2,596 8,126 1,482 
Server Side Ping –30% less than client side ping 
• Timer : reset and start when received ping 
• Network: downstream
자유로운 설정/기능 변경 
• 세상은 자주 바뀌고, 앱 심사는 오래 걸리고, 출시 전에 모든 버그를 잡을 수 없다면 
• 해답: App의 동작 방식을, 서버에서 바꿀 수 있게 하자! since year 2012 
• By OS, App Version, Country, Carrier, WiFi or Mobile 
• UI, protocol, push, failover, max #, interval, address, … 
• 새 기능의 안전한 출시, 문제에 대한 workaround에 적용을 위해 주로 사용(차단, 버그) 
• 단, 서버에서도 국가별 설정이 가능하다 J (어떤 국가에서만 특정 기능을 제한할 때)
자유로운 설정/기능 변경 
가능한 것들 
• Performance & battery (Android) 
• Fixing various problems w/ transparent caches 
• Fighting with blockings 
• 1월 1일 0시 트래픽을 대비해서 2일 전부터 사진 크기를 줄일려면, 어떻게?
2. 글로벌 POP 현황(2014.6월말 기준) Global Network 
Async send operation 
• nearest POP responds OK first, with late notification if any errors
여기까지 요약하면
나머지 Topic은 다음에… 
• Captive portal 
• High failure rate in DNS resolving 
• IPv6 network : ready ? 
• 아스트랄한 차단들 .. 
• …
Storage of LINE
Redis
Redis – 이런 건 기본 
• 대용량, 고성능 지원 
• 50+ TB, 10+ clusters, 3000+ shards, 30M+ Op/sec 
• Shard 단위 Availability 보장 
• Redis의 기본적인 master-slave replication 활용 
• Auto promotion & recovery 
• Cluster 단위 robustness 
• Cluster manager를 통해, 일부 shard의 장애가 전체로 확산되는 것을 차단 
• Service 단위 Availability 보장 
• Redis 장애시, HBase로 fail-over
Redis – 어려운 숙제들 
• 다중 layer 분산 스토리지에서 Consistency와 Availability 지키기 
• 부분 장애시, write call에 대한 보장은 어려운 문제. 
• Read와 Write에 대한 차별적 failover. 
• Read >> Write. Read의 availability에 집중. 
• 공격적 Failover 
• Redis는 single thread. 순간적인 준 장애 발생 가능. 
• Shard 상태를 모니터링, 선제적으로 failover 실행. 
• Dual-async fail over 
• Redis에 비해 HBase는 수십배 느림. 
• 빠른 fail over를 위해, redis retry와 HBase retry를 동시에 수행. 
• Cluster 동적 확장 
• 가상 클러스터 
• Sharding 방식 고도화
HBase, Bigger than bigger 
• HBase, using persistent storage entirely 
• Running 10 x HBase clusters 
• Addressbook, messages x 2, backup, stats 
• Operation, archive-operation, event, channel, user 
• 1.24 PB capacity for service data, 7PB for statistics, lots of FusionIO (300 ~) 
• Operation HBase cluster – 220K RPS from 150 node(153TB)
HBase, 한땀 한땀 만든 
• 대부분 통계/분석 용도로 사용, but response time/availability 서비스에는 안습 
• HBase @LINE의 특징 
• 주요 데이타들은 dual cluster로 구성: cluster-wide failure에 대응 
• availability를 위하여 application쪽에서 다양한 로직이 구현 
• throughput보다는 response time 위주로 튜닝 (gc 튜닝, FusionIO 등) 
• immutable data의 경우 redis cache를 적극적으로 활용 
• 통계 분석: 주요 데이타 cluster replication 후, 로그 데이타와 join 하여 분석 
• 0.90 cdh3 버젼에서 시작, online upgrade가 안되서 개고생, 최근에 업그레이 
드를 위해 여러가지 안을 시도 중 (offline 업그레이드는.. ) 
• HBase cluster replication: pull based replicator (vs push based )
Abuser == Social Engineer 
Abusing 
• Global Platform means global eco(nomic)-systems for abusers 
• Spamming, Stealing Accounts, Phishing 
• Brute force 
• 90% of authentication failures : 5M ‘Gmail Passwords’ Leaked 
• abusing bots , Tor and China 
• 로그온 5번 실패하면 해당 ID blocking ? 이 정도는 다 피해요 
• Add friend notification 개시 후 문제점: 대화명이 “LlNE lndonesia” ㅠ.ㅠ 
• 건강한 멘탈과 분석 시스템, CS 대응이 중요
Abusing 
Answers are 
• Email & password는 공공재™ 
• Strong Authentication 
• 2nd factor, 3rd factor authentication 
• Smartphone(SMS) and App as OTP device 
• CAPTCHA, QR Code, PIN code by System OA 
• 훌륭한 질문과 답 
• (X) 엄마가 태어난 도시는 ? 서울 (20% 확률) 
• (O) 엄마 & 동생 전화번호 뒷 4자리를 곱하면 ? 확률 1 of 10^8, 개인정보 아님 
• 친구 관계를 이용한 질문들 
• 15개의 사진 중에 친구의 프로필 사진 2개를 고르기 
• 친구의 전화 번호를 입력해 주세요
WE’RE HIRING 
http://recruit.linepluscorp.com/ 
join@linecorp.com 
LINE Developers Conference 
11/26(수), COEX 
더 궁금하신 분들은 
http://developers.linecorp.com/blog/
Q&A 
THANK YOU

Más contenido relacionado

La actualidad más candente

[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현NAVER D2
 
[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술NAVER D2
 
[142]편광을 활용한6 dof 전현기
[142]편광을 활용한6 dof 전현기[142]편광을 활용한6 dof 전현기
[142]편광을 활용한6 dof 전현기NAVER D2
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화NAVER D2
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 
[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민NAVER D2
 
분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기NAVER D2
 
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈Minwoo Kim
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화NAVER D2
 
[235]루빅스개발이야기 황지수
[235]루빅스개발이야기 황지수[235]루빅스개발이야기 황지수
[235]루빅스개발이야기 황지수NAVER D2
 
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성NAVER D2
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)Brian Hong
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWSMatthew (정재화)
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기NAVER D2
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampSang-bae Lim
 
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발주항 박
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 

La actualidad más candente (20)

[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
 
[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술
 
[142]편광을 활용한6 dof 전현기
[142]편광을 활용한6 dof 전현기[142]편광을 활용한6 dof 전현기
[142]편광을 활용한6 dof 전현기
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민
 
분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기
 
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화
 
[235]루빅스개발이야기 황지수
[235]루빅스개발이야기 황지수[235]루빅스개발이야기 황지수
[235]루빅스개발이야기 황지수
 
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcamp
 
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
오픈 소스를 활용한 캐쥬얼 게임 서버 프레임워크 개발
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 

Destacado

[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcdNAVER D2
 
[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로NAVER D2
 
[2B4]Live Broadcasting 추천시스템
[2B4]Live Broadcasting 추천시스템  [2B4]Live Broadcasting 추천시스템
[2B4]Live Broadcasting 추천시스템 NAVER D2
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성NAVER D2
 
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
[2C5]Map-D: A GPU Database for Interactive Big Data AnalyticsNAVER D2
 
[1A1]행복한프로그래머를위한철학
[1A1]행복한프로그래머를위한철학[1A1]행복한프로그래머를위한철학
[1A1]행복한프로그래머를위한철학NAVER D2
 
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기NAVER D2
 
[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기
[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기
[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기NAVER D2
 
[1B5]github first-principles
[1B5]github first-principles[1B5]github first-principles
[1B5]github first-principlesNAVER D2
 
Papago/N2MT 개발이야기
Papago/N2MT 개발이야기Papago/N2MT 개발이야기
Papago/N2MT 개발이야기NAVER D2
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님NAVER D2
 
텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님NAVER D2
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님NAVER D2
 
스타트업, 지속 가능한 홍보 방법 만들기
스타트업, 지속 가능한 홍보 방법 만들기스타트업, 지속 가능한 홍보 방법 만들기
스타트업, 지속 가능한 홍보 방법 만들기Meena Lee
 
[14회] 작은 마케팅 클리닉-이론편 (공개강의)
[14회] 작은 마케팅 클리닉-이론편 (공개강의)[14회] 작은 마케팅 클리닉-이론편 (공개강의)
[14회] 작은 마케팅 클리닉-이론편 (공개강의)Yibong (Sanghoon) Lee
 
작은마케팅클리닉_공개강좌_v 7.65 3 h_20150918
작은마케팅클리닉_공개강좌_v 7.65 3 h_20150918작은마케팅클리닉_공개강좌_v 7.65 3 h_20150918
작은마케팅클리닉_공개강좌_v 7.65 3 h_20150918Yibong (Sanghoon) Lee
 
[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwonNAVER D2
 
[Hello world]git internal
[Hello world]git internal[Hello world]git internal
[Hello world]git internalNAVER D2
 
[Hello world]n forge
[Hello world]n forge[Hello world]n forge
[Hello world]n forgeNAVER D2
 

Destacado (20)

[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd
 
[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로
 
[2B4]Live Broadcasting 추천시스템
[2B4]Live Broadcasting 추천시스템  [2B4]Live Broadcasting 추천시스템
[2B4]Live Broadcasting 추천시스템
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성
 
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
 
[1A1]행복한프로그래머를위한철학
[1A1]행복한프로그래머를위한철학[1A1]행복한프로그래머를위한철학
[1A1]행복한프로그래머를위한철학
 
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
 
[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기
[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기
[1D2]아이비컨과 공유기 해킹을 통한 인도어 IOT 삽질기
 
[1B5]github first-principles
[1B5]github first-principles[1B5]github first-principles
[1B5]github first-principles
 
The monad fear
The monad fearThe monad fear
The monad fear
 
Papago/N2MT 개발이야기
Papago/N2MT 개발이야기Papago/N2MT 개발이야기
Papago/N2MT 개발이야기
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
 
텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님
 
스타트업, 지속 가능한 홍보 방법 만들기
스타트업, 지속 가능한 홍보 방법 만들기스타트업, 지속 가능한 홍보 방법 만들기
스타트업, 지속 가능한 홍보 방법 만들기
 
[14회] 작은 마케팅 클리닉-이론편 (공개강의)
[14회] 작은 마케팅 클리닉-이론편 (공개강의)[14회] 작은 마케팅 클리닉-이론편 (공개강의)
[14회] 작은 마케팅 클리닉-이론편 (공개강의)
 
작은마케팅클리닉_공개강좌_v 7.65 3 h_20150918
작은마케팅클리닉_공개강좌_v 7.65 3 h_20150918작은마케팅클리닉_공개강좌_v 7.65 3 h_20150918
작은마케팅클리닉_공개강좌_v 7.65 3 h_20150918
 
[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon
 
[Hello world]git internal
[Hello world]git internal[Hello world]git internal
[Hello world]git internal
 
[Hello world]n forge
[Hello world]n forge[Hello world]n forge
[Hello world]n forge
 

Similar a [2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가

홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들Hyunjik Bae
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)Taegil Heo
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민Hyunjik Bae
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2Minsuk Lee
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Jinuk Kim
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스Dan Kang (강동한)
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 iFunFactory Inc.
 
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가Hyun-jik Bae
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기YoungSu Son
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선NAVER D2
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료Teddy Choi
 
cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)CDIT-HCI
 

Similar a [2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가 (20)

홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
 
임베디드시스템개발 Part2
임베디드시스템개발 Part2임베디드시스템개발 Part2
임베디드시스템개발 Part2
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
 
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
 
cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)
 

Más de NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

Más de NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가

  • 2. LINE은 어쩌다어떻게 글로벌 메신저 플랫폼이 되었는가 이석찬 / 개발4실 LINE+
  • 3. CONTENTS LINE? Global Platform LINE 원정대 Client Analytics Apps Global Network Big LINE Data Game Security
  • 5. Q& A 6+ Global Branch 6 Engineering Base 4 Regional CS Center Global Platform 8 Global POP 100+Gbps thru 100+ Peering 20,000 Servers 9 Supported OS 20 : 80 Japan : World 1B Downs 71 Apps
  • 6. Global Problem 2개 어느 정도 잘 하고 있다고 생각했는데 1. Ranked #1 in 60 countries 2. 71/179 Family Apps, 17+ Language Support, 9 OS Supported and more 3. Glocalization : emoji, stickers, UX, event Q&A But, 개발자를 괴롭히는 2가지 문제들 1. 경쟁사보다 느려요, 메시지가 잘 가지 않아요 2. 배터리를 (처)먹어요!
  • 7. 문제를 맞이하는 자세 1. 무엇이 문제인데? 카더라, 나는 겪었거던, 재현은 어떻게 하는지 몰라, … 2. 얼마나 빨라야 하는데? 그냥 경쟁 앱보다 빠르면 되잖아 3. 왜 느린가? 알면 얘기하겠어 4. 무엇을 해야 하나? 5. 누가 이 문제를 고쳐야 하나? 6. 왜 하필 지금? 그리고 나에게 묻죠? Q&A v 머피의 법칙: 왜 모든 문제는 boss의 폰에만 생기는가 ?
  • 8. 문제를 찾으러 - LINE 遠征隊 2012년 12월 Spain, 사용자가 갑자기 늘었어요 (마치 지금의 Telegram처럼) 2013년 2월 어느날, 출발 전날 Spain 비행기 티켓이 주어지고 … 2 ~ 6명의 Client/Server 개발자가 3 ~ 5일씩 GPRS, Edge, 3G/3G+, 4G/LTE and Airplane WiFi 호텔, 식당, 지하철, 버스, 관광지 엘리베이터, 비행기, 물 속, 높은 곳
  • 9. LINE 遠征隊 Taiwan Indonesia India Spain
  • 10. 통신사의 흔한 문제들 문제(아)들 • Welcome to Hell : Transparent Cache/Proxy • 503, sessions, image, header … • Transparent images, 사라진 Content-Length, X-Capital-Header: • 차단 : IP, DNS blackhole, VoIP, DPI, 국가/종교의 이름으로 • 3G는 몹쓸 것, http://helloworld.naver.com/helloworld/111111 • High DNS resolving failures : 40-60% at peak time on some carriers • Philippines, Vietnam, Indonesia, India, China, Iran …
  • 11. 흔한 문제들에 대한 대응 이런 경우에는 • “피하세요” : HTTPS and SPDY on 443/tcp • “대비하세요” : No one magic protocol, 언제라도 변경이 가능해야 합니다 • SPDY, HTTPS, HTTP protocols are supported on a single 443/tcp • “우리 친구해요”: 통신사와 장비회사 모두랑, peering, zero rating • carrier-contact@linecorp.com • 빠르게 : less round trips, less bytes, light UI • Async operations, pre-fetching, background sync • Warmup 3G(Ping) and TCP(pre-connection) • CDN, Cloud DNS on BGP Anycast • 그래도 안 되면, 빠른 척이라도 UX : 어차피 떨어져 있어 몰라요
  • 12. 진지했던 문제들 • 출장을 가지 않고도 어떻게 문제를 찾고, 해결되었는지 알 수는 없을까 • App Reviews • Client Analytics • New features • Zombie WiFi(Captive portal) 대응 • More compact protocol • Typing ping • Troubleshooting, Improvements • SPDY protocol • In-flight WiFi • Battery 사용량 개선
  • 13. App Reviews (반성) 2013.04, 싱가폴 사용자들이 앨범 뷰가 안 보인다고 리뷰 도배질을 1달 뒤에 알았다 없어서, 만들었더니 알게 된 것 • Android : Package File invalid – Google, Android • iOS X beta : 제발 beta 사용하지 마세요 • major, minor bugs, crashes • 특정 국가, 통신사, Phone, OS, 특정일에만 발생하는 문제들 • 새로운 기능/UX에 대한 피드백 : 정말 국가마다 달라요 • Features comparison by Apps • 종교 전쟁 : WhatsApp vs LINE • 그 중의 백미(白眉), 새 버전 발매하는 날의 Tag Cloud “튕겨요” • Weekly Review by Language/Region
  • 16. Client Analytics • User Behavior Analytics 할려다, Performance & problem trending • WiFi에 연결되어 충전 중일 때, App이 보낸 통계 데이타를 Big Data 분석 • 이제는 모든 국가, 통신사, OS & App version 구분하여 tracking 가능 • 하지만, 앱리뷰에 욕한 사람의 기록을 찾지 못해요 ㅠ.ㅠ (개인정보) • QMS, Gomez, Google Analytics 사용하지 않는 이유는?
  • 17. Client Analytics • Time to send, receive Text / Audio / Video / Sticker / Themes • Size and speed to send, receive Multimedia files • Error types, error rates of each operations • Net connect and DNS resolving • Battery usage in bg/fg, # of run per day
  • 18. Only SPDY • SPDY, SPDY, SPDY : 99.8% 이상의 사용자 접속 • 가능하면 http(s) 사용하지 않도록 변경 • 추가의 connection 만들지 않게 : +1 RTT, 배터리, TCP window size • SPDY의 server-side push 를 미래에 사용하기 위해서
  • 19. More compact protocol 대만 Chunghwa : 밤 시각의 메시지 송신에 8~9초 걸리는 문제 분석 • In 200byte + Out 200byte 정도면, 3G FACH ~ DCH transition delay 발생함 • 3G RRC transition delay를 피하도록, 가능한 FACH에 머물도록 • 평균 응답 크기, P4 : P5 = 244.8 : 194.7 (19.5% 감소) • 1000byte 이하 응답 평균 = 149.4 : 117.9 (21.2% 감소) send “hello” Out (DATA) send “hello” In (ACK) get “hello” In (DATA) get “hello” out (ACK) WhatsApp 56 44 97 43 LINE 83 100 (63) 244 166
  • 20. In-flight WiFi 네트웍 특성: 300~1000ms RTT, 1대가 download 5Mbps & upload 1Mbps 공유 바꾸어야 하는 것들 • WiFi에서 사용하던 HTTPS 대신에 모두 SPDY로 변경할 필요성 대두 • 대신에 모든 커넥션을 암호화 해야 => “light but strong encryption” 새 숙제 • NSpeedEm, Apple’s Network Link Conditioner를 이용한 simulation
  • 21. Light but strong encryption SSL은 mobile connection에 맞지 않음: 1 RTT 위해 max 1초 희생해야 한다. 대신에 • Server Certificate를 앱 배포시 내장하고 • 자체적인 RSA + AES 암호화 방법을 구현 • Redis를 통한 session cache 구현 장점 단점 HTTPS (공인) 추가 구현이 매우 간단 구현 방법 매우 안전(OS내장) 인증서 size, 다운로드 SSL handshaking 필요 HTTPS (사설) 구현이 간단하다 구현 방법 매우 안전(OS내장) SSL handshaking 필요 Public Key + AES 키 사이즈가 작음 추가 구현 코스트 추가 메모리 사용 키 유출시의 대응 필요
  • 22. Android battery 문제 • 버그의 수정: 수많은 looping 관련한 버그들 • Server side ping than client side ping • Push notification 방법의 변경 • Stop background polling for inactive users • 빠른노티와 배터리와의 타협 • 휴면 사용자의 배터리는 소모되지 않도록 • Timeout wake-lock • 요즘 사용자들은 앱 리뷰에 “WLD에 몇회나 호출된다”는 말까지 적는다 ㅜ.ㅜ • Android 설정의 “Battery”, WLD, BetterBatteryStats 다 확인
  • 23. Android battery 문제 Client Side Ping • Timer: heartbeating every X seconds • Network: upstream Total mA Total 3G Total CPU GCM only 538 1,604 387 Client Ping 3, 731 12,474 1,333 Server Ping 2,596 8,126 1,482 Server Side Ping –30% less than client side ping • Timer : reset and start when received ping • Network: downstream
  • 24. 자유로운 설정/기능 변경 • 세상은 자주 바뀌고, 앱 심사는 오래 걸리고, 출시 전에 모든 버그를 잡을 수 없다면 • 해답: App의 동작 방식을, 서버에서 바꿀 수 있게 하자! since year 2012 • By OS, App Version, Country, Carrier, WiFi or Mobile • UI, protocol, push, failover, max #, interval, address, … • 새 기능의 안전한 출시, 문제에 대한 workaround에 적용을 위해 주로 사용(차단, 버그) • 단, 서버에서도 국가별 설정이 가능하다 J (어떤 국가에서만 특정 기능을 제한할 때)
  • 25. 자유로운 설정/기능 변경 가능한 것들 • Performance & battery (Android) • Fixing various problems w/ transparent caches • Fighting with blockings • 1월 1일 0시 트래픽을 대비해서 2일 전부터 사진 크기를 줄일려면, 어떻게?
  • 26. 2. 글로벌 POP 현황(2014.6월말 기준) Global Network Async send operation • nearest POP responds OK first, with late notification if any errors
  • 28. 나머지 Topic은 다음에… • Captive portal • High failure rate in DNS resolving • IPv6 network : ready ? • 아스트랄한 차단들 .. • …
  • 30. Redis
  • 31. Redis – 이런 건 기본 • 대용량, 고성능 지원 • 50+ TB, 10+ clusters, 3000+ shards, 30M+ Op/sec • Shard 단위 Availability 보장 • Redis의 기본적인 master-slave replication 활용 • Auto promotion & recovery • Cluster 단위 robustness • Cluster manager를 통해, 일부 shard의 장애가 전체로 확산되는 것을 차단 • Service 단위 Availability 보장 • Redis 장애시, HBase로 fail-over
  • 32. Redis – 어려운 숙제들 • 다중 layer 분산 스토리지에서 Consistency와 Availability 지키기 • 부분 장애시, write call에 대한 보장은 어려운 문제. • Read와 Write에 대한 차별적 failover. • Read >> Write. Read의 availability에 집중. • 공격적 Failover • Redis는 single thread. 순간적인 준 장애 발생 가능. • Shard 상태를 모니터링, 선제적으로 failover 실행. • Dual-async fail over • Redis에 비해 HBase는 수십배 느림. • 빠른 fail over를 위해, redis retry와 HBase retry를 동시에 수행. • Cluster 동적 확장 • 가상 클러스터 • Sharding 방식 고도화
  • 33. HBase, Bigger than bigger • HBase, using persistent storage entirely • Running 10 x HBase clusters • Addressbook, messages x 2, backup, stats • Operation, archive-operation, event, channel, user • 1.24 PB capacity for service data, 7PB for statistics, lots of FusionIO (300 ~) • Operation HBase cluster – 220K RPS from 150 node(153TB)
  • 34. HBase, 한땀 한땀 만든 • 대부분 통계/분석 용도로 사용, but response time/availability 서비스에는 안습 • HBase @LINE의 특징 • 주요 데이타들은 dual cluster로 구성: cluster-wide failure에 대응 • availability를 위하여 application쪽에서 다양한 로직이 구현 • throughput보다는 response time 위주로 튜닝 (gc 튜닝, FusionIO 등) • immutable data의 경우 redis cache를 적극적으로 활용 • 통계 분석: 주요 데이타 cluster replication 후, 로그 데이타와 join 하여 분석 • 0.90 cdh3 버젼에서 시작, online upgrade가 안되서 개고생, 최근에 업그레이 드를 위해 여러가지 안을 시도 중 (offline 업그레이드는.. ) • HBase cluster replication: pull based replicator (vs push based )
  • 35. Abuser == Social Engineer Abusing • Global Platform means global eco(nomic)-systems for abusers • Spamming, Stealing Accounts, Phishing • Brute force • 90% of authentication failures : 5M ‘Gmail Passwords’ Leaked • abusing bots , Tor and China • 로그온 5번 실패하면 해당 ID blocking ? 이 정도는 다 피해요 • Add friend notification 개시 후 문제점: 대화명이 “LlNE lndonesia” ㅠ.ㅠ • 건강한 멘탈과 분석 시스템, CS 대응이 중요
  • 36. Abusing Answers are • Email & password는 공공재™ • Strong Authentication • 2nd factor, 3rd factor authentication • Smartphone(SMS) and App as OTP device • CAPTCHA, QR Code, PIN code by System OA • 훌륭한 질문과 답 • (X) 엄마가 태어난 도시는 ? 서울 (20% 확률) • (O) 엄마 & 동생 전화번호 뒷 4자리를 곱하면 ? 확률 1 of 10^8, 개인정보 아님 • 친구 관계를 이용한 질문들 • 15개의 사진 중에 친구의 프로필 사진 2개를 고르기 • 친구의 전화 번호를 입력해 주세요
  • 37. WE’RE HIRING http://recruit.linepluscorp.com/ join@linecorp.com LINE Developers Conference 11/26(수), COEX 더 궁금하신 분들은 http://developers.linecorp.com/blog/