dhan***
2024-02-24

5년만에 혼자 공부하는 자바 개정판이 나왔다.
그 사이 자바도 Java12 ~ Java21까지 나왔으니 더 늦출수는 없었을 것 같다. ^^
이 책을 읽게 된 계기도 전통적인 자바의 개념을 새롭게 정리하고, 모던 자바의 특징도 살펴보고 싶어서 베타리더를 신청한 것이다.
책을 다 읽고 난 지금 그 동안 너무 대충 자바를 알고 있었구나라는 생각이 들었다. 자바의 기본 개념에 관해 몰랐거나 잘못 알고 있었던 부분까지 제대로 정리할 수 있었고, 모던 자바의 내용을 모두 설명한 것은 아니지만, 앞으로 대처할 수 있는 계기를 마련한 것 같아 의미가 있었다. 앞으로 매년 자바 책을 읽어 볼 작정이다.
이 책은 입문서지만, 주니어, 시니어 개발자에게도 도움이 될 만큼 기본에 충실하고, 이해가 잘 되도록 그림과 예제로 구성되어 있다. 특히, 개인적으로 "확인 문제"가 마음에 들었다. 내용이 해당 본문과 이어지도록 구성되어 있으며, 난이도도 높지 않아 본문의 예제를 손코딩하였다면 어려움 없이 풀 수 있을 것이다.
당연하게도, 이 책을 읽고나서 자바 언어 공부를 멈추면 안된다. 이 책은 입문서이다. 따라서 책에서 소개하는 "이것이 자바다" 또는 다른 중급 책에 도전하여 자바 언어의 매력에 빠져보시길 추천드린다.
책의 구성은 크게 기본편 11장과 고급편 3장, 전체 14장으로 구성되며, 기본편에서는 자바 언어의 개발 환경 구축 및 기본 개념과 문법을 익히고, 고급편에서는 스레드와 같은 고급 주제를 설명한다.
각 장을 설명하면 아래와 같다.
Chapter 1 "자바 시작하기"에서는 자바 언어 소개와 자바 개발 도구(최신 Java21버전), 개발 환경(이클립스), 자바 프로그램 개발 과정을 캡처 그림과 함께 단계별로 차근차근 설명한다.
Chapter 2 "변수와 타입"은 프로그래밍 언어의 변수와 자바 언어에서 사용하는 기본 타입, 타입간 변환 방법, 기본 입출력 방법을 알아보고,
Chapter 3 "연산자"에서는 자바 언어의 연산자와 연산식, 연산자의 종류를 "직접 해보는 손코딩" 예제와 함께 모두 실습해본다.
Chapter 4 "조건문과 반복문"은 자바 언어의 제어문(if문, for문, while문, switch문)을 알아보고,
Chapter 5 "참조 타입"에서는 메모리 영역에서 변수에 접근하는 방법, 배열, enum 타입에 관해 설명한다.
Chapter 6 "클래스"는 자바 언어의 핵심인 객체 지향 프로그래밍과 패키지, 접근 제한자에 관해 알아보고,
Chapter 7 "상속"에서는 상속의 개념과 클래스의 타입 변환, 다형성, 추상 클래스를 알려준다.
Chapter 8 "인터페이스"에서는 인터페이스 개념과 타입 변환, 다형성에 관해서 설명하고,
Chapter 9 "중첩 클래스, 중첩 인터페이스"는 클래스내부에서 클래스와 인터페이스, 익명 객체를 사용하는 방법에 관해 살펴본다.
Chapter 10 "예외처리"에서는 자바 언어에서 예외를 담당하는 클래스와 예외 처리 방법을 알아보고,
Chapter 11 "기본 API 클래스"는 기본적으로 자바 개발 도구에서 제공하는 라이브러리와 자바 도큐먼트 사이트의 레이아웃을 살펴본다.
Chapter 12 "스레드"에서는 스레드의 개념과 멀티 스레드 사용법을 설명하고,
Chapter 13 "컬렉션 프레임워크"는 실제 업무에서 가장 많이 사용하게 될 List, Set, Map과 Stack, Queue의 사용법을 알아본다.
Chapter 14 "입출력 스트림"에서는 파일이나 네트워크, 장치에서 데이터를 송, 수신하는 방법을 설명한다.
끝으로 부록편에서는 Java10부터 Java21버전으로 업데이트되면서 추가된 기능과 확인 문제 정답, 찾아보기, 혼공 용어 노트로 구성된다.
각 장은 소주제 2~4개로 구성되며, 분량은 많지 않아서 하루하루 계획해서 보기에 좋다.
먼저 '학습 목표'와 '핵심 키워드'를 제시하고 '시작하기 전에'에서는 배울 주제에 관해 간략히 설명한다.
책 중간중간 '말풍선'은 기억해야 할 내용을 다시 한번 짚어주고, '직접 해보는 손코딩'은 꼭 따라 해보기를 추천드린다.(몸이 기억해야 한다)
'여기서 잠깐'부분은 프로그래밍 하면서 실수할 수 있는 부분을 알려주므로, 반드시 챙겨보자. 기억하고 있으면 더욱 좋겠다. '좀 더 알아보기'에서는 해당 주제에 관한 심화 내용을 담고 있다. 설명이 끝나면 '마무리'에서 키워드로 본문 내용을 되짚어 주고, 확인 문제로 마무리 한다.
책에서 다루는 내용은 프로그래밍 입문서답게 자바에만 특화된 내용이 아닌 프로그래밍 언어 전반에서 적용될 수 있도록 설명한다. 그림과 표, 예제까지 있어 이해하기 쉽도록 구성되어 있다.


