객체지향 프로그래밍과 자바를 완벽하게 배울 수 있는 HEAD FIRST JAVA 개정 2판. 이 책은 스레드, 네트워크 소켓, 분산 프로그래밍에 이르기까지 JAVA에 대한 모든 것을 담고 있다.
단순히 그냥 읽기만 하는 책이 아니라 게임도 해보고, 퍼즐도 풀어보고, 미스터리도 해결해보는 등 다양한 자바 프로그래밍을 체험해 볼 수 있다. 이 책을 보는 동안 닷컴 가라앉히기 게임 및 네트워크 드럼 머신 채팅 클라이언트 같은 진짜 자바 프로그램도 만들어 볼 수 있다. 또한 헤드 퍼스트 정신에 입각하여 풍부한 그래픽을 사용하는 접근법으로 새로운 내용을 빠르게 배울 수 있고, 오랫동안 기억할 수 있다.
저자소개
목차
서문 1. 껍질을 깨고:간단한 소개 2. 객체마을로의 여행:객체에 대해 알아봅시다 3. 네 변수를알라:원시 변수와 레퍼런스 4. 객체의 행동:객체의 상태가 메소드의 속성에 미치는 영향 5. 메소드를 더 강력하게:흐름 제어, 연산 등 6. 자바 라이브러리:전부 다 직접 만들어서 쓸 필요는 없습니다 7. 객체마을에서의 더 나은 삶:미래를 준비합시다 8. 심각한 다형성:추상 클래스와 인터페이스 9. 객체의 삶과 죽음:생성자와 메모리 관리 10. 숫자는 정말 중요합니다:수학, 포매팅, 래퍼, 통계 11. 위험한 행동:예외처리 12. 그래픽이야기:GUI, 이벤트처리, 내부 클래스에 대한 소개 13. 스윙을 알아봅시다:레이아웃 관리와 구성요소 14. 객체 저장:직렬화와 입출력 15. 연결하는 방법:네트워크 소켓과 멀티스레딩 16. 자로구조:컬렉션 및 제네릭 17. 코드를 배포합시다:패키지 제작과 배포 18. 분산 컴퓨팅:RMI와 서블릿, EJB와 지니 부록 A:마지막 코드 키친 부록 B:거의 본문에 들어갈 뻔 했던 내용 Top10
개정판! 무엇이 달라졌나!!!
1. 자바 5.0(타이거)에 맞춰서 달라진 내용을 전면 수정 보완했습니다.
2. 제네닉과 컬렉션 부분을 자세히 다루는 하나의 장을 추가했습니다.
상상을 초월하는 새로운 접근 방법으로 재미 두배! 실력 두배!
이 책은 객체지향 프로그래밍과 자바를 완벽하게 배울 수 있는 책입니다. 두뇌 친화적인 학습이론을 바탕으로 만들어진 이 책은 자바의 기초에서부터 시작해서 스레드, 네트워크 소켓, 분산 프로그래밍에 이르기까지, 거의 모든 것을 담고 있습니다. 무엇보다도 중요한 것은 객체지향 개발자답게 생각하는 방법을 배울 수 있다는 점입니다.
이 책은 그냥 읽기만 하는 책이 아닙니다. 게임도 해보고, 퍼즐도 풀어보고, 미스터리도 해결해보며 상상도 하지 못한 방법으로 자바를 체험할 수 있습니다. 이 책을 보는 동안 닷컴 가라앉히기 게임 및 네트워크 드럼 머신 채팅 클라이언트 같은 진짜 자바 프로그램도 만들어보게 될 것입니다.
헤드 퍼스트 정신에 입각하여 풍부한 그래픽을 사용하는 접근법 덕분에 새로운 내용을 빠르게 배울 수 있고, 오랫동안 기억할 수 있을 것입니다. 마음을 열고 다음과 같은 주제를 공부할 준비를 해봅시다.
• 자바 언어
• 객체지향 개발
• 애플리케이션 작성, 테스팅, 배포
• 자바 API 라이브러리 사용법
• 예외 처리
• 다중스레딩
• 스윙 GUI 프로그래밍
• 네트워킹, RMI, 소켓
• 컬렉션과 제네릭
지루함을 느끼고 싶다면 다른 책을 보세요. 하지만 정말 자바를 배우고 싶다면 꼭 이 책을 보세요. 헤드 퍼스트 시리즈가 어떻게 2003년, 2004년 2년 연속 아마존 편집자가 선정한 컴퓨터 서적 TOP 10에 오를 수 있었는지 직접 확인해보세요.
초창기 Computer Game을 접했던 사람이라면 'Sierra'라는 Brand name을 들어봤을 것이...
초창기 Computer Game을 접했던 사람이라면 'Sierra'라는 Brand name을 들어봤을 것이다.
그 사람과 이 사람이 어떤 관계일까는 관심이 가는 사람이라면 한 번 찾아보길 바란다.
일단, 책에 대해서만 이야기하면...
이 책에 대한 평은 극과 극으로 갈린다. 이 글을 작성하는 이는 이 책을 긍정적으로 본다는 점을 일단 밝혀두는 바이다.
이 책이 기존의 책과 구분되어지는 점이라고 한다면, 그 구성이 될 것이다. 한 페이지 혹은 두 페이지를 걸쳐서 그려져 있는 그림, 혹은 이야기를 들려주는 듯한 글의 서술 방식 등. 기존에 있던 Java 관련 책들과 비교했을 때 의외성에 놀라게 된다.
그리고, 이 책을 다 읽고 난 후에 무의식적으로 Object-oriented Programming(객체 지향 프로그래밍, 이하 OOP)을 하고 있다는 점도 하나의 특징이 될 것이다. 더 재미있는 건 그게 OOP라는 걸 인지하지 못한다는 것이다.
하지만, 이런 구성으로 인해서 잃어버린 점도 있다. 즉, Reference의 역할을 전혀 수행하지 못한다는 점이다. 즉, 자신이 Program을 작성하다 문제점에 봉착했을 경우 Solution을 제공하지 못한다는 것이다(어떤 문제점이냐에 따라서 다르겠지만, Technical한 부분에 국한되어서 말하는 것이다)
이것뿐만이 아니다. 책에 실려있는 예제들이 100% 수행되는 또는 책과 같은 결과를 내놓지 못한다는 점도 있다(특히, Generic과 Collection을 다룬 Chapter는 이 경향이 더욱 심하다).
그리고, 책의 후반부에 다루어지는 Network부분이 수박겉핥기로 구성되어 있다는 점도 사람을 당황하케 만들기도 한다.
자, 이쯤에서 Programming이라는 것, Program Language를 배운다는 것에 대해서 짚어볼 필요가 있는 것 같다(물론, 이 글을 쓰고 있는 이 역시 배우는 입장이라는 것을 밝혀두는 바이다).
Program을 왜 사용하는가?
그건 자신이 당면한 문제를 해결하기 위해서이다. 그것이 Game이라는 Software이든, Photoshop이라는 Software이든, Wordprocessor이든 간에 Computer를 사용해서 자신이 처한 문제를 해결하기 위해 사용하는 것이다.
따라서, Program은 그 문제를 해결하기 위한 일련의 절차나 논리로 구성되어 있다. 이런 절차와 논리를 Computer가 인지할 수 있도록 구현하기위해 사용하는 것이 Program Language이다. 그게 C가 되었든 C++이든, Assembler인 건 중요하지 않다. 중요한 건 자신이 작성해야 하는 Program을 만드는데 효율적이냐 아니냐는 것이다.
따라서, 다음과 같은 질문.
"이 책만을 읽고 자신이 봉착한 문제를 해결할 수 있는 Program을 짤 수 있는가?"라고 질문해본다면 "소규모의 Program은 가능하겠지만, 그 이상을 만들기는 어렵다"고 봐야할 것이다.
이 책의 앞부분에서도 다루어져있는 것처럼
우선, 마음 편하게 먹고 한 번 주욱 훑어볼 것.
두번째로, 제시된 목차를 보고 각각의 소주제에 어떤 내용을 담았는가라는 걸 상기해볼 것.
세번째로, Reference 형태의 다른 책을 구해볼 것과 Sun에서 제공하는 Java 공식 사이트의 Tutorial이나 API 문서를 읽어보는 것.
네번째로, 자신이 봉착한 문제를 한 번쯤 Program으로 구현해볼 것(이건 배우는 입장인 본인이 지속적으로 교육받는 내용이다. 아직, 그럴듯한 대형 Program은 짜본적이 없다.).
요즘 많이 팔리는 "딱 한번 읽고 끝내는 기적같은 영문법" 처럼 자바라는 왠지 어렵고, 재미없게 느껴지는 것을 쉽고, 재미있게...
요즘 많이 팔리는 "딱 한번 읽고 끝내는 기적같은 영문법" 처럼 자바라는 왠지 어렵고, 재미없게 느껴지는 것을 쉽고, 재미있게 배울 수 있도록 만든 책 같습니다.
흔히 이런류의 책들은 쉽고, 재미있게만 쓰는데 치중해 내용이 부실해 질 수 있는 문제가 생기기 마련인데, 이 책은 입문자뿐만 아니라 중급자 이상인 분이 봐도 도움이 됩니다.
초보자 분들과, 자바 공부하다 개념이 확실하게 서지 않아 자바에게서 등을 돌리셨던 분들에게 추천합니다. 쉽고, 재미있고, 그래서 무엇보다 빠르게 자바 개념을 확립할 수 있는 책이라고 생각합니다.