먼저 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기를 구매하고, 읽어주신, 그리고, 읽고 계신 독자 여러분께 감사하다는 말씀을 드립니다.

이렇게 글을 올리는 이유는 책을 쓴 저자가 책을 읽는 여러분이 정확한 지식을 습득해야 한다고 생각하기에 책이 나온지 1년 3개월이 지난 지금 이렇게 글을 씁니다.(이렇게 갑자기 책에 대해서 이야기하는 것은 가장 아래에 적어 놓았습니다.)

먼저 제 책에 있는 몇몇 오류에 대해서는 손권남씨께서 자신의 블로그 http://kwon37xi.egloos.com/3733755 에서 잘 설명해 두었습니다. 여기서 제가 보기에도 완전한 문제라고 생각된 부분에 대해서는 2쇄 발행시 많이 수정하였습니다.

그런데, 가장 논란이 많은 부분은 역시 Collection관련 부분입니다.
물론 테스트를 제대로 하지 않았다는 점에 대해선 100% 인정합니다.
(http://agbird.egloos.com/4800620 에 있는 내용을 잘 읽어 보시면 도움이 되실겁니다.)

각각의  Map, Set, List, Queue 등은 자신의 용도에 맞게 사용해야만 합니다. 

그렇다면, 제가 책에 왜 Collection에 대해서 썼을까요?
잘못된 지식을 주기 위해서?
제 책에 안티하신 분들이 말씀하시는 잘못된 테스트 방법을 알리기 위해서 ?
모두 아닙니다.

사실 Collection은 일반 웹 프로그래밍을 할 때 성능의 관점으로 보았을 때 중요하지 않습니다.
하지만 만약 여러분들이 Batch 프로그램이나, WAS 등을 개발한다면 이야기는 완전히 달라집니다. 굉장히 중요합니다.
책을 보신분은 아시겠지만, 테스트 케이스는 적어도 만번 이상 반복 수행을 한 내용입니다.
일반 웹에서는 그렇게 많은 회수의 데이터 검색 및 처리를 해서는 안됩니다.
그렇게 몇만건의 데이터 처리를 하게 된다면 고객을 반드시 설득시키시기 바랍니다. 그건 Web이 아니라, Web의 껍데기를 하고 있는 C/S프로그램입니다.

책을 쓰면서 여러 자료를 수집하면서, 웹 상에서 어떤 Collection이 가장 빠르냐에 대한 논쟁이 일어난 부분을 많이 보았습니다.
그러한 논쟁은 웹 개발시에는 그리 큰 의미가 없다는 것을 알리기 위해서 쓴 부분 입니다.
그렇게 Collection의 성능이 걱정되신다면 구글 Collection을 쓰세요. 

다시 한번 책에 잘못된 지식을 전달한 점에 대해서 죄송하다는 말씀을 드립니다.

그런데, 지금까지 가만히 있다가 왜 갑자기 이런글을 썼을까요?
이번주 화요일에 사내에서 컨퍼런스가 있었습니다.
자바 성능과 관련된 부분이 있어 관심있게 듣게 되었습니다.
그런데, 사전에 컨퍼런스 자료를 검토하던중, 제 책이 잘못되어 있다고 되어 있는 부분을 발견하여
발표자에게 컨퍼런스 전에 메일을 드렸지만, 
메일을 보지 못하고 컨퍼런스를 진행하시더군요. - -;

그 발표자 분과는 컨퍼런스 후에 메일을 통해서 이야기를 하게 되었는데,
예전에 발표자와 다른 어떤 분이 Collection 부분 때문에 엄청 심하게 싸웠고,
그러한 문제 때문에 책에 대한 문제점을 세미나에서 다루었다고 말씀하시더군요.

제가 쓴 책 때문에 다툼까지 발생하리라고는 생각지도 못했습니다.
추후에라도 제가 잘못 쓴 부분 때문에 많은 분들이 다투지 않았으면 하는 생각에 글을 쓰게 되었습니다.

제가 완벽하지도, 똑똑하지도 않은 사람이지만,
성능에 때문에 고생하는 많은 분들을 위해서 쓰게된 책입니다. 조금더 성능에 대한 정확하고 심오한 정보를 얻고 싶으시다면, Effective Java를 반드시 읽어 보세요. 

그래도, 저도 사람인지라 깊이가 낮다. 일부분의 오류 때문에 잘못된 책, 믿지 못할 책이라는 평가를 보면 하루 종일 기분이 좋지 않더군요. 그래서 최근에는 검색을 잘 안해보고 있습니다. ^^:

지금은 "개발자도 쉽게 배우는 테스트와 테스트 툴 이야기(가제)"라는 책을 쓰고 있습니다.
이 책도 저번 책과 마찬가지로, 테스트에 대해서 잘 모르는 초급 개발자와 간단히 참조하기를 위한 중급 개발자분들을 위한 책입니다. TDD에 대한 심오한 이야기나 CI에 대한 깊은 이야기를 다루지는 않았습니다. 
단지, 그러한 단어가 무엇을 뜻하는지, 왜 해야하는지, 테스트라는 말만 들으면 스트레스를 받는 분들을 위해서 최대한 쉽게 쓰려고 노력하고 있습니다.
지금 쓰고 있는 책의 서문에도 써 놓았지만(나중에 출판사에서 그 내용을 뺄 수도 있습니다.), 
자신이 고급 개발자라고 생각하시는 그런 분들은 절대 제가 쓰고 있는 책을 사지 마세요.
그런 분들은 안읽으셔도 됩니다. (보시면 도움이 될만한 부분이 적어도 하나는 있겠지만...)

지금 쓰고 있는 책을 탈고하고, 출판을 한 이후에는
"자바 성능을 결정짓는 튜닝, 그 두번째 이야기"를 쓸 예정입니다.(목차는 거의 완성되었습니다.)
그 책은 성능에 대해서 깊게 쓸 예정이므로, 첫번째 이야기에 실망하신 분들은 기대하셔도 좋습니다.
두번째 책도 실망하시는 분들은 제가 어쩔 수 없죠. - -; 
단, 출판사와 계약 안하고 90% 완료한 상태에서 계약할 예정입니다. ^^;
(빠르면 내년 10월쯤 나올 것 같습니다. )

넋두리가 심했네요.

긴글 읽어 주셔서 감사합니다. 
Posted by tuning-java