-
-
헤드 퍼스트 자바 - 3판
케이시 시에라 외 지음, 서환수 옮김 / 한빛미디어 / 2024년 1월
평점 :
스토리로 풀어가는 자바
책을 선택한 이유
자바는 가장 많이 사용되는 프로그래밍언어다.
객체지향 프로그래밍 언어 자바에 대해 알아보기 위해
"헤드 퍼스트 자바 - 3판"을 선택한다.
"헤드 퍼스트 자바 - 3판"는
Chapter 00 들어가며 | 이 책을 읽는 방법
Chapter 01 일단 간단하게 알아봅시다 | 껍데기를 깨다
Chapter 02 클래스와 객체 | 객체 마을로의 여행
Chapter 03 원시 변수와 레퍼런스 | 네 변수를 알라
Chapter 04 메서드는 인스턴스 변수를 사용합니다 | 객체의 행동 방식
Chapter 05 프로그램 만들기 | 메서드를 더 강력하게
Chapter 06 자바 API를 알아봅시다 | 자바 라이브러리 사용하기
Chapter 07 상속과 다형성 | 객체 마을에서의 더 나은 삶
Chapter 08 인터페이스와 추상 클래스 | 심각한 다형성
Chapter 09 생성자와 가비지 컬렉션 | 객체의 삶과 죽음
Chapter 10 숫자와 정적 변수, 정적 메서드 | 숫자는 정말 중요합니다
Chapter 11 컬렉션과 제네릭 | 자료구조
Chapter 12 ‘어떻게’가 아니고 ‘무엇’을 | 람다와 스트림
Chapter 13 예외 처리 | 위험한 행동
Chapter 14 GUI | 그래픽 이야기
Chapter 15 스윙 사용 방법 | 스윙을 알아봅시다
Chapter 16 직렬화와 파일 입출력 | 객체 저장
Chapter 17 네트워킹과 스레드 | 연결하는 방법
Chapter 18 경쟁 상태와 불변 데이터 | 동시성 이슈 처리 방법
로 구성되었다.
Chapter 00 들어가며 | 이 책을 읽는 방법 에서는
"헤드 퍼스트 자바 - 3판"는 프로그래밍 경험이 있으며,
즐거운 대화를 선호하면서 자바를 배운고 싶은
사람에게 적합한 책이다.
헤드 퍼스트 학습 원리는 그림으로 설명하고,
대화체를 사용하며, 더 깊이 생각할 수 있도록 만들며,
주의를 기울이게 만들고, 감성을 자극한다.
연습 문제를 통해 어떤 일을 할 때 더 잘 배우고
더 잘 기억할 수 있다.
여러 가지 학습 유형을 섞고, 양쪽 뇌를 모두 사용하며,
여러 관점을 보여 주는 이야기로 실제로 사용할 내용을 설명한다.
UML 형태의 다이어그램, 코드를 구조화하고 패키지를 만들기,
연습 문제로 내용을 정리하기, 간단하게 만든 코드 예제를 설명한다.
Chapter 01 일단 간단하게 알아봅시다 | 껍데기를 깨다 에서는
자바의 작동 과정, 자바가 수행하는 일,
자바의 역사, 자바 코드의 구조,
main이 들어 있는 클래스 만들기,
불리언 테스트, 조건에 따른 분기문,
본격적인 실전용 애플리케이션 코딩하기,
자동 구문 생성기에 대해 다룬다.
Chapter 02 클래스와 객체 | 객체 마을로의 여행 에서는
허먼 밀러 의자를 차지하려는 프로그래머들의 경쟁을 통해
객체 지향 프로그램의 특징에 대해 알아본다.
객체 만들기, Movie 객체 만들어서 테스트하기,
빠르게 main에서 벗어나기, 숫자 맞히기 게임에 대해 다룬다.
Chapter 03 원시 변수와 레퍼런스 | 네 변수를 알라 에서는
자바는 타입을 철저하게 따진다.
객체 레퍼런스의 정확한 의미를 알아본다.
변수, 키워드, 객체 레퍼런스,
가비지 컬렉션 기능을 보유한 힙에서의 삶,
객체로서의 배열에 대해 다룬다.
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 생성자와 가비지 컬렉션 | 객체의 삶과 죽음 에서는
메모리의 두 공간인 스택과 힙에 대해 알아본다.
스택은 메서드 호출과 로컬 변수가 사는 곳,
힙은 모든 개게가 사는 곳이다.
스택에 쌓이는 메서드,
로컬 변수가 객체에 대한 레퍼런스인 경우,
객체 선언, 생성, 대입의 3단계,
Duck 객체 만들기, 컴파일러와 생성자,
상위 클래스 생성자, 객체의 상위 클래스 생성자,
레퍼런스 변수에 대해 다룬다.
Chapter 10 숫자와 정적 변수, 정적 메서드 | 숫자는 정말 중요합니다 에서는
자바는 거의 전역 메서드다.
Math 클래스에는 인스턴스 변수가 전혀 없다.
일반 메서드와 정적 메서드 사이의 차이점,
정적 변수 초기화,
Math 메서드, 원시 타입을 포장하는 방법,
거의 어디서든 쓸 수 있는 오토박싱,
반대로 원시 숫자를 String으로 변환하는 방법,
숫자 포매팅, 포맷 지시자를 다룬다.
Chapter 11 컬렉션과 제네릭 | 자료구조 에서는
주크박스 자료를 가지고 곡의 인기도를 알아내고
재생목록을 조절해본다.
java.util API, 리스트와 컬렉션,
제네릭과 타입 안전성,
sort() 메서드가 오류 메시지를 내는 이유,
Song 클래스 업그레이드, Comparator로 정렬하기,
람다를 가지고 주크박스 코드 고쳐 보기,
ArrayList 대신 HashSet을 써 고쳐 보기,
TreeSet에 관해 꼭 알아야 할 것들,
Map을 사용해 보기, 제네릭을 이용하기를 다룬다.
Chapter 12 ‘어떻게’가 아니고 ‘무엇’을 | 람다와 스트림 에서는
forEach 메서드를 호출해서 우리가 무엇을 원하는지
컴퓨터에게 알려줄 수 있다.
for 반복문이 잘못될 때, 스트림 API 소개,
스트림에서 결과 가져오기,
스트림 활용 가이드라인,
람다 표현식, 함수형 인터페이스를 알아보는 법,
업데이트된 곡 목록 안에서 ‘록’ 음악 전부 찾아내기
모든 장르의 목록 구하기를 다룬다.
Chapter 13 예외 처리 | 위험한 행동 에서는
비트박스 드럼 머신 등 음악 재생 프로그램을 만들어 본다.
Sequencer 객체, Exception 객체,
try/catch 블록에서의 흐름 제어,
메서드에서 예외를 두 개 이상 던지기,
catch 블록을 여러 개 사용하기,
선언을 통해 회피하기,
첫 번째 사운드 애플리케이션 만들기
명령행 인자를 써서 소리를 조절해 보기를 다룬다.
Chapter 14 GUI | 그래픽 이야기 에서는
JFrame을 만들고 창에 위젯을 추가한다.
사용자 이벤트를 받아들이기,
리스너, 소스, 이벤트의 관계,
그림을 그리기 위한 위젯 만들어 보기,
paintComponent()로 할 수 있는 일,
프레임에 위젯을 두 개 이상 집어넣기,
내부 클래스, 람다로 추상 메서드 구현하기,
내부 클래스를 써서 애니메이션 만들어 보기,
메시지/이벤트를 쉽게 만드는 방법을 다룬다.
Chapter 15 스윙 사용 방법 | 스윙을 알아봅시다 에서는
GUI에서 사용자가 건드리는 것은 구성요소다.
스윙 구성요소, 레이아웃 관리자,
세 가지 대표적인 레이아웃 관리자,
스윙 구성요소 사용해 보기,
비트박스 프로그램 만들기를 다룬다.
Chapter 16 직렬화와 파일 입출력 | 객체 저장 에서는
직렬화를 사용하거나 일반 텍스트 파일로 저장할 수 있다.
직렬화된 객체를 파일에 저장하는 방법,
클래스를 직렬화할 수 있도록 Serializable 구현하기,
역직렬화: 객체 복구.
버전 ID: 직렬화를 할 때 주의할 부분,
String을 텍스트 파일에 저장하기,
텍스트 파일을 읽기,
QuizCardPlayer(코드 개요),
Path, Paths, Files(디렉터리 처리),
finally 구문,
비트박스 패턴을 저장하는 방법,
비트박스 패턴을 복구하는 방법을 다룬다.
Chapter 17 네트워킹과 스레드 | 연결하는 방법 에서는
채팅 클라이언트를 만들어 본다.
연결하기, 보내기, 받기,
DailyAdviceClient,
간단한 서버 애플리케이션 만들기,
Thread 클래스, 스레드의 세 가지 상태,
스레드를 대기 상태로 전환시키는 방법,
스레드를 두 개 이상 만들고 시작하는 방법,
스레드 풀 닫는 시간,
향상된 새 버전의 SimpleChatClient를 다룬다.
Chapter 18 경쟁 상태와 불변 데이터 | 동시성 이슈 처리 방법 에서는
라이언 과 모니카 부부는 통장 잔고 때문에 갈등을 겪는다.
문제를 코드로 만들어 보고,
객체의 자물쇠 사용법, ‘갱신 손실’ 문제,
increment() 메서드를 동기화하기,
동기화의 치명적인 약점, 교착상태,
원자 변수를 이용한 CAS 연산,
불변 객체 사용법, 공유 데이터 관련 문제,
스레드 안전성을 갖춘 자료구조를 다룬다.
"헤드 퍼스트 자바 - 3판"은
자바의 개요, 원시 변수와 레퍼런스, 메서드,
프로그램 만들기, 자바 라이브러리, 상속과 다형성,
인터페이스와 추상 클래스, 생성자와 가비지 컬렉션,
숫자와 정적 변수, 정적 메서드, 컬렉션과 제네릭,
람다와 스트림, 예외 처리, GUI, 스윙,
직렬화와 파일 입출력, 네트워킹과 스레드,
동시성 이슈 처리 방법을 다룬다.
"헤드 퍼스트 자바 - 3판"은 그림과 대화체를 사용해 설명하며,
연습문제와 질문으로 깊이 생각하도록 하며,
감성을 자극하면 지루하지 읺도록 작성되었다.
그림과 대화형 문체를 사용해 두뇌 활동을 증가시키며
학습 효과를 높인다.
같은 내용을 다른 방법으로 반복 설명해서
기억을 전달할 수 있도록 한다.
그림과 개념을 통해 감성을 자극할 수 있도록 구성하며,
50개 이상의 연습 문제를 풀면서 기억하도록 돕는다.
양쪽 뇌를 모두 사용하여 집중할 수 있도록 하고,
오랫동안 높은 효율을 유지하면서 학습할 수 있도록 한다.
간단한 UML 형태의 다이어그램을 사용하고,
자바를 익히도록 집중하는 데 중점을 두었으며,
가벼운 이론을 수록한 예제를 통해
내용을 확실하게 이해할 수 있도록 한다.
"헤드 퍼스트 자바 - 3판"은 풍부한 이미지 비유와
재미있는 스토리를 통해 문제를 재미있게 접근하며,
자바의 기초부터 람다, 스트림, 제네릭, 스레딩 등
자바의 심화된 내용까지 체계적으로 설명한다.
퍼즐, 5분 미스터리 등 다양한 퀴즈를 풀면서,
뇌를 자극하면서 학습할 수 있도록 돕는다.
실전 팁과 연습 문제로 자바의 이해도를 높이고
실무 활용 능력을 쌓을 수 있도록 한다.
"헤드 퍼스트 자바 - 3판"은 딱딱한 이론이 아니라
재미있는 스토리를 통해 자바를 이해하도록 하는
프로그래밍 학습에 유용한 학습서다.
한빛미디어 와 리뷰어클럽 서평단에서
"헤드 퍼스트 자바 - 3판"를 증정해 주셨다.
감사드린다.
#헤드퍼스트자바3판 #서평 #전산 #자바
#한빛미디어 #HeadFirstJava #ABrainFriendlyGuide3rdEdition
Yes24 리뷰어클럽 서평단 자격으로 작성한 리뷰입니다