SW 문제해결 접근방식

2011. 12. 2. 14:45·Android Development
반응형
음.. 이 내용을 어디서 가져왔는지 전혀 기억이 안나고 모르겠다.

프로세스 : 문제식별 -> 데이터 수집 -> 데이터 분석 -> 가설설정 -> 원인분석 -> 개선방안 -> 해결조치

 

 

문제해결 접근방식

 

    Divide&Conquer 분석 : 문제를 작은 구간으로 나누어서 분석

    Event 분석 : log,dump,trace 등 각종 기록 분석

    Queue 분석 : 자원(cpu/network/memory/connection 등)의 대기행렬 분석. 병목파악

 

 

Event 분석

 

    log : 시점별 이벤트. history

    dump : 특정 시점의 리소스 상태. snapshot

    trace : 리소스 활동상태 추적. profiling

 

 

안드로이드에서 주로 발생하는 문제

 

    애플리케이션 응답없음(ANR)

    시스템 응답없음(먹통, lock up)

    프로그램 오류

    낮은 성능

    Crash

 

     => 경험에 의한 자료 부족

 

주요 원인

 

    bug : 애플리케이션 오류

    resource leak : 메모리 누수, 자원미반납 등

    bottleneck : 디스크 IO 병목? 네트워크 병목?

    dead lock : 쓰레드 경합

    bad query : Provider의 악성 SQL

    unoptimized : 튜닝 안된 파라미터 설정

 

     => 경험에 의한 자료 부족

 

분석 방법

 

    힙덤프 분석

    쓰레드 분석

    가용자원 분석

    프로파일링

    IO 병목 분석

    네트워크 분석

    소스 디버깅

    로그 분석

    파일/데이터(DB) 분석

 

 

주요 도구

 

    ADB

    logcat

    TraceView

    DDMS

    Eclipse ADT

    Eclipse MAT

    쉘 명령어 : ps, top, ...

 

 

데이터 수집

 

1. 시스템 정보수집 : 분석의 기본

- SW, HW, 네트워크 정보수집

- cpu,memory,network,disk 등 장치 및 kernel 정보

- 리소스 사용량

 

2. 특정시점의 자원/상태 정보 : 정적 데이터, snapshot, dump

- 힙메모리 덤프 : kill -10 <pid>

- 쓰레드 덤프 : kill -3 <pid>, /data/anr/traces.txt

- App 상태 정보 : dumpsys

- Device 상태 정보 : dumpstate

- 무선연결 정보 : DDMS > Dump radio state

 

3. 시스템의 활동상태/이벤트 정보 : 동적 데이터, tracing, monitoring

- 이벤트 로그(히스토리 분석) : logcat

- 실행 기록(동적활동 추적) : DDMS > Start Method Profiling

- 리소스 모니터링 : vmstat, top, ...

 

 

문제의 사전예방

 

    FindBugs : 잠재된 소스오류 검출

    JUnit : 단위 테스트

    Monkey : 스트레스 테스트, 랜덤 이벤트 발생

    Best Practice 준수


저작자표시 비영리 변경금지 (새창열림)

'Android Development' 카테고리의 다른 글

내부 로그 확인 및 저장 어플리케이션.  (0) 2012.02.09
Android Fragment  (0) 2011.12.05
LAN Search PRO  (0) 2011.11.30
Android Application Crash Report for Android.  (0) 2011.10.18
[envsetup.sh] Linux 환경 하에서의 Android envsetup.sh 활용.  (0) 2011.09.29
'Android Development' 카테고리의 다른 글
  • 내부 로그 확인 및 저장 어플리케이션.
  • Android Fragment
  • LAN Search PRO
  • Android Application Crash Report for Android.
fogthegreat
fogthegreat
아주 오랫동안 이것 저것 개발하면서 배우고 찾아 본 것들을 적거나 모았습니다. 불편한 점이 있다면 알려주세요. (과거에 불펌한 글들을 모두 제거하고 있는 중이에요. 🙏)
  • fogthegreat
    꿈소년의 개발 이야기
    fogthegreat
  • 전체
    오늘
    어제
    • 전체보기 (242)
      • Software Engineering (56)
      • Android Development (78)
      • 일상다반사 (63)
      • 책에 대한 거의 모든 것 (11)
      • 영어공부 (1)
      • ETC (0)
      • 챌린지 (1)
      • Do it 스터디! (32)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 향로
    • 청하가 제안하는 소프트웨어 엔지니어로써 재미있게 사는 …
    • WhoRU? Story...♡
    • Snapshot
    • 두잇! - 이지스퍼블리싱
    • 제이펍의 참 똑똑한 2비트 책 이야기
    • Inpa Dev
  • 공지사항

  • 인기 글

  • 태그

    java
    ActiveX
    css
    OOM
    구글
    html
    C++
    linux
    개발
    google
    build.gradle
    JavaScript
    git
    자바
    gradle
    Android
    리눅스
    안드로이드
    탐지기법
    노개북
    안철수
    Eclipse
    안드로이드 개발
    js
    hcj
    Android 4.1
    하버드
    보안
    코틀린
    kotlin
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
fogthegreat
SW 문제해결 접근방식
상단으로

티스토리툴바