2011. 1. 20. 07:32

Java 프로그래머를 위한 추천 도서

여기서 말하는 Java 프로그래머는 Android 와 GWT 프로그래머를 포함합니다.
Head First Java 는 Java 개발을 시작하는 분께 추천 하는 책입니다.
Java 에서 말하는 객체에 대해 잘 설명하고 있고, 어떻게 객체 지향적인 프로그래밍을 하는지 소개합니다. 

이펙티브 자바는 Java 로 상용 어플리케이션을 만드시는 분께 권합니다.
Java 프로그래머로서 반드시 알아야 하는 내용이 잘 정리되어 있습니다.
저는 책상 위에 두고 필요할 때마다 참고하는 책입니다.
내용 요약은 여기를 참고하세요

이펙티브 자바에 간단하게 패턴에 대한 내용이 있지만, 디자인 패턴은 Head First Design Patterns 로 제대로 공부하시는 것을 권합니다.
디자인 패턴을 알아두면 설계에 많은 도움이 됩니다.
단점! 디자인 패턴을 알게 되면 디자인 패턴을 모르는 프로그래머와는 함께 일하는 것이 피곤해 집니다.

* 일반적인 오픈소스 컴포넌트 *

Jakarta Commons Cookbook (Paperback) - 10점
Timothy M. OBrien 지음/OReilly(오라일리)
Commons 는 Java 개발자가 즐겨 사용하는 오픈소스 컴포넌트 입니다.
Commons 가 제공하는 기능 정도는 알아두는 것이 좋습니다.
Apache(또는 Jakarta) Commons 공식 홈페이지: http://commons.apache.org

* 빌드 *

Java 로 작성된 어플리케이션은 메이븐이나 앤트와 같은 툴을 사용해서 빌드합니다.
Maven : Sonatype이 만든 Maven 핵심 가이드 - 8점
팀 오브라이언 지음, 장선진 옮김/지&선(지앤선)
메이븐은 Java 로 작성된 어플리케이션을 빌드하는 툴중 하나입니다.
Java 프로그래머라면 메이븐이 뭔지는 알아둡시다.
메이븐 공식 홈페이지: http://maven.apache.org/

Ant in Action (2nd, Paperback) - 8점
Loughran, Steve/Oreilly & Associates Inc
앤트는 좋은 한글 책이 없어서 원서를 링크합니다.
앤트 공식 홈페이지: http://ant.apache.org/

앤트와 메이븐을 함께 알아 두면 금상첨화입니다.

* 로깅 *

로그는 로그백을 사용하여 남기도록 합시다.
로그백 공식 홈페이지: http://logback.qos.ch/

Pro Apache Log4j (2nd, Hardcover) - 6점
Gupta, Samudra/Springer-Verlag New York Inc
로그백에 대한 책은 아직 출판이 되지 않았지만,
로그백의 전신인 log4j 에 대해 공부해 두면 로그백을 사용할 때도 크게 어렵지 않을 것입니다.


* DB *

모바일 어플리케이션을 제외하면, 대부분의 Java 어플리케이션은 Hibernate 이나 MyBatis(또는 iBatis) 와 같은 프레임워크를 사용하여 DB 에 접근합니다.
Hibernate 이 세계적으로 많이 사용되고, 한국에서는 MyBatis 를 더 많이 사용합니다.

하이버네이트 완벽 가이드 - 8점
크리스찬 바우어 & 개빈 킹 지음, 박찬욱.백기선.이대엽 옮김/위키북스
Hibernate 공식 홈페이지: http://www.hibernate.org/

iBATIS 인 액션: 쉽고 강력한 SQL 매핑 프레임워크 아이바티스 - 8점
클린턴 비긴.브랜든 구딘.래리 메도스 지음, 이동국.손권남 옮김/위키북스
MyBatis 공식 홈페이지: http://www.mybatis.org/

두 프레임워크는 전혀 비슷하지 않기 때문에, 필요한 것만 알아두시면 됩니다.

* Q *

엔터프라이즈 어플리케이션은 DB 뿐 아니라 Q 도 많이 사용합니다.

오픈소스 Q 로는 ActiveMQ 가 좋습니다.
ActiveMQ 공식 홈페이지: http://activemq.apache.org/

Camel in Action (Paperback) - 8점
Ibsen, Claus/Oreilly & Associates Inc
ActiveMQ 는 Camel 프레임워크와 함께 사용하면 최고입니다. 
Camel 공식 홈페이지: http://camel.apache.org/

* 분산 처리 *

Hadoop 완벽 가이드 - 10점
톰 화이트 지음, 심탁길.김우현 옮김/한빛미디어
분산 처리가 필요하면 하둡을 사용합시다.
하둡 공식 홈페이지: http://hadoop.apache.org/

* 검색엔진 *

루씬 인 액션 - 10점
에릭 해쳐.오티스 고스포드네티츠 지음, 이문호 외 옮김/에이콘출판
루신은 검색엔진 라이브러리 입니다.
루신 공식 홈페이지: http://lucene.apache.org/

* 웹 어플리케이션 *

Java 로 웹 어플리케이션을 개발하는 분들 께 단 한권의 책을 추천하라고 한다면 Head First Servlets & JSP 를 추천하겠습니다. 
Java 웹의 핵심인 Servlet 과 리퀘스트, 리스판스, 세션 등에 대해 잘 설명되어 있습니다.

웹 서버를 개발한다면, 스프링이나 스트러츠 둘 중 하나는 알아둡시다.
클라이언트를 개발한다면 HTML Javascript CSS 는 필수, 옵셥으로 JQuery 나 Ajax 를 할 수 있겠죠.
서버너 클라이언트 모두 GWT 를 보는 것도 좋습니다.