메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

헤드 퍼스트 자바(3판)

한빛미디어

번역서

판매중

  • 저자 : 케이시 시에라 , 버트 베이츠 , 트리샤 지
  • 번역 : 서환수
  • 출간 : 2024-01-02
  • 페이지 : 752 쪽
  • ISBN : 9791169211796
  • 물류코드 :11179
  • 초급 초중급 중급 중고급 고급
5점 (10명)
좋아요 : 9

두뇌를 자극하며 한 걸음씩 배우는 자바 학습법

친절한 설명과 실전 예제로 직접 체험하며 배우는 자바 프로그래밍

 

하나, 〈헤드 퍼스트〉 시리즈만의 다채로운 구성으로 자바를 쉽고 재미있게 배울 수 있습니다.

글로만 가득 차 있는 두꺼운 자바 학습서에 지치셨나요? 『헤드 퍼스트 자바(3판)』는 〈헤드 퍼스트〉 시리즈의 특징인 친근한 대화체 스타일과 풍부한 시각 자료, 텍스트와 이미지를 함께 활용하여 뇌를 자극하는 학습법을 제안합니다. 각종 비유와 등장인물의 이야기를 따라가다 보면 어느새 자바에 대한 지식이 그림처럼 머릿속에 생생하게 새겨집니다.

 

둘, 개념을 이해하는 것을 넘어서 현업에서 활용할 수 있는 실전 능력을 기를 수 있습니다.

자바의 기초부터 심화 개념까지 모든 것을 상세하게 설명하고, 다양한 실전 예제를 바탕으로 실제 활용까지 나아갈 수 있는 실용적인 학습을 지향합니다. 단순히 개념을 설명하는 데 그치지 않고 자바를 사용하는 개발자들이 흔히 저지르는 실수, 자주 묻는 질문과 답변, 전문가의 친절한 조언 등을 바탕으로 실무 활용 능력을 극대화할 수 있습니다.

 

셋, 자바 버전 업데이트에 따른 개정 내용을 대응합니다.

개정판 이후로 자바 버전 업데이트에 따른 내용을 보완하고, 예제 코드와 부가 설명을 새 버전에 맞춰 수정하였습니다. 또한, 원서의 내용을 정확하게 반영하되 새로운 삽화를 더해 한국어판만의 맛을 살렸습니다. 『헤드 퍼스트 자바(3판)』 한 권이면 초보자부터 개발자까지 쉽고 편안하게 최신 버전의 자바를 배울 수 있습니다.

 

헤드 퍼스트 자바 상세 이미지(700px).jpg

케이시 시에라 저자

케이시 시에라

캐시는 썬 마이크로시스템즈(Sun Microsystems)에서 마스터 자바 트레이너로 활동했으며, 대규모 자바 커뮤니티인 JavaR anch.com(지금은 CodeRanch.com)을 설립하여 2003년과 2004년에는 생산성 부문에서 졸트상(Jolt Award)을 받았습니다.
버트 베이츠 저자

버트 베이츠

버트는 25년 이상의 경력을 가진 소프트웨어 개발자로, 2003년에 캐시와 함께 『헤드 퍼스트 자바』로 〈헤드 퍼스트〉 시리즈를 만들었습니다. 이후로 여러 권의 자바 서적을 저술하고, 썬 마이크로시스템즈와 오라클에서 다양한 자바 인증 시험에 자문으로 참여했습니다.
트리샤 지 저자

트리샤 지

트리샤는 1997년부터 자바를 사용했습니다. 젯브레인스(JetBrains) 자바 개발자 지원팀에서 5년간 근무한 후 2년 동안 팀을 이끌었습니다. 이 기간 동안 현업 자바 개발자들이 직면하는 다양한 문제들에 대한 경험을 쌓았습니다.

서환수 역자

서환수

물리학을 전공했습니다. 『Head First Java: 뇌 회로를 자극하는 자바 학습법』을 비롯해서 한빛미디어와 함께 몇 권의 번역서를 냈습니다.

 

Chapter 00 들어가며 | 이 책을 읽는 방법

 

__이 책의 독자

__이 책이 이렇게 된 이유

__이 책의 구성

__여러분의 두뇌를 정복하는 방법

__이 책을 읽는 데 필요한 것

__3판의 테크니컬 리뷰어

__3판을 위한 감사 인사

__개정판의 테크니컬 리뷰어

__개정판을 위한 감사 인사

__아직 감사의 글이 끝나지 않았습니다

 

Chapter 01 일단 간단하게 알아봅시다 | 껍데기를 깨다

 

__자바는 어떤 식으로 돌아갈까요?

__자바에서 실제로 수행하는 일

__아주 간략한 자바의 역사

__자바 코드의 구조

__main이 들어 있는 클래스 만들기

__간단한 불리언 테스트

__조건에 따른 분기문

__본격적인 실전용 애플리케이션 코딩하기

__자동 구문 생성기

__연습 문제

__정답과 해설

 

Chapter 02 클래스와 객체 | 객체 마을로의 여행

 

__의자 전쟁

__첫 번째 객체 만들기

__Movie 객체 만들어서 테스트하기

__빠르게 main에서 벗어나기

__숫자 맞히기 게임 실행하기

__연습 문제

__정답과 해설

 

Chapter 03 원시 변수와 레퍼런스 | 네 변수를 알라

 

__변수 선언하기

__“더블 모카로 주세요. 아, int로 합시다.”

__키워드를 조심하세요!

__Dog 객체를 제어하는 방법

__객체 레퍼런스는 단지 또 다른 변숫값에 불과합니다

__가비지 컬렉션 기능을 보유한 힙에서의 삶

__배열은 찬장의 컵과 같습니다

__Dog 예제

__연습 문제

__정답과 해설

 

Chapter 04 메서드는 인스턴스 변수를 사용합니다 | 객체의 행동 방식

 

__클래스는 객체가 아는 것과 객체가 하는 것을 기술합니다

__크기는 짖는 소리에 영향을 끼칩니다

__메서드에 특정 값을 전달할 수 있습니다 

__메서드에서 특정 값을 리턴할 수도 있습니다

__메서드에 두 개 이상의 인자를 전달할 수도 있습니다

__매개변수와 리턴 타입 활용 방법

__캡슐화

__배열에 있는 객체는 어떤 식으로 행동할까요?

__인스턴스 변수 선언과 초기화

__원시 변수와 레퍼런스 변수 비교

__연습 문제

__정답과 해설

 

Chapter 05 프로그램 만들기 | 메서드를 더 강력하게

 

__<스타트업 침몰시키기> 게임 만들어 보기

__클래스 개발

__메서드를 구현해서 코드 작성하기

__SimpleStartup 클래스를 위한 테스트 코드 만들기

__checkYourself() 메서드

__SimpleStartupGame 클래스 준비 코드

__게임의 main() 메서드

__마지막 클래스: GameHelper

__for 반복문에 관하여

__향상된 for 반복문

__원시 타입 캐스팅

__연습 문제

__정답과 해설

 

Chapter 06 자바 API를 알아봅시다 | 자바 라이브러리 사용하기

 

__앞 장에서 버그를 남겨둔 채로 넘어왔습니다

__모두 잠에서 깨어나 라이브러리를 써 봅시다

__ArrayList로 할 수 있는 작업

__ArrayList와 일반 배열 비교

__진짜 <스타트업 침몰시키기> 게임 만들어 보기

__실제 StartupBust 클래스를 만들기 위한 준비 코드

__Startup 클래스의 최종 버전

__초강력 불리언 표현식

__라이브러리 사용하기(자바 API)

__코드 자석

__정답과 해설

 

Chapter 07 상속과 다형성 | 객체 마을에서의 더 나은 삶

 

__의자 전쟁 되돌아보기

__상속의 이해

__동물 시뮬레이션 프로그램의 상속 트리 설계하기

__상속을 더 많이 활용하는 방법 찾아보기

