한빛미디어
번역서
절판
단언컨대 이 책은 세상에서 가장 재미있는 자바 책입니다. 왜냐하면, 숙련된 개발자마저 무릎을 탁 치게 하는 97가지 퍼즐로 자바를 배우기 때문입니다. 이 책이 담고 있는 퍼즐을 풀다 보면 자바 언어와 표준 라이브러리 곳곳에 도사리는 위험과 미묘한 함정들을 이해하고 피해갈 수 있게 됩니다. 물론 퍼즐은 우리가 언제든 겪을 수 있는 내용을 담고 있어 유용함을 굳이 강조할 필요가 없을 정도입니다.
※ 이 책의 자바 버전
이 책은 2005년 자바 5 시절에 집필되었습니다. 하지만 자바 8이 발표된 지금도 유효하고 자바를 더 잘 활용하고자 하는 개발자에게 여전히 유용하기에 복간하게 되었습니다. 자바 8에서 이 책의 모든 소스 코드의 동작을 확인했습니다. 따라서 이 책의 본문에서 사용한 '자바 5에서'라는 표현을 '자바에서'로 대체해 이해해도 좋습니다.
이 책은 자바 프로그래밍 언어와 핵심 라이브러리 관련 퍼즐로 구성되어 있습니다. 자바 관련 지식이 있는 독자라면 이 책의 퍼즐을 이해할 수 있을 것입니다. 물론 그중엔 상당한 수준의 자바 개발자도 풀기 어려운 퍼즐도 있습니다.
퍼즐 대부분은 A라는 일을 하는 듯 보이지만 B라는 일을 하는 프로그램입니다. 어떤 일을 하는지 알아내는 것이 독자가 해야 할 일입니다. 퍼즐을 풀 때는 다음과 같은 방식으로 접근하기 바랍니다.
1. 퍼즐의 프로그램을 살펴보고 고민해 보세요. 일단 컴퓨터로 돌려보지 말고, 어떤 결과를 출력할지 예측해 보세요. 함정이 보이지 않는다고 해도 시간을 두고 고민하기 바랍니다.
2. 프로그램이 무엇을 출력할지 예측했다면 실행해 보세요. 생각했던 대로 작동하나요? 그렇지 않다면 왜 그런지 설명할 수 있도록 고민해 보세요.
3. 프로그램이 잘못 작성되었다고 가정하고, 어떻게 고쳐야 할지 고민해 보세요.
4. 위 과정을 모두 진행했다면 해답을 읽으세요.
문제를 풀었다고 해도 해답은 읽기 바랍니다. 해답에는 프로그램이 어떻게 작동하는지를 넘어서 자세한 분석과 설명이 들어 있기 때문입니다. 또한, 퍼즐에서 추가로 발생할 수 있는 함정을 설명하고, 어떻게 이런 함정을 피할 수 있는지 설명합니다.
부록에는 자바 플랫폼의 함정을 정리했습니다. 즉. 책에 나오는 퍼즐을 분류해서 설명했습니다. 부록은 이 책의 퍼즐을 모두 풀기 전까지는 읽지 마세요. 부록을 먼저 읽어 버리면 퍼즐을 푸는 재미가 사라질 것입니다. 부록은 책을 모두 읽고 나서 참고 자료로 사용하세요!