자바 개념서를 놓고 볼때는 전체적으로 깔끔하게 필요한 부분을 놓치지 않고 있다는 느낌을 받았다..
대부분의 초심자들이 원하는 개념서는 구차하게 늘어놓은 장황한 개념보다는 당장 "이럴때는 이렇게 쓰고, 이거는 이래서 안돼고, 이럴때는 이렇게 하면 안된다" 하는 식의 주입식(?)의 필요한 API식의 설명이 필요할 수도 있다고 생각한다.
물론 기초가 튼튼해야 한다는 말은 두말할 필요가 없겠지만 사실 그런 장황한 개념서는 오히려 초심자에게 책에 먼지만 쌓이게 하는 것이라고도 생각된다.
그런 면에서 이 책은 예제가 많이 부족한 느낌을 주기는 하지만 중요한 개념은 빠뜨리지 않은채 그 개념을 쉽게 이해하도록 예제도 적당한 편이라고 생각된다.
자바 책으로 6번째 산 책입니다.
예제가 없어서 흠이지만 이 책 저 책에서
어리둥절하던 내용이 좀 정리가 되는 듯 합니다.
자바에 많은 시간을 투자하고도
아직도 머가 먼지 잘 모르는 분들에게
(바로 저같은 사람들에게)
강력 추천하고 싶습니다.
예전에 비하여 자바를 공부하고자 하는 이가 부쩍 늘어난 것을 체감한다. 많은 기업들이 기업환경을 웹으로 전환하거나 CRM 등의 고객관리 시스템을 구축하면서 자바 인력을 상당히 많이 필요로 하고 있고, 최근에는 모바일기기 등에서도 자바인력이 턱없이 부족하다고 한다. 이런 분위기에 편승하여 수많은 인력들이 자바를 공부하려고 하지만 그 한계를 모르고 점점 커저만 가는 자바를 배우는 일은 그리 만만한 일이 아니다.
최근들어 수많은 자바 관련 책들이 범람하고는 있지만 필자의 관점에서 볼 때 대부분의 책이 지나치게 초급 위주로 짜여져 있거나 바이블류의 참고서, 레퍼런스서에 너무 치우쳐져 있다. 그래서 자바의 초급 수준에서 벗어난 후 중고급 수준으로 전향하는 데 도움이 되는 책이 거의 전무한 실정이다. 그러나 최근에 발간된 『제대로 배우는 자바2(Learning Java)』는 초급에서 중급으로 이전하는 작업을 도와주는 책이라 할 수 있다.
이 책은 자바 초급자, 혹은 타 프로그램 언어를 사용해 본 경험이 있는 사람을 대상으로 한다. 자바로써 프로그램에 처음으로 입문하는 독자는 이 책을 보기 전에, 양질의 초급서가 많이 시판되고 있으니 그 중에 한 권을 먼저 보기 바란다. 타 프로그램 언어에 경험이 있는 독자라면 큰 무리 없이 볼 수 있을 것이다. 또한 자바가 널리 알려지게 된 배경이 웹인 만큼 어느 정도 웹에 대해서도 알아두는 것이 좋을 것이다. (실제로 책에서도 웹 애플리케이션 프로그램의 양이 많다) 그러나, 이 책은 특화된 부분을 집중적으로 다룬 것이 아니라, 자바를 전반적으로 골고루 다루었기 때문에 특정부분 기술을 습득하기에 좋은 책은 아니다.
또한 이 책은 전반적으로 자바를 익히는 데 적합하게 쓰여졌기에 프로그램을 짜다가 중간 중간에 약간씩 참고하기 위한 책을 필요로 하는 독자보다는 "자바"를 공부하려는 독자에게 더 적합하다.
자바 2 SDK 1.3버전을 골고루 다루고 있다. 하지만 요즘 추세에 맞게 스윙에 지면을 많이 할애하고, 스윙 전에 사용되던(혹은 같이 사용되던) AWT 그래픽 패키지에 대한 설명은 거의 없다(상대적으로 다른 책에 비해 스윙에 할당된 페이지는 더 크다). 심지어 확장된 Applet 클래스인 JApplet 클래스를 사용한다(실질적으로 크게 다를 바는 없다).
책의 전반부는 자바 개발 도구 사용법과 자바의 배경지식, 기본적인 자바 언어의 특징을 다루고 있다. 위에서도 언급했지만 이 책은 초급자를 위한 책이 아니기 때문에 이러한 설명들은 그리 자세히 하지 않고 소개 수준으로 넘어가고 있다. 단순히 OOP의 개념을 이해하거나, 기억을 상기시키는 정도의 목적이 아니라면 이런 부분에 대해서는 다른 책을 보기를 권한다. 8장부터는 쓰레드를 시작으로 자바의 고급내용을 다루고 있다.
이 책의 특징적인 면을 들어보면,
9장에서는 다른 책에서는 쉽게 찾아보기 힘든 자바 유틸리티에 대해 설명한다. 자바 유틸리티 클래스는 얼핏 그냥 넘기기 쉽지만 알아두면 유용하게 활용할 수 있다. 11장에는 네트워크 프로그래밍으로 고급서에서 찾을 수 있는 RMI를 소켓과 함께 싣어 놓아서 좋은 참고가 된다. 13장부터 15장에 걸쳐서 설명하고 있는 스윙은 AWT가 빠진 만큼 그 빈자리를 메우기 위해 매우 충실히 설명하고 있다. 20장 애플릿에서는 애플릿을 어떻게 만드는가에 대한 설명보다는 애플릿 작동 원리와 플러그인, 디지털 서명과 같은 내용이 첨부되어 있다. 그 외에도 2D API, 자바 빈즈 등 기본적인 자바 2 SDK를 무리 없이 잘 소화하고 있다.
다른 바이블류의 책이 그러하듯 이 책 또한 방대한 자바 2 SDK를 거의 모두 다루고 있다. 하지만 여타의 바이블서과 비교되는 특징으로, 바이블서가 단편적으로 필요한 것을 찾아서 보는 참고서라고 한다면, 이 책은 순서대로 넘기면서 익혀가는 자습서라고 할 수 있다. 예제도 적절한 위치에 적절한 예제를 삽입하여 이해력을 높이고 있다. 하지만 여타의 오라일리의 책이 그러하듯 여기서도 완전한 예제는 거의 없고 단편적인 예제들이 주를 이루고 있다. 하지만 이 책을 읽는 독자층이라면 이 정도의 예제는 별 무리 없이 소화할 수 있을 것이라고 믿는다.
그리고 전체적으로 무리 없이 잘 번역되었다. 대부분 이해가 안간다거나 난해한 문장은 눈에 띄지 않았다. 다만 조금 딱딱한 느낌이 드는 문체는 독자가 쉬이 피로감을 느끼게 할 수도 있을 듯 하다.
다시 정리하자면, 이 책은 매우 훌륭한 책이다. 익히기 쉬운 부분은 간단하게 넘어가고 8장부터 시작하는 본격적인 내용에 중점을 둔 것이 매우 효과적이다. 아쉬운 점이 있다면 아무리 대세가 스윙으로 넘어간다고 하지만 AWT에 대한 내용은 거의 없고, 그에 따라서 AWT를 주로 사용하는 애플릿에 관한 내용이 너무 적다는 것이 흠으로 남는다.
- jstorm(www.jstorm.pe.kr) 3기 홍승돈(onlyone@nownuri.net)