실무에서 바로 통하는 자바 (Java 8 대응) - 당장 현장에 투입된 초보 개발자를 위한
다케다 하루키 외 지음, 김성훈 옮김 / 한빛미디어 / 2017년 7월
평점 :
절판


추천하고 싶은 사람 

* 다른 프로그래밍 언어를 사용해 본 경험이 있는 사람

* 자바 개발자로서 커리어를 시작하는 사람

* 자바또는 다른 프로그래밍 언어를 기본 이상 사용하며, 실무에서 사용되는 데이터베이스, 쓰레드, 테스트, 협업에대한 기초지식을 얻고 싶은 사람

* 자바 네트워크, 안드로이드 등 세부 전문 영역으로 들어가기 전에 자바 기초를 비롯해 자바 개발 기본 사항을 알고 싶은 사람 



추천하고 싶지 않은 사람

* 프로그래밍이 처음인 사람

* 수준급의 자바 사용자

* 자바 네트워크에 대해 궁금한 사람



 

제가 만약 자바 개발을 하던 중, 막 입사한 신입 후임을 받아들인다면 추천해줄 첫번째 책이 될것 같습니다. 특히나 자바 사용 경험이 없거나, 자바 사용이 익숙하지 않다면, 더욱 그러할 것입니다. (자바 사용 경험이 없고 적은 것이지, 프로그래밍 자체를 처음 해본 사람을 의미하지는 않습니다.) 이 책은 프로그래밍 입문서가 아닙니다. 신입사원을 교육한 개발자들이 다른 프로그래밍 언어에 꽤나 경험이 있어 기본적인 용어들에 익숙하며, 컴퓨팅 사고력도 충분한 상태에서 빠르게 자바에 대한 지식만을 얻어 실무에 투입될 사람을 위해 쓴 책입니다.  처음 프로그래밍을 공부하는 사람이 읽는 다면 첫장부터 멘붕이 올 수도 있습니다. 그리고 완전한 책도 아닙니다. 실무 자바에 대한 첫 운을 떼기 좋은 책이지 이 책을 읽고 "좋아 실무일을 다할 수 있어"라고 생각하면 큰일납니다.

이 책의 장점은 필요한 내용들을 핵심 중심으로 간결하게 설명한 다는 것입니다. 빠르게 자바에 대한 기본사항을 습득하고 실무에 투입되어야 하는 입장에선 처음 보기에 이만한게 없으리라 생각됩니다. 하지만 다르게 말하면 이는 충분히 많은 내용을 담고 있지 않다는 이야기도 합니다. 두번째로 실무중심입니다. 자바 입문서 중에서 Logging class를 소개하는 책이 많지 않습니다. JDBC, JPA를 다루지도 않지요. Document도 그러하구요. 자바의 변수 선언으로 시작해서 책 중반부에 이러한 내용이 다뤄지고 마지막 두 장이 각각 테스트와 팀개발인 것은 이 책이 철저히 실무를 위해서 쓰인 책이란 것을 보여줍니다. 

책의 목차를 읽으신 분은 저를 비롯해서 아마 바로 이 생각을 하시리라 생각합니다. "왜 네트워크가 없지?" 이는 분명 한국 자바 생태계에서 꽤나 치명적인 부분이라 생각이됩니다. 아마 책의 기획 의도가 자바 웹 개발, 안드로이드, 데스크톱 앱 등등 여러 세부 전문 분야로 들어가기 전 읽어볼 책으로 기획 된 것이 아닐까 싶습니다. 이 책을 배우고 나서, 자바 네트워크를 학습하거나, FX를 공부해 데스크톱 앱을 만들거나, 안드로이드를 공부해 안드로이드를 배우면 될 것 같습니다. 특히 안드로이드를 학습하기 전에 자바를 해본 적이 없다면, 이 책을 읽고 안드로이드를 학습하면 딱 좋을 그런 책입니다. (네트워크나 다른 분야도 그러합니다. 텍스트 입출력에 힘이 실린 만큼 요즘 많이 이야기 되는 자바를 이용한 데이터 사이언스에도 어울릴거라 생각됩니다.)


구성은 자바 기초, 프로그래밍 기초, 데이터베이스, 텍스트입력/출력, 스레드, 테스트, 팀개발로 되어있습니다. 

자바 기초는 자바 기본 문법에 관한 내용입니다. 기본적인 연산, 조건문, 반복문, 클래스, 인터페이스에 대한 이야기에 제네릭과 간단한 람다까지가 첫 챕터에서 다뤄집니다. 컬랙션(List, Map, Set),Date, String format은 자바 기초 챕터에서 다뤄지지 않고 다음 챕터인 프로그래밍 기초에서 다뤄집니다. 