__‘A는 B다’와 ‘A에는 B가 있다’ 관계 활용하기

__상속 구조를 제대로 만들었는지 어떻게 알 수 있나요?

__상속을 활용해서 설계할 때 주의점

__계약 지키기: 오버라이드 규칙

__메서드 오버로딩

__연습 문제

__정답과 해설

 

Chapter 08 인터페이스와 추상 클래스 | 심각한 다형성

 

__이걸 설계할 때 뭔가 잊어버린 것은 없을까요?

__컴파일러는 추상 클래스의 인스턴스를 만드는 것을 허용하지 않습니다

__추상 vs. 구상

__추상 메서드는 모두 구현해야만 합니다

__다형성 활용하기

__어떤 것도 받아들일 수 있는 더 포괄적인 클래스를 만들면 어떨까요?

__개가 개처럼 행동하지 않으려고 할 때

__몇 가지 디자인 옵션 알아보기

__Pet 인터페이스 제작과 구현

__상위 클래스에 있는 버전의 메서드를 호출하는 방법

__연습 문제

__정답과 해설

 

Chapter 09 생성자와 가비지 컬렉션 | 객체의 삶과 죽음

 

__스택과 힙: 삶의 공간 

__메서드는 스택에 차곡차곡 쌓입니다

__로컬 변수로 들어 있는 객체는 어떻게 되나요?

__기적과도 같은 객체 생성

__Duck 객체 만들기 

__Duck을 쉽게 만들 수 있게 하는 방법

__인자가 없는 생성자는 컴파일러에서 항상 자동으로 만들어 주지 않나요? 

__세부 리뷰: 생성자에 대해 반드시 알아야 할 네 가지 

__객체의 일생에서 상위 클래스 생성자의 역할

__부모가 존재하기 전에 자식이 존재할 수 있을까요?

__레퍼런스 변수는요? 

__연습 문제 

__정답과 해설 

 

Chapter 10 숫자와 정적 변수, 정적 메서드 | 숫자는 정말 중요합니다

 

__Math 메서드: 거의 전역 메서드입니다 

__일반 메서드와 정적 메서드 사이의 차이점 

__정적 변수 초기화

__Math 메서드

__원시 타입을 포장하는 방법

__거의 어디서든 쓸 수 있는 오토박싱

__반대로 원시 숫자를 String으로 변환하는 방법

__숫자 포매팅

__포맷 지시자

__연습 문제

__정답과 해설

 

Chapter 11 컬렉션과 제네릭 | 자료구조

 

__java.util API, 리스트와 컬렉션

__제네릭과 타입 안전성

__sort() 메서드 다시 보기

__업그레이드된 Song 클래스

__Comparator만 가지고 정렬하기

__람다를 가지고 주크박스 코드 고쳐 보기

__ArrayList 대신 HashSet을 써 볼까요?

__TreeSet에 관해 꼭 알아야 할 것들•••

__List와 Set에 대해 배웠으니 이제 Map을 사용해 볼까요?

__드디어, 다시 제네릭으로

__연습 문제

__정답과 해설

 

Chapter 12 ‘어떻게’가 아니고 ‘무엇’을 | 람다와 스트림

 

__컴퓨터한테 우리가 무엇을 원하는지 알려 줍시다

__for 반복문이 잘못될 때 

__스트림 API 소개

__스트림에서 결과 가져오기

__스트림 활용 가이드라인

__안녕, 나의 (별로 오래된 건 아니지만) 오랜 친구!

__함수형 인터페이스를 알아보는 법

__루 씨가 내준 숙제 #1: ‘록’ 음악 전부 찾아내기

__루 씨가 내준 숙제 #2: 모든 장르의 목록 구하기

__5분 미스터리

__정답과 해설

 

Chapter 13 예외 처리 | 위험한 행동

 

__음악 재생 프로그램 만들어 보기

__우선 Sequencer가 필요합니다 

__예외도 객체입니다. Exception 타입의 객체지요 

__try/catch 블록에서의 흐름 제어 

__메서드에서 예외를 두 개 이상 던질 수도 있습니다 

__catch 블록을 여러 개 사용할 때는 작은 것부터 큰 것으로 나열해야 합니다

__선언을 통해 회피하는 것은 불가피한 것을 잠시 미뤄 두는 것뿐입니다

__코드 키친 

__버전 1: 첫 번째 사운드 애플리케이션 만들기

__버전 2: 명령행 인자를 써서 소리를 조절해 보기

__연습 문제

__정답과 해설

 

Chapter 14 GUI | 그래픽 이야기

 

__모든 것은 창에서 시작합니다

__사용자 이벤트를 받아들이는 방법

__리스너, 소스, 그리고 이벤트

__그림을 그리기 위한 위젯 만들어 보기

__paintComponent()로 할 수 있는 일

__프레임에 위젯을 두 개 이상 집어넣는 방법

__내부 클래스가 있습니다

__람다 구원 등판! 

__내부 클래스를 써서 애니메이션 만들어 보기

__메시지/이벤트를 쉽게 만드는 방법

__연습 문제

__정답과 해설

 

Chapter 15 스윙 사용 방법 | 스윙을 알아봅시다

 

__스윙 구성요소

__레이아웃 관리자

__세 가지 대표적인 레이아웃 관리자

__스윙 구성요소 사용해 보기

__코드 키친

__비트박스 프로그램 만들기

__연습 문제

__정답과 해설

 

Chapter 16 직렬화와 파일 입출력 | 객체 저장

 

__직렬화된 객체를 파일에 저장하는 방법

__클래스를 직렬화할 수 있게 하려면 Serializable을 구현해야 합니다

__역직렬화: 객체 복구

__버전 ID: 직렬화를 할 때 주의할 부분

__String을 텍스트 파일에 저장하는 방법

__텍스트 파일을 읽는 방법

__QuizCardPlayer(코드 개요)

__Path, Paths, Files(디렉터리 처리)

__마지막으로, finally

__코드 키친

__비트박스 패턴을 저장하는 방법

__비트박스 패턴을 복구하는 방법

__연습 문제

__정답과 해설

 

Chapter 17 네트워킹과 스레드 | 연결하는 방법

 

__연결하기, 보내기, 받기

__DailyAdviceClient

__간단한 서버 애플리케이션 만들기

__자바에서는 스레드 여러 개를 사용할 수 있지만 Thread 클래스는 하나뿐입니다

__새로 만들어진 스레드의 세 가지 상태

__스레드를 대기 상태로 전환시키는 방법

__스레드를 두 개 이상 만들고 시작하는 방법

__스레드 풀 닫는 시간

__향상된 새 버전의 SimpleChatClient

__코드 자석

__정답과 해설

__코드 키친

 

Chapter 18 경쟁 상태와 불변 데이터 | 동시성 이슈 처리 방법

 

__코드로 만들어본 라이언과 모니카 문제

__객체의 자물쇠 사용법

__무시무시한 ‘갱신 손실’ 문제

__increment() 메서드를 원자적으로 바꿉니다. 동기화합니다!

__동기화의 치명적인 약점, 교착상태

__원자 변수를 이용한 CAS 연산

__불변 객체 사용법

__공유 데이터 관련된 또 다른 문제

__스레드 안전성을 갖춘 자료구조

__연습 문제

__정답과 해설

 

APPENDIX A 코드 키친 최종회

 

__마지막 비트박스 클라이언트 프로그램

__마지막 비트박스 서버 프로그램

 

APPENDIX B 거의 본문에 들어갈 뻔했던 내용, TOP 10

 

__#11 JShell (자바 REPL)

__#10 패키지

__#9 문자열과 래퍼의 불변성

__#8 접근 단계와 접근 변경자(누가 무엇을 볼 수 있는가)

__#7 가변인자

__#6 애너테이션

__#5 람다와 Map

__#4 병렬 스트림

__#3 열거형

__#2 로컬 변수 타입 추론(var)

__#1 레코드

 

