Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads.
모바일 앱 크래시!! 
네이버에서는 어떻게 
수집하고 
보여줄까요? 
유성덕 선임연구원 / 분산시스템개발랩 / 서비스플랫폼G 
Naver Labs
모바일 앱 크래시? 
이미지 출처: https://github.com/CodingGene/JIRA-Mobile-Connect
서비스 개발 출시 
튕기고 / 멈추고 
사용자 감소 / 리뷰 별점 테러 
매출 하락
프로젝트 시작 (벤치마킹) 
SNS 개발팀의 요구사항에서 시작
Function List 
Crash Report 수집 및 분석 
1. 크래시 리포트 수집 : iOS / Android SDK 
2. 기간별 Crash 발생 수 / 그래프 
3. 최초 / 최근 발생 시간 
4. Cras...
Function List 
Crash 이슈 관리 
1. 이슈 상태 관리 
- Crash 이슈 별 상태 변경 및 검색 기능 
2. 코멘트 작성 
- Crash 이슈에 관한 코멘트 입력 기능 
3. 태깅 
- Crash 이...
Function List 
ETC 
1. 커스텀 키값 / 세션ID 수집 
2. 실시간 크래시 발생 모니터링 
3. 모바일 앱 트렌드 분석 
4. 비정상적인 크래시 패턴 감지 
5. 일일 리포트
nCrazer ? 
Naver 
Mobile App 
Crash Analyzer
nCrazer - Main
nCrazer 사용 앱
이슈 조회 
이슈 
1. Exception Type : 크래시 발생 Exception - NSObjectInaccessibleException 
2. Location : 크래시가 발생한 함수(파일:라인) – main (...
이슈 조회 
1 2 
3 
4
이슈 조회 
1 
3 
2 
4
이슈 조회
이슈 조회
이슈 통계
이슈 트렌드
실시간 모니터링
오픈소스
구성 
App Log 
Collector 
Kafka 
Crash 
Symbolicator 
Elastic 
Symbol 
Normal 
MongoDB Search 
Web 
Server 
Crash Collector ...
SDK 
SDK 
1. 지원 플랫폼 : iOS / Android (NDK) 
2. 수집 항목 
1. 크래시 리포트 
1. 앱 정보 / 디바이스 정보 
2. OS 버젼, 앱 버젼, 디바이스 모델 명, 메모리 사용량, 스토...
Apache Kafka 
사용 목적 
1. 노드간 데이터 전송에 사용 
2. 로그 폭주시 데이터 유실 방지 
특징 
1. Fast 
2. Scalable 
3. Durable 
App Log 
Collector 
Kaf...
MongoDB 
특징 
1. Scalability 
2. Replication & High Availability 
3. Document-Based Object 
4. Aggregation 
Crash 
Collecto...
MongoDB 
MongoDB 
1. 크래시 발생 집계 정보 저장 
2. 프로젝트 마다 여러 collection 존재 
1. 이슈 collection 
2. 분 / 시간 / 일 별 collection 분리 
3. cra...
Elasticsearch 
사용 목적 
1. 전사 로그 데이터 수집 
2. 실시간 검색 
특징 
1. 분산 환경 지원 
2. Schema Free 
3. Multi tenancy 
4. 확장성 
5. 유연성 
6. Fu...
Symbolicator 
Symbolicator 
1. iOS : 메모리 주소로 되어있는 Crash Report 를 심볼 정보로 변경
Symbolicator 
Symbolicator 
1. iOS : 메모리 주소로 되어있는 Crash Report 를 함수(파일:라인)으로 변경 
2. Android : Proguard , Google Breakpad
Symbolicatecrash 
Symbolicatecrash 
1. iOS Crash Report 변환하기 위해 필요한 툴 
2. Xcode 설치 필요
Symbolicatecrash 
Symbolicatecrash 
1. iOS Crash Report 변환하기 위해 필요한 툴 
2. Xcode 설치 필요 
3. iOS 계열 장비에서 Symbol 추출
Symbolicatecrash 
Symbolicatecrash 
1. iOS Crash Report 변환하기 위해 필요한 툴 
2. Xcode 설치 필요 
3. iOS 계열 장비에서 Symbol 추출 
4. Applic...
Symbolicatecrash 
Symbolicatecrash 
1. iOS Crash Report 변환하기 위해 필요한 툴 
2. Xcode 설치 필요 
3. iOS 계열 장비에서 Symbol 추출 
4. Applic...
Symbolicatecrash 
Symbolicatecrash 
1. 매우 낮은 성능 
2. Mac 서버 에서만 동작 
3. TestFlight 의 성공사례 
- http://help.testflightapp.com/c...
Symbolicatecrash 
Symbolicatecrash 
1. 사용하는 binary 
1. mdfind - finds files matching a given query 
2. mdls - lists the me...
atos 
atos 
1. convert numeric addresses to symbols of binary images or processes 
12 nCrazer 0x000a4e3b 0x98000 + 52795 
...
atos 
Mach-O File Format 
mach_header fat_arch 
fat_header 
uuid_command 
segment_command 
이미지 출처: https://developer.apple...
atos 
DWARF 
1. DWARF : Debugging With Attributed Record Formats 
- http://www.dwarfstd.org/ 
2. DWARF is a widely used, s...
구현 결과 
구현 결과 
1. 약 15 배 정도의 성능 향상
향후 계획 
Symbolicator 고도화 
1. node.js c/c++ 모듈화로 1.5 배 성능 향상 기대 
2. Android tools 고도화 
1. Proguard 
2. google-breakpad (Andr...
향후 계획 
크래시 지표 지원 
1. 그룹 / 프로젝트 별 크래시 지표 제공
Q&A
THANK YOU
[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요
[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요
[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요
Upcoming SlideShare
Loading in …5
×

[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요

11,981 views

Published on

DEVIEWI 2014 [1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요

Published in: Technology

[1B3]모바일 앱 크래시 네이버에서는 어떻게 수집하고 보여줄까요

  1. 1. 모바일 앱 크래시!! 네이버에서는 어떻게 수집하고 보여줄까요? 유성덕 선임연구원 / 분산시스템개발랩 / 서비스플랫폼G Naver Labs
  2. 모바일 앱 크래시? 이미지 출처: https://github.com/CodingGene/JIRA-Mobile-Connect
  3. 서비스 개발 출시 튕기고 / 멈추고 사용자 감소 / 리뷰 별점 테러 매출 하락
  4. 프로젝트 시작 (벤치마킹) SNS 개발팀의 요구사항에서 시작
  5. Function List Crash Report 수집 및 분석 1. 크래시 리포트 수집 : iOS / Android SDK 2. 기간별 Crash 발생 수 / 그래프 3. 최초 / 최근 발생 시간 4. Crash 발생한 사용자 수 5. Stack Trace 정보 6. OS/App ver., Device, Carrier, Network(3G,Wi-Fi), 국가정보, 로케일
  6. Function List Crash 이슈 관리 1. 이슈 상태 관리 - Crash 이슈 별 상태 변경 및 검색 기능 2. 코멘트 작성 - Crash 이슈에 관한 코멘트 입력 기능 3. 태깅 - Crash 이슈 별 태깅하여 태그별 이슈 관리 4. 이슈 연동 - Crash 이슈를 외부 서비스에 등록하여 이슈 관리
  7. Function List ETC 1. 커스텀 키값 / 세션ID 수집 2. 실시간 크래시 발생 모니터링 3. 모바일 앱 트렌드 분석 4. 비정상적인 크래시 패턴 감지 5. 일일 리포트
  8. nCrazer ? Naver Mobile App Crash Analyzer
  9. nCrazer - Main
  10. nCrazer 사용 앱
  11. 이슈 조회 이슈 1. Exception Type : 크래시 발생 Exception - NSObjectInaccessibleException 2. Location : 크래시가 발생한 함수(파일:라인) – main (main.m:55) 3. Version : 해당 앱 버젼 – v3.3.0
  12. 이슈 조회 1 2 3 4
  13. 이슈 조회 1 3 2 4
  14. 이슈 조회
  15. 이슈 조회
  16. 이슈 통계
  17. 이슈 트렌드
  18. 실시간 모니터링
  19. 오픈소스
  20. 구성 App Log Collector Kafka Crash Symbolicator Elastic Symbol Normal MongoDB Search Web Server Crash Collector Abnormal Pattern Detector Daily Reporter
  21. SDK SDK 1. 지원 플랫폼 : iOS / Android (NDK) 2. 수집 항목 1. 크래시 리포트 1. 앱 정보 / 디바이스 정보 2. OS 버젼, 앱 버젼, 디바이스 모델 명, 메모리 사용량, 스토리지 사용량, 이통사 정보, 네트워크 상태, 국가 코드 정보, 로케일
  22. Apache Kafka 사용 목적 1. 노드간 데이터 전송에 사용 2. 로그 폭주시 데이터 유실 방지 특징 1. Fast 2. Scalable 3. Durable App Log Collector Kafka Crash Symbolicator Elastic Symbol Normal MongoDB Search Hadoop Crash Collector
  23. MongoDB 특징 1. Scalability 2. Replication & High Availability 3. Document-Based Object 4. Aggregation Crash Collector Crash Collector Mongos mongod master mongod slave mongod arbiter mongod master mongod slave mongod arbiter Mongo Config Mongo Config Mongo Config
  24. MongoDB MongoDB 1. 크래시 발생 집계 정보 저장 2. 프로젝트 마다 여러 collection 존재 1. 이슈 collection 2. 분 / 시간 / 일 별 collection 분리 3. crash 발생 user collection 3. map/reduce 보다는 aggregation 을 활용 4. 초당 약 900건의 크래시 처리
  25. Elasticsearch 사용 목적 1. 전사 로그 데이터 수집 2. 실시간 검색 특징 1. 분산 환경 지원 2. Schema Free 3. Multi tenancy 4. 확장성 5. 유연성 6. Full Text Search
  26. Symbolicator Symbolicator 1. iOS : 메모리 주소로 되어있는 Crash Report 를 심볼 정보로 변경
  27. Symbolicator Symbolicator 1. iOS : 메모리 주소로 되어있는 Crash Report 를 함수(파일:라인)으로 변경 2. Android : Proguard , Google Breakpad
  28. Symbolicatecrash Symbolicatecrash 1. iOS Crash Report 변환하기 위해 필요한 툴 2. Xcode 설치 필요
  29. Symbolicatecrash Symbolicatecrash 1. iOS Crash Report 변환하기 위해 필요한 툴 2. Xcode 설치 필요 3. iOS 계열 장비에서 Symbol 추출
  30. Symbolicatecrash Symbolicatecrash 1. iOS Crash Report 변환하기 위해 필요한 툴 2. Xcode 설치 필요 3. iOS 계열 장비에서 Symbol 추출 4. Application Symbol 준비
  31. Symbolicatecrash Symbolicatecrash 1. iOS Crash Report 변환하기 위해 필요한 툴 2. Xcode 설치 필요 3. iOS 계열 장비에서 Symbol 추출 4. Application Symbol 준비 5. 성능 ??
  32. Symbolicatecrash Symbolicatecrash 1. 매우 낮은 성능 2. Mac 서버 에서만 동작 3. TestFlight 의 성공사례 - http://help.testflightapp.com/customer/portal/articles/852175-testflig ht-and-crash-symbolication
  33. Symbolicatecrash Symbolicatecrash 1. 사용하는 binary 1. mdfind - finds files matching a given query 2. mdls - lists the metadata attributes for the specified file 3. lipo - create or operate on universal files 4. size - print the size of the sections in an object file 5. otool - object file displaying tool 6. atos - convert numeric addresses to symbols of binary images or proce sses
  34. atos atos 1. convert numeric addresses to symbols of binary images or processes 12 nCrazer 0x000a4e3b 0x98000 + 52795 12 nCrazer 0x000a4e3b main (main.m:57)
  35. atos Mach-O File Format mach_header fat_arch fat_header uuid_command segment_command 이미지 출처: https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html
  36. atos DWARF 1. DWARF : Debugging With Attributed Record Formats - http://www.dwarfstd.org/ 2. DWARF is a widely used, standardized debugging data format. - http://en.wikipedia.org/wiki/DWARF
  37. 구현 결과 구현 결과 1. 약 15 배 정도의 성능 향상
  38. 향후 계획 Symbolicator 고도화 1. node.js c/c++ 모듈화로 1.5 배 성능 향상 기대 2. Android tools 고도화 1. Proguard 2. google-breakpad (Android NDK)
  39. 향후 계획 크래시 지표 지원 1. 그룹 / 프로젝트 별 크래시 지표 제공
  40. Q&A
  41. THANK YOU
www.sellmax.com.ua

вывоз строймусора в киеве

×