개인적으로 1번 완독보다 3번 완독을 목표로 접근하는 것을 추천한다. 첫번째는 텍스트 위주의 완독, 두번째는 학습 목표를 의식하고 완독, 세번째는 실습위주의 완독이 그것이다.
자바언어는 C언어, Python보다 입문하기 쉽지 않다. 자바 개발 도구도 설치해야 하고, IDE도 익혀야 하며, 기본 문법뿐만 아니라, 객체, 상속, 인터페이스 개념도 알아야 한다. 하지만 익히고나면, 다른 언어는 무척 쉽게 느껴지는 장점이 있다. 자바 프로그래머의 수요도 많으니, 꾹 참고 버텨보자~ 함께 화이팅!!
다행히, 혼자 공부하는 자바는 6개월마다 진행하는 혼공학습단을 통해서 여럿이 같이 공부할 수 있다. 완주하는 동안 간식도 주고, 직접 사용할 수 있는 포인트('이것이 자바다' 구매할 수도 있다)도 준다. 무엇보다 동기가 있어서 외롭지 않다. ^^
무료로 제공하는 동영상 강의와 저자가 운영하는 카페도 있으니, 자바 입문서로는 최고의 선택이 아닐까?
책 디자인은 개인적으로 손코딩하기에 안성맞춤인 크기다. 책도 크고, 글씨도 크고, 손코딩할 예제도 많다.
폰트와 라인 간격, 코드 블록도 보기 좋고, 따라 하기 쉽게 구성되어 있다.
다만, 적당한 크기의 책상과 팔 근육이 필요할 뿐 :D
자바와 관련된 여러 책들이 있겠지만, 입문서로 혼자 공부하는 자바가 가지는 특징이 너무 많아 시작은 꼭 이 책으로 하는 것을 추천드린다.
끝으로, 지금이라도 자바언어 공부를 시작해야 하는 저자의 인터뷰 내용을 인용하면서 마무리한다.
우리나라(한국) 정부, 공공기관, 대기업에서 발주하는 프로젝트는 대부분 자바 기반의 프로젝트(전자정부표준프레임워크)입니다. 수요가 많으니 자바 프로그래머의 수요도 많습니다. 앞으로도 그럴 것으로 예상합니다. 이것이 지금 자바를 배워도 늦지 않은 이유입니다.
저자 인터뷰, p.006
"한빛미디어 베타리더로 책을 제공받아 작성된 서평입니다."