찾아보기

자바로 여는 무한한 객체지향의 세계!

실무에서 제대로 활용하는 자바 프로그래밍 학습서

 

다음 세 가지 질문에 “예”라고 대답할 수 있다면, 이 책은 당신을 위한 것입니다!

 

✔  실제 프로그래밍 경험이 있거나 관심이 있습니까?

✔  자바를 재미있는 이야기와 다양한 실전 예제로 체험하며 배우고 싶습니까?

✔  지루하고 학구적인 강의보다는 파티에서의 즐거운 대화를 선호하십니까?

 

『헤드 퍼스트 자바(3판)』는 무미건조하게 글로만 배우는 자바 학습서가 아니라 풍부한 시각 자료와 직접 대화하는 듯한 친절한 설명을 곁들인 두뇌 친화적인 자바 가이드입니다. 책에 실린 재미있는 예시와 이미지는 독자의 효과적인 학습을 돕습니다. 이 책을 읽고 나면 자바와 객체지향에 대해 완벽하게 이해하고, 실무에서 자바를 다양하게 활용할 수 있습니다. 전문가의 조언과 함께 각종 퍼즐과 다양한 퀴즈를 풀어 보며 뇌를 일깨우는 자바 학습을 경험해 보세요.

 

예제 파일 다운로드

→ https://www.hanbit.co.kr/src/11179

→ https://oreil.ly/hfJava_3e_examples

JAVA 바이블 헤드퍼스트 자바

객체지향언어 자바를 배우기위해서 많은책을 추천 받고 하는 과정에서 무조건 호평이고 바이블라고 불리우는 책이 있습니다. 그책은 바로 헤드퍼스트 시리즈 자바 입니다. 헤드퍼스트 자바는 자바의 언어뿐 아니라 실무에서도 쓰이는 제대로 활용서로 각광받고 있습니다. 실제로도 많은 부분들이 프로그래밍 사고를 위해서 설정되어 있는 만큼 다양하게 공부를 할 수가 있습니다.

저는 구판을 가지고 있습니다. 2005년의 나온책입니다. 18년만에 개정이 되었기 때문에 차이점을 비교하면서 볼수가 있었습니다. 현재 언어의 발전으로 인하여 다양한 기술이 변했고 기술스타일이 변했기 때문에 신판을 권장합니다. 구판보다는 현재 나온 3판이 확실히 다릅니다. 그리고 구판을 가지고 있는 신판과 구판을 둘다 여기저기에 두어 시간날때마다 보도록 추천합니다.

 

헤드퍼스트 자바는 뇌를 일깨우면서 프로그래 사고를 갖게합니다. 하나하나 친절한 일러스트와 함께 공부를 하다보면 나도 모르게 많은것을 습득하게 됩니다. 그리고 자바언어의 핵심인 객체를 탐험하게 됩니다. 그렇기 때문에 꼭 보시는것을 추천합니다. 그냥 일반적인 코더가 되느냐 아니면 프로그램을 배우면서 학습을 할 수 있는 새로운 사람이 되느냐의 차이가 여기에 있다고 볼 수가 있습니다.
 

 

 

헤드퍼스트 자바는 이렇게 하나하난 예시가 나와 있고 손쉽게 볼 수 있는 다양한 일러스트등으로 구성되어 있기 때문에 어렵지 않게 공부를 이어 나갈수가 있습니다. 하나한 설명을 할수 잇꼬 자바를 체계적이로 이해할수가 있습니다. 헤드퍼스트의 시작은 자바의 아주 깊숙한곳부터 하나하나 서서히 보여줍니다. 그렇기 때문에 자바를 잘 이해할 수 있습니다.
 

 

다양한 예제를 통해서 문제를 풀어 볼 수가 있습니다. 어떻게 문제를 생각하고 푸는 방법부터 하나의 문제의 다양한해결법이 있듯이 우리는 그러한 사고를 발전을 시킬 수가 있습니다. 실제로 한줄한줄 어렵지 않은설명으로 배울수가 있습니다. 헤드퍼스트 자바는 흔히 초보자에게는 어렵다는 말도 있습니다. 왜냐하면 그냥 간단한 주제도 2~3장으로 넘기는 일반적이 책의 비해서 정확한 이해와 이를 응용해서 보다 나은 개발자의 사고를 가지게 함입니다.

 

 

 

다양한 문제를 통해서 자바의 다양한 기능을 사용을 할 수가 있습니다. 다양한 문제를 직접 이용하고 사용하면서 자바가 가지고 잇는 다양한 내장객체를 사용을 할수가 있습니다. 그것을 통해서 우리는 좀 더유연하고 완벽한 프로그램을 짤 수가 있습니다. 그렇기 때문에 우리는 어떻게 공부를 하고 배울지는 알아두면 좋습니다.

실제로 헤드퍼스트 자바는 시각적으로 한번 학습을 하게 됩니다 그리고하나하나 올바른 방법으로 체계와 프로그램구성을 이해하게 됩니다. 그 후 하나하나 자바학습을 하고 문제를 풀면서 다양한 실력을 직접 키울 수 있게 됩니다. 머리속에 오래남는 학습법을 통해서 다시 배우고 반복하면서 다양함을 배울 수가 있습니다.

자바를 공부하고자 하는 개발자 or 개발자를 준비하는 과정의 분들에게 모두 추천을 합니다. 보다 나은 개발자의 세계로 인도 할수가 있습니다. 헤드퍼스트 자바 적극 추천합니다.JAVA 바이블 헤드퍼스트 자바

객체지향언어 자바를 배우기위해서 많은책을 추천 받고 하는 과정에서 무조건 호평이고 바이블라고 불리우는 책이 있습니다. 그책은 바로 헤드퍼스트 시리즈 자바 입니다. 헤드퍼스트 자바는 자바의 언어뿐 아니라 실무에서도 쓰이는 제대로 활용서로 각광받고 있습니다. 실제로도 많은 부분들이 프로그래밍 사고를 위해서 설정되어 있는 만큼 다양하게 공부를 할 수가 있습니다.

저는 구판을 가지고 있습니다. 2005년의 나온책입니다. 18년만에 개정이 되었기 때문에 차이점을 비교하면서 볼수가 있었습니다. 현재 언어의 발전으로 인하여 다양한 기술이 변했고 기술스타일이 변했기 때문에 신판을 권장합니다. 구판보다는 현재 나온 3판이 확실히 다릅니다. 그리고 구판을 가지고 있는 신판과 구판을 둘다 여기저기에 두어 시간날때마다 보도록 추천합니다.

 

헤드퍼스트 자바는 뇌를 일깨우면서 프로그래 사고를 갖게합니다. 하나하나 친절한 일러스트와 함께 공부를 하다보면 나도 모르게 많은것을 습득하게 됩니다. 그리고 자바언어의 핵심인 객체를 탐험하게 됩니다. 그렇기 때문에 꼭 보시는것을 추천합니다. 그냥 일반적인 코더가 되느냐 아니면 프로그램을 배우면서 학습을 할 수 있는 새로운 사람이 되느냐의 차이가 여기에 있다고 볼 수가 있습니다.
 

 

 

헤드퍼스트 자바는 이렇게 하나하난 예시가 나와 있고 손쉽게 볼 수 있는 다양한 일러스트등으로 구성되어 있기 때문에 어렵지 않게 공부를 이어 나갈수가 있습니다. 하나한 설명을 할수 잇꼬 자바를 체계적이로 이해할수가 있습니다. 헤드퍼스트의 시작은 자바의 아주 깊숙한곳부터 하나하나 서서히 보여줍니다. 그렇기 때문에 자바를 잘 이해할 수 있습니다.
 

 

다양한 예제를 통해서 문제를 풀어 볼 수가 있습니다. 어떻게 문제를 생각하고 푸는 방법부터 하나의 문제의 다양한해결법이 있듯이 우리는 그러한 사고를 발전을 시킬 수가 있습니다. 실제로 한줄한줄 어렵지 않은설명으로 배울수가 있습니다. 헤드퍼스트 자바는 흔히 초보자에게는 어렵다는 말도 있습니다. 왜냐하면 그냥 간단한 주제도 2~3장으로 넘기는 일반적이 책의 비해서 정확한 이해와 이를 응용해서 보다 나은 개발자의 사고를 가지게 함입니다.

 

 

 

다양한 문제를 통해서 자바의 다양한 기능을 사용을 할 수가 있습니다. 다양한 문제를 직접 이용하고 사용하면서 자바가 가지고 잇는 다양한 내장객체를 사용을 할수가 있습니다. 그것을 통해서 우리는 좀 더유연하고 완벽한 프로그램을 짤 수가 있습니다. 그렇기 때문에 우리는 어떻게 공부를 하고 배울지는 알아두면 좋습니다.

실제로 헤드퍼스트 자바는 시각적으로 한번 학습을 하게 됩니다 그리고하나하나 올바른 방법으로 체계와 프로그램구성을 이해하게 됩니다. 그 후 하나하나 자바학습을 하고 문제를 풀면서 다양한 실력을 직접 키울 수 있게 됩니다. 머리속에 오래남는 학습법을 통해서 다시 배우고 반복하면서 다양함을 배울 수가 있습니다.

자바를 공부하고자 하는 개발자 or 개발자를 준비하는 과정의 분들에게 모두 추천을 합니다. 보다 나은 개발자의 세계로 인도 할수가 있습니다. 헤드퍼스트 자바 적극 추천합니다.

헤드 퍼스트 시리즈는 특유의 유머와 너스레(인물이 나와서 질문을 던지는?)가 있습니다. 내용이 챕터가 넘어갈수록 자연스럽게 확장되기 때문에 몰입하기 좋습니다.

 

개정된 만큼 상당히 많은 내용을 다룹니다. 단순히 아는 개념이더라도 자바에 관해서 기능을 잘 활용을 하고 있는지 점검하기 좋았습니다.

자바 프로그래밍 교과서의 귀환 - 헤드 퍼스트 자바 3판(2024)

 

]


책 소개

저자 : 캐시 시에라(Kathy Sierra), 버트 베이츠(Bert Bates), 트리샤 지(Trisha Gee)

제목 : 헤드 퍼스트 자바(Head Frist JAVA)

번역 : 서환수

출판사 : 한빛미디어

출간 연도 : 2024. 01.

원문 제목 :  Head Frist JAVA (Third Edition)

페이지 : 총 752쪽


 

Head First 

 책의 첫 인상은 '재미있다' 입니다. 어쩌면 정형화된 틀이 있는 프로그래밍 언어 입문서와는 다르게, 헤드 퍼스트 자바는 비전공자 혹은 프로그래밍 언어가 낯선 사람들도 편하게 읽을 수 있도록 구성되어있습니다. 많은 그림과 대화체의 사용 그리고 생각을 고민하도록 하는 책의 배열에서 독자에 대한 배려를 느낄 수 있었습니다.

 헤드 퍼스트 자바는 특유의 학습법을 제시하고 이를 바탕으로 자바 입문을 안내합니다.  일명 ' 두뇌 친화적인 학습이론'이라 불리는 구성으로, '서로 다른 유형의 두뇌 활동을 증가시킨다.'가 이를 설명하는 한 문장입니다. 다양한 프로그래밍 입문서 중에서도 왜 'Head First Java가 자바의 역사만큼 긴 시간동안 사랑받아왔는지를 이번 개정 3판을 읽으며 다시 한 번 느낄 수 있었습니다.

 


Java

자바의 역사로부터 시작하는 본 챕터는 객체와 변수 객체와 메서드로 파이를 키워가며 자바 문법의 흐름을 이어갑니다. 자바 언어의 특징인 상속과 다형성 이외에도 이번 개정 3판에서는 자료구조와 더불어 람다와 스트림의 학습을 통해 함수형 프로그래밍의 개념을 더 명확히 알 수 있습니다.

 예시로 사용되는 코드는 쉽게 구현 하도록 설계되어있으며 학습한 이론을 명확히 확인 할 수 있도록 구현됩니다. (코드를 문법에 따라 '기계적'으로 사용하는 것이 아닌, '활용'의 관점에서 사용 하도록 독자들을 안내하는 것이 눈에 띄는 배려 요소입니다.)

 


 

마치며

 헤드 퍼스트 자바를 읽고 느낀 점은 '생각하며 코딩하는 방법을 배울 수 있다' 입니다. 기술 서적이지만 쉽게 쓰여진 책으로, 프로그래밍 언어로써 '자바'에 대해 재미있고 즐겁게 책을 읽고, 코드에 대해 고민할 수 있는 계기를 제공하는 것이 타 입문서와 대비되는 책의 장점입니다.

 자바 개발자를 목표로 하거나, 자바 기초 이론을 복습하는 분이라면 꼭 읽어야 할 책으로 추천합니다. 또한 직무 전환을 고민하거나 부트캠프에서 자바를 학습하고 있다면 꼭 일독을 권합니다.

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

『헤드 퍼스트 자바(3판)』은 자바 프로그래밍에 대한 체계적이고 흥미진진한 학습을 제공하는 책으로, 자바 초보자부터 중급 수준의 개발자까지 다양한 수준의 독자를 대상으로 합니다. 이 책은 자바 언어의 기본 개념부터 심화된 내용까지 다루면서, 독자들에게 자바를 쉽고 재미있게 배울 수 있는 다양한 학습 방법을 제시합니다.

가장 뛰어난 점은 이 책이 단순히 이론을 설명하는 데 그치지 않고, 독자들이 직접 코드를 작성하고 실행하며 실습하는 방법을 강조한다는 것입니다. 이를 통해 독자들은 이론을 이해하는 것을 넘어서 자바 프로그래밍의 실무 능력을 키울 수 있습니다. 또한, 풍부한 시각 자료와 친근한 대화체 스타일의 설명은 독자들의 이해를 돕는 데 큰 도움이 됩니다.

첫째로, 이 책은 학습자의 관점에서 접근하여 개념을 이해하기 쉽도록 구성되어 있습니다. 각 장은 현실적이고 흥미로운 시나리오를 통해 자바 프로그래밍의 핵심 개념을 설명하고 있습니다. 또한, 다양한 그림과 색상을 활용하여 복잡한 개념을 시각적으로 표현하여 독자들이 쉽게 이해할 수 있도록 돕고 있습니다.

둘째로, 이 책은 이론뿐만 아니라 실전 경험을 쌓을 수 있는 다양한 예제와 연습 문제를 제공합니다. 예제 코드는 실제로 실행해보며 개념을 익힐 수 있도록 구성되어 있으며, 연습 문제를 해결하면서 스스로 학습의 폭을 넓힐 수 있습니다.

셋째로, "헤드 퍼스트 자바"는 자바뿐만 아니라 객체 지향 프로그래밍(OOP)에 대한 개념과 실제 적용 방법에 대해서도 다루고 있습니다. OOP의 핵심 개념을 이해하고 실제로 코드에 적용하는 방법을 익히면서 프로그래밍 스킬을 향상시킬 수 있습니다.

넷째로, 이 책은 자바뿐만 아니라 소프트웨어 개발에 필요한 다양한 도구와 기술에 대해서도 다루고 있습니다. 디자인 패턴, 리팩토링, 유닛 테스트 등의 주제를 다루면서 소프트웨어 개발자로서의 역량을 향상시킬 수 있는 풍부한 자료를 제공합니다.

종합하면, 『헤드 퍼스트 자바(3판)』은 자바를 배우고자 하는 모든 사람들에게 추천할 만한 가치 있는 자료로, 이론과 실전을 함께 다루며 독자들이 자바 프로그래밍에 대한 전반적인 이해를 획득할 수 있도록 돕습니다.