프로그래밍 기초는 주로 Java.util에 관한 내용입니다. 컬랙션, Date, Calendar, String util들이 주 내용이며, 안타깝게도 Arrays, Collections 등의 여러 util 클래스에 대한 내용까지 담지는 못했습니다. Calendar를 설명하는 부분에 Calendar가 싱글턴이라는 설명이 있는데, 이는 잘못된 정보로 알고 있습니다. 현재 한빛에 오탈자 등록을 해뒀습니다. (제가 알기로는 팩토리 패턴으로 알고있습니다. Calendar는 추상클래스이고... Calendar가 싱글턴이될 수 있을리가...)

데이터베이스....이 챕터는 너무 마음에 들었습니다. 우선 역시 일서 답게 PostgreSql을 다룬다는 것 (코끼리 짱짱)그리고 쿼리 설명을 너무 쉽고 간결하게 해뒀다는 것입니다. 저자가 5 분인데,  데이터베이스 쓰신 분이 PostgreSql책도 써주시면 너무 좋겠네요...있다면 번역해주세요 한빛님. 여기에 있는 내용이 당연히 전부는 아닙니다만, 이정도라면 다른 관계형데이터베이스 서적을 학습할 때 나름 수월하게 할 수 있지 않을까 생각합니다. PostgreSql에 대한 설명 이후에 자바에서 데이터베이스를 사용하기 위한  JDBC, JPA를 다룹니다. 기초적으로 활용할 수 있게 기본 조작법을 설명합니다.

텍스트 입력/출력은 IO에 관한 내용이며, 일반적으로 ByteStream으로 시작하지 않고, Reader/Writer로 시작해서, XML을 위한 Document로 끝납니다. 그래서 입력/출력이 아닌 텍스트 입력/출력인듯 합니다. 개인적으로 이러는 편이 더 실무 중심이라고 생각합니다. 아쉬운점은 요즘 많이 뜨는 JSON에 대한 내용이 없다는 것입니다. 

스레드 편은 매우 기초적인 수준의 스레드를 다룹니다. syncronized()로 락을 거는 정도와 스레드 풀에 대한 설명이 사실상 전부입니다. Java8을 의식해서인지 ParellStream이 마지막을 장식하는데, 차라리 스레드 스케쥴링에 대한 이야기를 하는 편이 더 실무적이지 않았을까 싶습니다.(sleep yield wait가 없는 스레드 설명이라...)

테스트는 실무서답게 다른 장에 비해 상당히 디테일합니다. 일단 테스트의 정의와 필요이유부터 설명합니다. 다른 챕터에 비해 상당히 많이 공을 드렸습니다. 단순히 Junit에 대해 설명하는 정도일거라 생각했는데 테스트 설계에 대한 내용까지 상당히 많은 부분을 다루고 있다고 생각됩니다. 하지만 간결함을 미덕으로 하는 책인지라, Junit에 대해서는 정말 기본중 기본만을 다룹니다. 그나마 assertThat은 다루지만, hamcrest는 한 페이지도 되지 않습니다. 결론적으로 예상값과 결과값이 같은 케이스만 테스트 하는 정도의 테스트 코드만을 설명합니다.  하지만 DBUnit이라던가 static test를 위한 findBug를 소개하는 것을 보면 역시 이 책은 방대한 자바 생태계에 입문하는 실무자를 위해 운을 떼주는 것에 최적화된 책입니다. 

마지막장은 팀 개발입니다. 이 챕터 도입부분은 상당히 공감되었습니다. 특히 잘 달아 놓았다고 생각한 주석이 자신이 작성한 주석이었다는 필자의 경험담이 그러했습니다. 저 역시 1인 개발자에 가까워 딱히 협업을 하는 것은 아니지만, 그래도 과거의 나 그리고 미래의 나와 협업한다고 생각하며 작업하기에 많이 공감되는 부분이었습니다. 당연히 버전관리를 다루는데 특징으로 툴로써 Git이 아닌 중앙집중형 Subversion이 다뤄진다는 것입니다.

신입사원을 교육한 저자들이 쓴 책이라 확실히 회사에 첫 입사한 개발자에게 매우 잘 어울리는 책이라 생각됩니다. 특정 주제를 깊이 파는 것이 아닌 소개서에 가까운 책이며, 필요한 부분을 인지하고 찾아서 학습할 수 있도록 길을 터주는 느낌입니다. 



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo