Google IO 2014의 세션 중 하나로, 퍼포먼스 문제를 개발 문화로 만들어야 한다는 이야기를 하고 있다. 그래서 제목이 Perf(ormance) Culture이다. 인상깊게 본 것들이 많아 여기에 주요 포인트를 메모하고자 한다. 동영상은 아래에서 볼 수 있다.https://www.google.com/events/io/io14videos/711a595b-70ca-e311-b297-00155d5066d7퍼포먼스에 대해 항상 주목해야 할 세가지 주제Web 개발에 대해 포인트를 맞추고 이야기하지만 Android app에서도 동일하게 생각해볼 만 하다. 사용자가 접하는 것은 비슷하기 때문이다.Traffic statsdevices, geography, user journey : 다양한 기기, 사용자들의 물리..
뽀모도로 기법(Pomodoro technique)은 시간관리 및 집중력 향상 기법이다. 짧은 시간 집중하고 잠깐 쉬는 것을 반복하며 중간에 긴 쉬는 시간을 넣는 방식으로 시간을 관리하도록 한다. 이 집중 단위를 뽀모도로(영어로 Tomato)라고 하며 이 갯수를 세어 업무 당 사용한 시간을 알 수 있다.방법집중할 업무를 선정25분 타이머를 맞춤, 한눈팔지 말고 선정한 업무에 집중다른 일이 생각나거나 인터럽트가 발생하면 잠깐 기록해두고 원래 하던일을 계속, 만약 이 방해가 길다면 타이머를 세우고 처음부터 다시 시작알람이 울리면 작업 중단 후 기록5분 휴식다시 1번부터 시작4번의 반복 후 20~30분 정도의 긴 휴식을 가짐자세한 내용은 아래 링크를 참조http://pomodorotechnique.com/get..
안드로이드(Android)의 Fragment는 앱 개발에 항상 써 오고 있지만 왜 써야 하는지 이야기 해 보라면 잘 정리되지 않는다. 정리해 보도록 하자.장점 : 단점을 커버할 만한 몇가지 중요한 장점을 지니고 있다.디바이스 차이를 다루기 위해 태블릿은 커다란 화면을 가지고 있고 모바일에서 보여주던 그대로 보여줄 경우 넓은 화면을 제대로 활용하지 못한다는 느낌을 줄 수 있다. 때문에 이중 분할과 같은 형태로 카테고리 뷰와 컨텐츠 뷰를 보여준다던지 하는 방식으로 화면을 채워볼 수 있다. 이 때 사용할 수 있는 것이 Fragment이다. 간단히 말하자면 태블릿과 폰 간의 화면 크기 차이로 화면 영역을 Fragment로 분리하고 이를 조합하여 보여준다고 할 수 있다.화면 사이에 데이터 전달분리된 Activit..
TDD에서 개개의 단위 개발에 적용하는 방법론으로, 빠른 개발 + 빠른 피드백을 목표로 한다. 아래의 순서로 진행되고, 3번은 필요에 따라 하면 된다.Red - 테스트 케이스를 작성한다. 당연하게도 Fail이 발생한다.Green - 테스트를 통과하도록 빠르게 기능을 구현한다. YAGNI 원칙을 지킬 것.Refactor - 작성된 코드가 만족스럽지 않다면 리팩토링한다.이를 통해 얻는 것은 아래와 같을 것으로 생각된다.짧은 Cycle로 Feedback이 빨라진다.코드에 대해 판단하는 타이밍이 많아지게 된다. 계속적으로 리팩토링에 대해 고민하게 된다.기능이 동작하도록 재빨리 코드를 작성하고(폭탄돌리기 하듯), 편안한 마음으로 리팩토링을 한다.* YAGNI - You ain't gonna need it!필요 없..
4기가 이상의 메모리를 사용하여야 한다면 64bit OS를 선택해야 한다는 것은 많이 알려져있다. 그럼 얼마나 더 사용 가능할까?32bit 시스템은 2^32의 주소 공간을 할당할 수 있는데, 이를 통해 메모리 공간에 할당할 수 있는 양은 2^32 = 2^2 * 2^30 = 4 * 1024^3 byte로 환산되며. 즉 4GiB (지비바이트)가 된다.그럼 64bit 시스템에서는 어떻게 될까? 2^62는 어마어마한 수가 되는데, 2^64 = 2^4 * 2^60 = 16 * 1024 ^ 6 byte로 환산되며, 즉 16EiB(엑스비바이트)이다. 이론적으로 32bit 시스템보다 10억배 할당 가능한데, 수치상으로는 무한대라고 해도 상관없을 듯 하다. 그러나 OS가 64bit을 모두 주소에 할당하도록 해주지도 않고..
이클립스 쓰면 쓸수록 느려져서 답답해 집니다.버전업은 되는데 성능 개선이 이루어 지지 않는 점이 아쉽습니다.때문에 IntelliJ로 바꾸는 사람들이 늘어나고 있어요. 그런데 툴 바꾸는게 쉬운 일은 아니죠.10년이나 썼는데 말입니다. 땜질 처방으로 성능 향상 팁을 알아보고 있습니다.일단 자료 조사 한 것들만 리스팅 해봅니다. http://stackoverflow.com/questions/5660247/hints-to-improve-eclipse-performancehttp://wiki.eclipse.org/FAQ_How_do_I_increase_the_heap_size_available_to_Eclipse%3FFailed create java vertual machinehttp://chanyook.eglo..
검색한 결과를 링크합니다. SQLite performance tuning and optimization on embedded systems : 잘 정리되어 참고 할 만 하다.http://katastrophos.net/andre/blog/2007/01/04/sqlite-performance-tuning-and-optimization-on-embedded-systems/How do I improve the performance of SQLite? : 여러 건의 insert를 할 때 tuning한 내용을 잘 설명하고 있다. C 코드 부분도 있어 참고 할 만 함.http://stackoverflow.com/questions/1711631/how-do-i-improve-the-performance-of-sqlit..
Jelly Bean 업그레이드 테스트를 하는 도중 위젯이 계속 로딩중이고 로그에 오류가 나서 보았더니Broadcast할 때 FLAG에 Intent.FLAG_ACTIVITY_CLEAR_TOP 이 있어서 그랬습니다. Broadcast 할 때에는 FLAG_ACTIVITY로 시작하는 FLAG는 붙이지 말아야 합니다. 01-02 00:02:19.818: E/ActivityManager(672): Activity Manager Crash01-02 00:02:19.818: E/ActivityManager(672): java.lang.IllegalArgumentException: Can't use FLAG_RECEIVER_BOOT_UPGRADE here01-02 00:02:19.818: E/ActivityManager..