컴공이라면 한번쯤 들어봤을 헤드퍼스트 자바!

캠퍼스에서 내에서 전공 책보다 많이 보인다는 이야기가 있을 정도로 높은 인기를 자랑하는 자바 기본 학습서이다.

객체, 클래스, 메소드와 같이 초심자가 보았을 때 다소 어려운 개념들을 쉽게 설명하는 점이 이 책의 인기비결이 아닐까 싶다.

2003년에 초판이 발행되어 지금까지 역사를 이어가고 있다.

자바 버전이 업그레이드 됨에 따라 책에서도 변화된 부분을 수정해왔다고 한다.

책의 저자 캐시 시에라, 버트 베이츠, 트리샤 지는 20년도 더 전부터 자바와 관련된 일을 했다.

캐시 시에라는 Sun Microsystems에서 마스터 자바 트레이너로 활동했고 버트 에이츠는 다수의 자바 서적을 저술하였다고 한다.

자바를 가르쳐왔다는 경력 덕에 책에서도 그들만의 노하우가 곳곳에 녹아있는 것을 확인할 수 있었다. 

 

 

 

책의 장점

1. 학습 원리에 기반한 다양한 설명 형식

2. 쉬운 이해를 돕는 글/이미지

3. 탄탄한 기초 지식 형성

4. 저자의 위트

 

 

저자는 이 책이 독자에게 적합한지 몇가지 질문을 던져 진단하고자 한다.

질문에 모두 “예”라고 답할 수 있다면 이 책을 읽어도 좋다.

3번 질문이 의아할수도 있지만 책의 전체적인 분위기와 맞닿아 있는 질문이다. 

 

자바를 설명하는 방식이 다른 개발 언어 서적과는 달리 독특하다.

왜 다른 책들과는 상이한 형식을 띄는 것인지, 그러한 방법을 적용하는 이유에 대해서도 설명한다.

타 개발 서적이든 온라인 강의든 학습하는데 어려움이 있었다면 이 책으로 새로운 시도를 해보는 것도 좋을 것 같다.

클래스와 메서드를 설명하는 파트이다.

이 부분에서 전체를 보고 하나씩 상세하게 파헤쳐나가는 구조다.

 

처음 개념을 접했을 때의 생길 수 있는 질의와 그에 대한 답을 미리 제공한다.

미처 생각치 못했던 질문도 있어서 식견을 넓힐 수 있었다.

그 옆에는 배우게 될 예제와 핵심 정리도 제공된다. 

 

상속에 관해 설명하는 파트다.

절대적으로 좋은 기능은 없으므로 어떨 때 써야하고 쓰지 말아야하는 지를 설명한다.

또, 그러한 장점에 대해 명확히 인지시켜 준다.

개발할 때에 무조건이라는 조건을 배제하고 여러 방면으로 고민하는 태도를 함양할 수 있다. 

 

다른 책에서는 코드를 주욱 나열하고 한 번에 설명하는 경우가 많은데,

헤드 퍼스트에서는 완전히 다른 방식으로 코드와 원리를 풀이한다.

한 덩이 한 덩이의 코드와 이를 설명하는 글, 그림으로 구성되어 있다.

글로만 구성되어 있는 것보다 쉽게 이해를 할 수 있었다.

 

한 파트가 끝나면 연습 문제도 등장한다.

어린시절 풀었던 학습지처럼 문제가 재밌게 출제되었다.

뒤에 설명도 친절하게 나온다. 

 

헤드 퍼스트는 부록도 재밌게 구성되어 있다.

레코드, 로컬 변수 타입 추론 등 추가적으로 알아야 할 사항들을 꾹꾹 눌러 담았다. 

 

저자가 독특하게 설명하는 방식이 나와는 아주 잘 맞았다.

예시와 이해를 돕는 다양한 사진과 글의 형식이 흥미로웠다.

즐거움과 쉬운 이해로 여느 때보다 집중하며 책을 읽을 수 있기도 했다.

무턱대고 코딩을 시작하는 것이 아니라 층층이 지식을 쌓아갈 수 있었다.

코더가 아닌 개발자가 되는데 도움이 되는 책이라 생각한다.

 

 

 

 

 

 

 

 

 

 

    "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

자바 책 검색을 하면 늘 나오던 그 책이다. 참 오랜 세월을 봐왔지만 읽어본 건 이번이 처음이다. 굳이 피하던 건 아니었고 학교 다닐 때 배운데다 회사에서는 사실 jsp 1.0 나오기 전부터 사용했기에 입문서를 읽을 이유가 사실상 없었다. 하지만 몇 개 기술서가 그렇듯 판올림으로 계속 나온다는 건 이유가 있는 거다. 그래서 궁금했다.

 

결론부터 말하자면, 자바 기초를 배우고 싶은 이들에게 이 책은 교과서 느낌이다. 백과사전식 나열도 아니고 지식 검증을 위한 재미없는 퀴즈제시도 아니다. 무슨 느씸이라고 해야 할까, 생각을 제대로 해봐야 하는 대학교재다.

 

설명은 구체적이고 좀 구어체식이라, 글로 이런 문체를 읽는 데 거부감이 있다면 난감할 수 있다. 나도 처음에 전달하는 내용에 비해 글이 많은 데 부담을 느꼈다. 언제부턴가 해야 할 게 많다보니 그론 경향이 강해졌으니. 그런데 어느 정도 적응을 하고 보니 비로소 그 가치가 느껴진다. 이 책 결코 입문서지만 잠깐 읽고 던질 책이 아니다. 교과서로 진득하게 공부하듯 읽고 생각하고 코딩하면서 결과를 확인해봐야 한다. 안 그러면 온라인 핸드북 읽느니만 못한 결과릉 얻게 될 거다.

 

직업상 웹 관련 백엔드와 일부 프론트엔드 개발을 하다보니 GUI, Swing, 병렬 처리는 솔직히 직접 건드릴 일이 없어 책 내용이 크게 와닿지 않는다. 하지만 그외 부분들의 경우 잊고 있었던 기본에 관해 되뇌일 수 있는 계기가 된 것 같다. 늘상 생각하던 거고 다른 이들에게도 말했지만 뭔가 고급 기술을 써서 문제 해결하는 것보다는 기본적인 것들로 하는 게 훨씬 많다는 것. 그리고 항상 내가 평생 책임질 게 아니라면 다른 이들이 보고 이해하고 수정하고 개선할 수 있는 코드를 작성해야 한다는 것. 그 생각에 지지대를 세워주는 내용으로 가득 차 있다.
 

7장 상속과 다형성, 8장 인터페이스와 추상 클래스, 11장 자료구조, 12장 람다와 스트림, 18장 동시성 이슈 처리 방법은 분명하게 개념을 세워두는 게 좋다. 물론 다른 장들을 소홀히 보라는 의미는 아니다. 그게 바탕이 되어줘야 언급한 장들을 이해할 수 있다.

 

예를 들어, 7장에서 상속과 다형성을 설명할 때 Animal 클래스와 이를 상속받은 Dog 클래스를 여러 가지 예시를 들어가면서 설명한 부분과 같이, 신경 써서 전달하고자 하는 내용을 전개하는 방식은, 꽤 긴 호흡을 유지해야 하기에 어려울 수는 있지만, 그 과정을 잘 이해하기만 하면 해당 개념을 머릿속에 넣어두는 데 있어 매우 중요한 역할을 할 수 있다. 아무래도 실질적인 예제와 개념을 잘 일치시켜 얘기하면 입문자 입장에서는 매우 큰 도움이 된다. 단, 처음 읽다보면 헷갈려서 앞으로 갔다왔다를 반복하겠지만, 그건 어찌 보면 당연하다.

 

게다가 사이사이 들어가 있는 코드들과 퀴즈들은 생각보다 난이도가 있다 보여진다. 쉬워보이는 게 사실 더 어려운 법이고, 뭔가 해결하는 데 코드량이 많다는 건 뭔가 잘못된 방향으로 나아가고 있다는 뜻일 거다.

 

