신입사원을 대상으로 어떻게 하면 빨리 일을 맡길 수 있을까에 대해서는 정답이 없긴 하다. 저자들의 고민이 많았을 책이다. 나도 몇 번 후임을 받았지만 매번 고민이 있었다. 어느 만큼 가르치고 어느 만큼 헤매게 할까에 대해서는 속한 조직의 상황과 신입의 배경지식에 따라 다를 수 밖에 없다.
때문에 자바를 사용하는 조직에서 이 책을 OJT 교재로 사용한다면 더할 나위가 없겠다. Java라는 언어에 대한 개요, 자료형, 기본문법, 객체지향 개념과 구현에 이어 최근에 추가한 제네릭과 람다식을 다룬다. 자바의 역사는 짧지 않기에 기본 제공하는 라이브러리가 많으므로 이를 활용하는 방법과 함께 다운로드 받아 사용할 수 있는 외부 라이브러리를 소개한다. 자바 개발자로서 구글링으로 성장할 수 있는 기반을 닦아 줬달까? ☺ 이 과정을 통해 정말 중요한 개발도구인 이클립스의 사용법도 익히게 된다.
기초 과정 다음으로 데이터베이스가 나와서 살짝 놀랐다. 보통 파일 처리 아니었나 싶은데 아무래도 최근 경향으로는 DB를 먼저 익히는 게 실전 투입이 빠르긴 하겠다. 데이터베이스를 다루며 단순히 select, insert만 하는 게 아니라 어지간한 데이터베이스 교재의 개요만큼은 설명하며 ORM까지 다뤘다. 길지 않게 다뤄서 이것만 가지고 이해할 수 있을까 하는 생각이 들긴 했는데, OJT 목적을 감안하면 별 수 없겠다. 친절하게도 이클립스 안에서 관련 라이브러리를 검색해서 설치하는 내용도 빠짐 없이 나와 있다.
텍스트 입출력 장에서는 기본적인 파일 처리를 말하고 CSV, XML, 로그를 다룬다. 이전의 자바 기초교재처럼 고작 Hello world 같은 문자열을 읽고 쓰기만 한다면 시시할 텐데, 당장에 업무에 쓰일 기능을 익히니 다소 진도가 빠르더라도 보람은 있을 구성이다. JSON을 다뤘으면 더 좋았을 텐데 XML에 대한 과정을 익혔으면 JSON을 불러 쓰는 건 어렵지 않겠다.
이렇게 응용을 다루다가 다시 한 번 자바 심화과정에 들어간다. 한 번 읽어 보니 저자들이 멀티 스레드 처리를 다룬 취지를 알 듯했다. 당장 신입 수준으로 써먹지는 못하겠지만, 이런 개념이 있으니 알아 두고 선배들이 만든 소스를 이해하도록 하되, 최신 기능은 이러저러하니 까먹지 않길 바란다는 정도려니 싶다.
이후의 내용은 상용 개발 협업에 절대적으로 중요한 테스트와 개발 소스 버전 관리, 작업진척 및 이슈 관리, 자동화(CI)다. 각 주제로 두꺼운 책이 나올 정도로 심오한 주제들이지만 OJT하기 좋은 수준으로 다뤘다. 좋은 선배라면 이 책과 기존 산출물을 두고 생동감 있게 설명해 줄 만하다. Git을 다룰 만도 한데 SVN만 얘기하여 약간 아쉬웠다.
이 책으로 실무 자바를 독학하려는 사람들에게 당부하고 싶은 말이 있다. 대상독자에 '자바를 전혀 경험해보지 않은 사람'이라는 항목이 있긴 해도 아예 프로그래밍 초짜는 이 책을 쫓아가기 힘들다. 그전에 C나 PHP 같이 다른 언어로 파일과 DB를 읽고 썼던 사람이면 더할 나위 없아 좋고, 최소한 구구단이라도 짜 봤던 사람이 대상이라는 얘기다. 어디 국비지원 과정 같은 걸 찾아 3~5일 자바 교육과정을 들어 보길 바란다. (행여 스프링 프레임워크나 스트러츠 프레임워크 과정을 듣지는 말고 자바 기초 과정을 찾으시라.)
어느 정도 소양을 갖춘 후에 이 책으로 독학하기는 나쁘지 않다. 다만 소양이 있어도 군데 군데 헤맬 부분이 나온다. 머리 속에 별 이정표가 없는 채로 이 책을 따라 하다 보면, 자바를 배우는 건지, 이클립스를 배우는 건지, 메이븐을 배우는 건지, 뭘 하는 건지 혼란스러울 수 있다. 그런 때에 좌절하지 말고, 해당 개발 소스를 일독한 후에 일단 넘어가도 좋겠다. 자바를 머리에서 아예 놓지만 않으면 나중에 자연스럽게 이해가 될 거라고 단언한다.
신입이라면 좋은 선배를 만나길 바라고, 독학자들은 용기와 끈기를 갖길 바란다. 화이팅.