코딩 호러가 들려주는 진짜 소프트웨어 개발 이야기국내도서저자 : 제프 앳우드(Jeff Atwood) / 임백준역출판 : 위키북스 2013.11.28상세보기StackOverflow의 그분께서 쓰신 책으로, 익히 잘 알려진 Coding Horror 블로그의 글을 엮은 책이다. '코딩 호러의 이펙티브 프로그래밍'이라는 책이 먼저 나왔는데, 그쪽은 좀 더 전문적인 글이고 이 책은 가볍게 읽을 수 있는 다양한 주제를 담고 있다.저자는 어떤 주제에 대해 항상 다른 시각으로 접근해 보려는 것 같다. 많은 에피소드들이 그러한 내용을 담고 있고, 그중 229페이지에 나와있는 열 개의 '무시무시한 아이디어'는 참 흥미롭다. 사람들의 직관에 어긋나는 요소들을 추출하여 StackOverflow를 만드는데 기반이 되는 원칙을 ..
가장 빨리 만나는 자바 8국내도서저자 : 카이 호스트만(Cay S. Hortsmann) / 신경근역출판 : 길벗 2014.05.19상세보기지난번 Yes24에 "소프트웨어 장인"책의 서평을 남기고 나서 출판사로부터 우수 서평으로 선정되어 책을 한 권 받았습니다. 책을 골라달라고 하여 이 책인 "가장 빨리 만나는 자바 8"을 골랐고 시간이 한참 지났지만 이제야 다 읽게 되었습니다.책 크기는 크지 않았습니다. 소설책만 한 판형에 장수도 250쪽 수준이라 부담스럽지 않아 좋았어요. 크기에 비해 내용이 만족스럽고 예제도 풍족하였습니다. 자바 8의 중요한 변경점인 람다와 스트림에 큰 할당을 하고 있지만 병행성 부분이나 Nashorn 자바스크립트엔진 등 기타 다양한 이야기들도 놓치지 않고 담고 있었습니다. 또한 Ja..
제가 사용하는 Bash shell alias를 공유합니다. 사용하는 리눅스 시스템에 맞춰 변경이 필요한 것도 있고 그렇습니다.alias vi='vim'alias c='clear'alias ll='ls -l'alias la='ls -A'alias l='ls -CF'alias dir='ls -al'alias lh='ls -lh'alias l='ls -CF'alias edb='vi ~/.bash_aliases'alias cd..='cd ..'alias ..='cd..'alias rd='rmdir'alias md='mkdir'alias cp='cp -i'alias mv='mv -i'alias rm='rm -i'alias tarc='tar czvvf'alias tarx='tar xzvvf'alias psa='ps..
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 : 다양한 기기, 사용자들의 물리..
안드로이드(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..