개인적으로 이 책에서 람다와 스트림, NIO.2를 다시 샐펴볼 수 있어 좋았다. 다른 관점에서 본다면 입문자에게 부담스러울 수도 있다 싶은데, 뭔가 책에서 해보라는 내용을 따라가는 데 거부감을 느낀다면 그럴 수도 있겠다 싶다. 하지만 그런 불편함을 조금 참아내기만 하면 좋은 출발지일 거라 확신한다. 책의 앞에 추천글이나 서평이 그렇게나 많은, 그래서 홍보하는 그 문구가 있는, 그 이유가 있는 법이다.

 

자바를 제대로 사작하고 싶다면 이 책이 좋은 길라잡이가 될 거다. 조금의 불편함은 버리고 한 번 도전해보라. 거대한 자바의 세계에 들어온 걸 환영한다!

헤드퍼스트 자바, 이해가 안되면 페이지를 넘기지 못하는 당신을 위한 책

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 헤드퍼스트 자바 3판 

 

이 책은 어떤 책인가요?


헤드퍼스트 자바 실물!!

 

이 책은 흔하게 서점에서 구할 수 있는 자바 입문서라고 생각할 수 있지만 다른 여러가지 특징이 있는 책이었습니다!

이 책의 구성을 한번 살펴보면 다음과 같은 특징이 있습니다.

1. 이미지 위주의 페이지 구성


이 책은 기존의 자바 책 같이, 설명적인 개념들과 코드들에서 벗어나서 그림 삽화 위주의 페이지 구성을 통해 독자들에게 개념을 주입합니다.

실제로 자바의 작동 방식을 자바를 처음 입문한 사람들에게 설명하기는 굉장히 어려운데, 이 책에서는 그림을 통해 쉽게 표현한 부분이 인상깊었답니다.

이미지와 삽화를 통해 쉽게 이해하는 개념

 

2. 대화체를 사용한 토론형 개념 설명


기존의 학습서는 대부분 정해진 답을 그저 설명하는데 그칩니다.

하지만 이 책은 설명적인 문체보다는 대화체를 사용해서 독자로 하여금 조금 더 깊이 사고하게 하는 장치가 되기도하고,

결국에는 책과 함께 토론하면서 정답을 찾아나갑니다.

그러다보니 체득한 개념을 나만의 방식으로 학습하고 또 설명할 수 있게 되는 것이지요!

JVM과 컴파일러의 토론을 지켜보며 알아보는 자바의 개념

 

3. 퀴즈를 통해 재미와 학습 두마리 토끼를 한 번에!


설명 중간 중간에 배운 개념들을 점검할 수 있는 여러가지 퀴즈들이 존재합니다.

그런 부분들이 기존의 문제 푸는 방식을 벗어나서 미니 게임과 같은 흥미를 끄는 요소로서 책에서는 다가오는데요.

그 부분이 학습을 조금 더 재미있게 이끌어나가게 해주는 좋은 요소가 됩니다.

나는 누구일까요 퀴즈로 알아보는 자바 기본 개념

 

이 책은 왜 이런 구성을 가지게 된걸까?


앞서 이야기했다시피, 이 책은 기존의 자바 개념서와는 아주 다른 형태를 띄고 있습니다.

왜 이런 구조를 가지게 된걸까요? 

실제로 이 책은 첫번째 챕터를 이 책의 구조가 왜 이런지에 대해 설명하는데 사용할 정도로 특별하게 구성되었음을 알 수 있습니다.

 

아래는 첫번째 챕터 <이 책을 읽는 방법>의 일부분을 발췌한 내용입니다.

 

여러분의 두뇌는 항상 새로운 것을 갈망합니다.
항상 뭔가 특이한 것을 기다리고 있지요.

두뇌는 정말 해야하는 일을 방해하는 모든 것을 거부합니다.
별로 중요하지 않은 내용은 중요하지 않은 것을 차단해 버리는 필터에서 걸러집니다.

그렇다면 두뇌는 무엇이 중요한 내용인지 어떻게 판단할까요?
등산을 갔는데 갑자기 호랑이가 나타났다고 생각해 봅시다.
두뇌와 몸에서는 어떤 일이 일어날까요?

이건 정말 중요한 거야! 잊어버리면 안돼!


 

이 책은 등산 중 갑자기 만난 호랑이와 같이 여러분에게 자극적으로 정보를 전달합니다.

그러한 점이 매력적이고 다른 기본 개념서와의 차별점이 되겠지요.

 

이 책을 추천하고 싶은 사람


이 책은 자바의 기존 개념서와는 완전히 다른 구성을 가진 책입니다.

그래서 학자형으로 프로그래밍을 공부하는 사람에게는 어색하다고 느껴질 수 있는 책으로 생각하게 됩니다.

하지만, 이 책은 오히려 학자형 학습을 원하는 분께 권해드리고 싶은 책입니다.

 

여기서 말한 학자형 학습이란, 작은 개념이라도 이해하지 못하면 다음으로 넘어가질 못하는 말 그대로 머리가 먼저 이해해야하는

헤드퍼스트형 학습 습관을 가진 사람을 말하는데요,

이 책은 여러가지 치밀한 요소들을 통해서 독자로 하여금 개념을 이해 못할래야 못할 수가 없는 책입니다.

말그대로 개념 하나 하나를 이해하고 넘어가기에 좋은 책입니다.

 

그리고 기존의 개념서로 학습을 했을 때 지루함을 느끼거나 신선한 자극이 필요하다고 느끼는 분께도 권해드리고 싶은 책이네요.

 

이 책을 추천하고 싶지 않은 사람


이 책의 첫번째 챕터 <이 책을 읽는 방법> 에서는 이 책의 권장 독자를 설명합니다.

그 독자의 조건 중 가장 첫번째 조건은 아래와 같습니다.

프로그래밍이 경험이 있습니까? 그렇다면 이 책은 바로 당신을 위한 책입니다.

 

바꾸어 말하면, 프로그래밍이 없는 독자는 이 책의 권장 독자가 아닌 것입니다.

다시 말해, 자바 자체는 처음일 수 있지만 프로그래밍 경험이 전혀 없는 독자를 대상으로 한 책은 아니라는 것입니다.

 

이 책은 독자에게 자바를 설명하기에 급급한 나머지 해당 개념을 이해하기 위한 다른 컴퓨터 과학의 이론에 대해서는 전혀 설명하지 않고 있습니다. 독자가 해당 개념에 대해서 이해하고 있다고 가정을 하고 애초에 작성된 책이니까요.

 

만약 프로그래밍 입문서로 해당 책을 고른다면 저는 다른 책을 추천하고 싶습니다.

 

결론


틀에 박히지 않은 구성과 재치있는 설명으로 이 책은 자바 개념들을 머리에 쾅 박히게 해주는 책입니다.

 

이해가 되지 않으면 다음 페이지로 넘어가지 못하는 당신에게 이 책은 최고의 자바 개념서 입니다.

 

 

> 진행에 앞서

나는 컴퓨터공학과를 졸업한 학사이다.

졸업 직전 취직을 할 뻔 했지만, 아쉽게도 그렇지 못했고, 계획을 바꿔 1년이 지난 뒤에야 사회생활을 시작하게 되었다.

물론 개발자로 말이다.

학교를 다니면서 컴퓨터와 프로그래밍이 재미있다고 느꼈고, 그래서 개발자를 하고싶은 마음에 자바를 이용해야하는 일을 시작했지만, 좀처럼 자바라는 존재에 대해 머리위에서 이리저리 떠다니는 뭉게구름처럼 자리를 잡지 못하고 흩어져 있었다는 생각이 들었다.

