2014년 5월 31일 토요일

Android 개발자로 일하기 위해서 필요한 지식들

한동안 안드로이드 앱 개발자로 일하면서 생각했던 단계별로 필요한 지식들, 안드로이드 개발을 막 시작한 부사수가 있다면 이런 과정을 거치도록 유도할 것이라고 생각했던 것들입니다.

1단계 - 아직 일 못 맡기지만 좋은 시작

2단계 - 간단한 작업은 맡겨도 됨

  • UI thread를 이해할 것
  • race condition, deadlock, visibility 등을 이해하고 위의 세 가지 문제가 없는 AsyncTask를 작성할 수 있을 것.
  • 코딩 원칙 체화 - 디자인 패턴, SOLID, 메소드 짧게 짜기, 한 메소드 내에서 각 statement 들의 추상화 정도가 비슷한 수준을 유지하게 하기 등등
  • Activity, Service의 라이프사이클을 이해하여 이 부분에서 문제가 되는 해괴한 코드를 짜지 않음. (static 변수에 의한 leakage예시가 대표적)
  • http://developer.android.com/guide/index.html 에 있는  내용을 대체로 숙지

3단계 - 같이 일하기 즐거운 동료

  • LOGCAT, adb shell top, hprof, 프로파일러 등등을 이용해서 메모리 사용, CPU-배터리 사용을 최적화할 수 있음
  • Mark and Sweep 을 이해하고, Activity 내의 static 변수가 발생시킬 수 있는 과도한 메모리 사용, 비트맵의 recycle() 이슈 등 이미 잘 알려진 메모리 관련 이슈들을 알고 있음.
  • 최신 유행하는 오픈소스 라이브러리 동향을 파악하고 있음. 이미지 로더 짜놓고 나서 volley를 발견한 멍청하고 아픈 과거가 있음.
  • jni 를 이용하여, 네이티브에서 자바 오브젝트와 메소드을 접근하여 사용할 수 있음

4단계 - 내가 배워하는 분들

  • Android 내부를 잘 이해하여 zygote, Binder 등을 막힘 없이 설명할 수 있음.
  • aidl을 활용함
  • GC의 동작 특성을 이해하여 locality를 고려한 코드를 짤 수 있음

댓글 없음:

댓글 쓰기