지난 주말 (2012년 5월 20일) 코엑스에서 스마트 개발자 협회가 주관하는 글로벌 커뮤니티 써밋에 EVA 커뮤니티 연사로 발표를 했습니다.
먼저 이번 발표에 많은 도움을 준 소프트웨어 마에스트로 멘티인 오유환, 강미경, 김나래, 손윤정 4 멘티에게 감사드립니다. 이 4명이 아니였다면 이러한 좋은 자료는 나오지 못했을 겁니다.
프리젠테이션이 다루는 내용은 다음과 같습니다.
Android 이해
- 구글이 꿈꾸는 Android의 미래 (Modu 사 특허 인수와 Android@Home)
- Binder ( Broker 패턴 )과 Intent
오픈소스 그리고 사례
- Simple Framework
- Logcat보다 Microlog4Android
- 불편하지 않은 화면 갱신 (Publisher-Subscriber)
분석 방법
- Localytics로 사용자 행동 패턴 분석
- STAN을 이용한 Android App 분석방법
이번 발표는 소프트웨어 마에스트로 멘토로 활동하면서, 멘티들과 같이 만들어 낸 작품입니다. 비록 여러가지 상황(취업, 학업등)으로 모든 멘티가 다 2단계에 진출은 하지 못했지만, 지금도 열정을 내뿜으며 같이 성과를 만들어내고 좋은 팀웍을 유지하고 있습니다.
지표란 직접 경험을 하지 않아도 현재의 상황을 알수 있는 도구를 말합니다. 옛날 제주도에서는 식수가 귀해 빗물을 식수로 사용을 했습니다. 빗물의 오염도를 파악하기 위한 지표로, 개구리 (숫놈끼리만 넣거나, 암놈끼리만 넣거나)들을 넣었다고 합니다.
개구리 들이 벌레들을 잡아먹어 물이 항상 청결한 상태를 유지할 수 있었으며, 또한 개구리의 생존 여부로 물 오염도를 파악을 할수 있기 때문입니다.
일전에 소프트웨어 품질을 판단하는 지표로, 1000 피트의 뷰 라는 글을 소개해 드렸습니다. 너무 상세하지도 않고, 너무 추상화되어 있지도 않은 그 사이의 뷰를 1000 피트의 뷰라고 불렀습니다.
이러한 지표중 하나로, 예전 저의 포스트에서 Dependency Structure Matrix (DSM) 을 소개해 드렸습니다.
이번 포스트는 이러한 연장선상으로 Clean Code로 유명하신 Robert C. Martin (줄여서 Uncle. Bob)님이 만드신 Instability/Abstractness Graph 하나를 설명해 드리고자 합니다. (이 그래프에 대해 국내에 명확하게 소개된 자료가 없어서, 꼭 여러분에게 공유를 해드릴려고 합니다. )
이 포스트를 읽기 이전에 Bob 삼촌이 발표하신 패키지 구조의 원칙들(Principles of Package Architecture) 을 읽어보시거나, 또는 저의 이전 포스트인 Dependency를 관리하는 방안 을 읽어보시길 바랍니다.
Uncle Bob의 지표는 Instability와 Abstractness 두 개에 대해 이해를 하셔야 합니다. 물론 여기에 추가적인 지표를 더한 변종(Variant) 들도 있지만, 이 두 가지 개념을 확실히 이해하실 필요가 있습니다.