객체지향도 어느정도는 알겠고, 자바도 대략 쓸 줄은 알았으나, 클래스가 무엇인지, 객체의 구체적인 속성이 무엇인지. 그래서 다들 어떤 방식으로 이해를 하고 있으며, 어떤 기반으로 활용해야 하는 것인지 기초가 탄탄하게 쌓아있지 않은듯한 느낌이었다.

 

그러던 중 여러 책을 찾아보다가, 이 책을 발견하고 나의 자바에 대한 개념은 자리를 잡아가기 시작하였다.

그것은 '헤드 퍼스트 자바(개정판)' 이었다.

당시에도 그 책은 2005년에 나온 책이었기에 출간된지 시간이 꽤 흐른 상태였다.(당시는 2009, 2010년 즈음..?)

그럼에도 그 책의 흐름 구성과 설명의 친절함은 너무 강렬하게 내게 다가와서, 누군가 독학이든 개념정리든 자바에 대해 공부하고 싶어한다면, 주저하지 않고 이 책을 권하고 있다.

 

하지만, 이 책에도 단점은 있었으니, 바로 너무 오래되었다는 사실이다. 개발 언어의 발전에 빗대어보면 그때로부터 15년이나 지난 지금은 너무도 긴 시간이 흘렀고, 현재와는 어울리지 않는 내용도 군데군데 찾을 수 있다.

 

그러던 중 개정판을 넘어선 3판을 보게 되었다.

 

> 책에 대한 간단한 정보

앞 표지

 

이 책은 미국식 유머로 가득하다.

그렇다고 실없이 유머로만 가득한 책은 아니고, 그러한 유머를 적절하게 분위기 조성하는데 잘 사용하며, 이 책의 목적대로 길을 잃지 않고 자바에 대해 잘 설명한 책이다.

이 책은 크게 자바 자체에 대한 설명과 자바라면 빼놓을 수 없는 객체지향에 대한 설명, 그리고 실습을 곁들인 응용에 관한 부분으로 이루어져 있다. 표지도 트렌드에 맞게 좀 더 단순하지만, 바로 눈에 띄고 세련되게 만들어 놓았다는 생각이 들어서 만족한다.

 

> 인상깊은 부분들

헤드퍼스트의 친절한 설명

이 책의 설명 스타일이다.

캡슐화를 물론 이 지면의 앞에서 설명했겠지만, 그보다도 왜 캡슐화를 하지 않으면 문제가 되는지 차근차근 설명하면서 캡슐화의 중요성을 강조하고 있다. 누군가 객체를 쉽게 접근해서 허락되지 않은 값을 임의로 변경해버리면, 해당 객체는 의도했던대로 작동하지 않을 것이다. API를 수도 없이 호출하는 현대의 개발환경에서 이런 기본적인 캡슐화를 잘 하지 않은 제품이라면, 매우 난감하다. 사용하는 사람도 객체를 망가뜨리고 싶지는 않을텐데, 너무나 버젓이 오픈되어 있는 프로퍼티를 볼 때면 어디까지 손을 대도 괜찮은 것인가 하는 고민을 하게 만들기 때문이다. 막상 코드를 작성할 때에는 그것을 오픈하든 안하든 크게 차이를 모를 수 있으나, 이것을 사용하는 관점이 되면 크게 차이를 느낄 . 수있는 그것이 캡슐화라는 설명을 아주 친절하고 재미있게 하고 있다. 그것도 손글씨까지 곁들여서 말이다.

 

생각보다 흥미로운 낱말 십자퍼즐

헤드퍼스트 책을 읽으면서 특히 헤드퍼스트 자바에서 재미있다고 생각한 부분이다. 이 외에도 다양한 유형의 퍼즐과 퀴즈가 많아서 재미있지만, 십자퍼즐은 제대로 다 풀려고 노력하다보면 시간이 금방 흘러간다.

아래에 정답은 나와있지만, 묘한 자존심이 발동하여 그것을 보지 않고 풀기 위해 최선의 노력을 다하게 된다. : >

 

스트림에 대한 설명

여기는 3판에 추가된 내용에 해당한다.

개정판이 나왔을 2005년만 하더라도 스트림 개념이 없었다.

아마 그 당시가 JDK 1.5(5.0) 아니면 1.6(6.0)이었을 듯 한데, 그 때의 관심사는 이쪽이 아니었다. 하지만, 2010년대를 지나오며 지금은 모던 언어에서 기본적으로 채택하고 있는 개념이다.

스트림을 얼마나 잘 사용하느냐에 따라 성능적인 부분과 가독성에 대한 부분 모두 이점을 가져올 수 있기 때문에 외면할 수 없다.

그래서 현재의 자바를 학습한다면 이 부분이 필수라고 여겨지기에 이렇게 추가한 것 같다.

스트림에 대한 개념이 구름처럼 떠다니지 않도록 이 부분을 보면서 잘 이해할 수 있었다.

 

람다에 대한 설명

이와 더불어 람다도 모던 언어에서 필수인 부분이다. 람다 없이도 개발이 가능한 부분이 있겠으나, 코드량이 많아지는 것은 그렇다 치더라도 람다로만 할 수 있는 부분은 사용하지 못하게 됨으로써 입지가 좁아지는 것을 감수해야 한다.

람다를 제대로 이해시키기 위한 노력이 수많은 줄의 손글씨 타입의 설명으로 가늠이 된다.

말이 길어서 이해가 잘 되지 않을수도 있지만 이 설명이 전부가 아니기 때문에 문제는 없다.

 

요즘 반복문에 for-each는 기본

이것은 새롭게 추가된 내용은 아니지만, 변화점 중 하나이기에 눈에 띄었다.

개정판 시절까지는 for-each 사용 없이 for문을 사용해서 구했던 코드가 있었다. 하지만 . 이코드는 그것을 for-each로 개선해서 표현하고 있다. 확실히 책 전반적으로 현재 사용되지 않거나 권장되지 않는 코드 스타일은 과감히 버리고, 새롭게 대체된(alternative) 표현으로 현재의 코딩 컨벤션에 뒤쳐지지 않도록 노력한 흔적이 보인다.

 

JShell REPL은?

이것은 부록 중 일부이다. 부록의 내용은 책에 실릴뻔한 10가지 후보들에 대한 내용이었는데 아이러니하게도 11개가 수록되었다.(원서에서 그렇게 적혀있었기 때문에 따랐다고 한다.)

JShell에 대해서는 docker를 사용할 때 가끔 보기는 했는데, 왜 있는지 이유를 잘 알지 못해서 그냥 그렇게 넘어가던 것이었는데, 이 짧은 설명 덕분에 그것을 활용하면 좋은 점에 대해서 알게되었다.

확실히 꿀팁은 어느 분야든 흥미롭다.

 

나의 Old One과 New One

왼쪽은 개정판, 오른쪽이 3판이다.

개정판은 당시에 내가 공부했을 때 사용한 책은 아니다. 그 책은 더 너덜거렸을텐데 아쉽게도 수년전에 잃어버려서 누군가에게 중고거래로 구입한 책이다.(후배에게 공부시켜주느라 이 책을 구입해서 교재로 사용했었다.)

그럼에도 책의 헌 흔적이 보인다. 스타일도 좀 올드한 느낌이다.

 

2005년 초판과 2024년 3판1쇄 발행의 격세지감

초판 기준으로는 무려 만으로 18년이 흘렀다.

그 사이에 책 가격도 오르긴 했다. 28,000원에서 42,000원으로.

책의 가치에 비해서는 덜 오른 느낌도 들지만, 앞자리 숫자가 2나 차이가 나기에 시간의 흐름을 느낄 수 있었다.

또한 당시에도 한빛미디어에서 출판하였고, 지금도 동일하다는 사실은 매우 놀랍긴 했다.

 

추가된 챕터 중 하나

여러 챕터가 추가되기도 하였고, 불필요한 챕터는 제거되기도 하였다. 위는 추가된 챕터 중 하나이다.

그리고 챕터 자체는 유지된 것이 많지만, 그 내부의 목차는 변경된 것이 많다.

혹시 개정판을 읽었던 독자라면 3판을 구해서 보는것도 새로움을 가져다 줄 것이다. 부록을 제외하고 차이점을 비교하면 다음과 같다.

 

유지된 부분

- 서문

- 껍데기를 깨다

- 객체마을로의 여행

- 네 변수를 알라

- 객체의 행동 방식

- 메서드를 더 강력하게

- 자바 라이브러리 사용하기

- 객체 마을에서의 더 나은 삶

- 심각한 다형성

- 객체의 삶과 죽음

- 숫자는 정말 중요합니다

- 위험한 행동

- 그래픽 이야기

- 스윙을 알아봅시다

- 객체 저장

- 연결하는 방법

순서 변경된 부분

- 자료 구조

추가된 부분

- 람다와 스트림

- 동시성 이슈 처리 방법

삭제된 부분

- 코드를 배포합시다

- 분산 컴퓨팅

 

 

 

뒷표지

 

 

> 괜찮은 부분

1. 유머가 충분하게 포함되어 있다.

책은 재미가 있어야 접근이 쉽다. 어떤 책이든 지루하게 느껴진다면, 그 책을 펴기 위해 매우매우 큰 노력을 들여야 하고, 그 노력의 정도가 낮다면 책을 펴는데 아마도 실패할 것이다. 또한 책을 열었다 한들 의무감에 어느정도는 보겠지만 그 이상의 노력은 하지 않을 가능성이 높다. 하지만, 책이 재밌다면 이야기는 다르다. 이 책을 만화책 보듯이 흥미를 갖고 보게 되며, 다음의 이야기가 궁금하여 계속 보게 될 가능성이 높아진다. 이 책은 바로 그런 부분이 탁월하다. 독자에게 재미를 주는 부분에 대해 소홀하지 않고 있기에 이 책의 매력과 차별점은 확실하다고 생각한다.

 

2. 과외 학습을 하듯이 친절하게 가르쳐 준다.

친절하게 가르치려고 노력한 부분이 많이 보인다. 그래서 개념의 기본을 다지기에 좋다. 보통 책은 '이정도는 알고 있죠?' 혹은 '여기서 더 머뭇거리다간 다음 진도나가기 힘들어요. 그러니 혹시 이해 안되어도 일단 넘어갑시다' 라는 스탠스를 갖고 있는 경우가 많다. 그래서 중간에 아리송한 부분이 있으면 구글검색을 하기도 하고, 이정도는 모르지만 어쩔 수 없나 하는 생각과 함께 다음 페이지를 넘기곤 한다. 물론 이것이 잘못된 것은 아니지만, 이 책은 정확히 모를만한 부분은 짚어서 알 때까지 알려주고 있다. 그래서 과외받는 느낌과 비슷하다.

 

3. 스테디 셀러에 최신 개정판의 장점 모두 있다.

스테디 셀러라는 것은 그만큼 많은 사람에게 두루 좋은 책이며, 시대를 가리지 않고(물론 자바의 역사상 약 20년 정도의 스테디셀러지만 . 이또한 개발 언어의 기준으로는 매우 스테디하다) 좋은 평을 받고 있는 책이라는 사실이다. 스테디 셀러는 트렌드에 민감하지 않다는 것이 단점이 될 수 있지만 이게 끝이 아니다. 이 책은 최신 개정판이라는 사실이다. 최신 개정판이라는 것은 트렌드에 뒤쳐지지 않도록 여러 요소를 다시 검토하여 수정하고 삭제하고 추가하는 과정을 거쳤다는 것이다. 그래서 잘 만들어진 책을 다시 한번 잘 정제하여 나온 느낌이기에 추천하고 싶다. 물론 자바 언어 자체가 예전만큼 사용률이 높지는 않지만, 그래도 여전히 어느정도의 위치는 있다. 그리고 자바를 단지 익히는 것 뿐 아니라 하나의 언어를 제대로 익히고, 객체지향 개념을 같이 배운다면 충분히 가치가 있다.

 

> 아쉬운 부분

1. 내용상 개정이 필요한 부분 이외에는 변화가 크지 않다.

단적인 예로 십자낱말풀이 부분은 변화가 없다. 18년전의 십자퍼즐 그대로이다. 이런 것은 같은 내용이라 하더라도 다시 뒤죽박죽 섞어서 3판만의 새로운 재미로 수록할 수 있었을 것 같은데, 그대로여서 아쉬웠다. 모든 문제가 그런 것은 아니지만, 쉽게 바꿀 수 있는 부분으로 보였기 때문에 더 아쉬움이 남는 것 같다. 또한 각 챕터에서 설명을 위한 예시도 예시의 주제가 동일해서 아쉬운 부분은 있다. 하지만 새로운 책이 아니고 개정판이기 때문에 이 부분은 어느정도 납득이 간다.

 

> 추천 독자

- 프로그래밍을 처음 배우려 하는 학습자

- 자바를 처음 배우려고 하는 학습자

- 자바나 객체지향에 대한 개념을 잡고자 하는 개발자

- 자바를 가르치기 위해 위해 교재를 찾고 있는 개발자

 

> 개인적인 평점

- 가격: 9 / 10

- 내용: 10 / 10

- 디자인: 9 / 10

- 구성: 10 / 10

 

> 정보

저자: 캐시 시에라, 버트 베이츠, 트리샤 지

옮긴이: 서환수

출판사: 한빛미디어

가격: 42,000원

전체 페이지: 0페이지

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

1. 선택 이유

'헤드퍼스트 자바'는 평소에도 이름은 들어봤던 도서 중 하나였습니다. 약 20권의 도서 제공 목록 중 본 도서

을 다음과 같은 이유로 선정하게되었습니다.

  • 개발자라면 반드시 알아야하는 객체지향을 소개합니다.
  • 두뇌가 쉽게(head first) 이해할 수 있는 예제를 활용하여 자바와 객체지향에 대해 설명했습니다.
  • 개념을 이해하는 것을 넘어 쉽게 활용할 수 있도록 실전 능력을 기를 수 있습니다.

 

2. 잠깐.. 왜 Head First인가?

 

아무런 의미없는 호랑이 사진

 

이 책에서 두뇌는 길게 늘어쓴 글보다는 그림을 더 중요하게 여긴다고 설명합니다. 분명히 아무런 의미 없는 호랑이 사진이며 독자를 사냥할 것도 아닌데도 뇌는 호랑이 사진에 집중하게 됩니다. (두뇌가 먼저 반응하는 = Head First)

 

'헤드퍼스트 자바'에서는 이러한 점을 적극 활용하여 쉽고 직관적인 예제를 통해 자바와 객체지향에 대해 소개합니다. 또한 단순히 개념을 늘어놓는 설명보다는 두 가지 방법에 대해 장단점을 토론하며 대화체로 작성되어 있어 각 장단점을 이해하기 쉽습니다.

 

3. 헤드퍼스트 자바를 이런사람한테 추천합니다.

  • 자바를 학습하고 싶은 사람
  • 지루하고 학구적인 강의보다 파티에서의 즐거운 대화를 선호하는 사람
  • 자바에 대해 알고 있지만 개념에 대해 설명은 할 수 없는 사람

 

제가 본 도서 중 가장 우아하고 위트있게 교육하는 도서입니다. 자바를 학습 하는 방법 중 최고라고 생각합니다.

이 책을 한마디로 표현하면 "알찬데 재미까지 곁들여져 있습니다." 인 것 같습니다.

개념, 내용, 실습이 전체적으로 아주 알찼고 어려운 내용들도 쉽게 설명해 주는 것이 이 책의 최고의 장점인 것 같습니다.

자바를 어렵게 생각하시는 분들께 강력 추천드리고 싶습니다.

위 내용은 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
헤드 퍼스트 자바(3판)
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
헤드 퍼스트 자바(3판)
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
헤드 퍼스트 자바(3판)
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1