imjihye***
2024-04-28

최신 JAVA 21 버전 반영! 9년 동안 꾸준히 사랑받은 자바 베스트셀러, 『이것이 자바다』 3판!

'이것이 자바다'는 자바 기초 지식과 활용을 위한 기본서이다. 기본서적이니만큼 Java를 쉽게 이해하면서도 활용할 수 있도록 하는 것이 책의 주요 목적이라 할 수 있다. 책은 1,000장이 넘는 방대한 크기를 자랑하고 있지만 500장씩 1권과 2권으로 분리되어 있어 부담되는 무게나 크기는 아니었다.
'이것이 자바다'의 특징으로는 다음과 같은 것들이 있다. 아래 각 특징에 대한 설명을 이어나가도록 한다.
✅ 초심자를 대상으로 한 설명(개념, 도식화)
✅ 다양한 소통 창구
✅ 동영상 강의와 확인 문제 등의 학습 자료
✅ 샘플코드를 통한 실습

✅ 초심자를 대상으로 한 설명(개념, 도식화)
객체지향 프로그래밍과 같은 개념들은 초심자들이 이해하기 어려울 수 있다. 이러한 개념에 대한 예시와 예시의 도식화를 제공하여 독자들이 쉽게 이해할 수 있도록 돕는다.

변수에 최초로 값을 대입하는 행위를 변수 초기화라고 하고, 이때의 값을 초기값이라고 한다. 초기값은 다음과 같이 변수를 선언함과 동시에 대입할 수도 있다.
38쪽, 이것이 자바다.
필드, 메소드 등의 정석적인 개념과 실제 활용되는 곳에서의 역할, 역학관계 등을 살펴볼 수 있다. 다소 복잡한 개념이라 그림을 보더라도 이해하기 어려울 수 있다. 이해가 어려운 부분은 유튜브 강의나 독자 Q&A를 활용하면 된다.

✅ 샘플코드를 통한 실습
책의 전반에 걸쳐 샘플코드와 주석이 제공된다. 샘플코드를 따라 직접 실습하면 활자로만 보았을 때보다 이해가 수월히 되기도 한다. 물론, 실습을 한 번 한다고 해서 완전히 이해하는 것은 어렵다. 샘플코드를 작성하고 실행하고 결과를 분석하는 과정을 반복하다보면 절로 이해할 수 있다는 것이 저자 신용권 교수의 지론이다. 저자의 방식을 반복하다보면 추상적인 개념도 내재화되리라 생각된다.
✅ 다양한 소통 창구
✅ 동영상 강의와 확인 문제 등의 학습 자료
https://www.youtube.com/playlist?list=PLVsNizTWUw7EmX1Y-7tB2EmsK6nu6Q10q
책을 활용한 강의가 유튜브에서 제공되고 있다. 이해하기 어려운 부분이 있다면 강의를 참고할 수 있다.
https://cafe.naver.com/thisisjava
독자 Q&A 카페도 운영하고 있다. 혼자서 어려운 프로그래밍을 공부하더라도 소통할 수 있는 다양한 채널이 있어 여러 도움을 받을 수 있다.
https://www.hanbit.co.kr/store/books/look.php?p_code=B1795688037
챕터별로 문제가 제공된다. 문제를 고민하는 과정을 통해 개념을 이해했는지 확인할 수 있다. 확인 문제와 답, 예제소스는 상기 한빛미디어 링크에서 다운로드 받을 수 있다.

자바 개발 시 필요한 상식들 또한 설명한다. 위의 이미지는 API 도큐먼트를 설명하는 페이지이다. 첫 개발 시 해석하기 어려울 수 있는 API 도큐먼트의 검색 방법이나 파악하는 방법을 요소별로 설명한다.
new 연산자는 객체를 생성한 후 연이어 생성자를 호출해서 객체를 초기화하는 역할을 한다. 객체 초기화란 필드 초기화를 하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것을 말한다.
클래스 변수 = new 클래스();
생성자가 성공적으로 실행이 끝나면 new 연산자는 객체의 주소를 리턴한다. 리턴된 주소는 클래스 변수에 대입되어 객체의 필드나 메소드에 접근할 때 이용된다.
220쪽, 이것이 자바다.
앞서 객체지향에 대한 큰 개념을 이해했다면 그 이후의 챕터부터는 실제 개발에서의 작은 개념들을 습득한다. 변수, 조건문, 반복문 등의 기초적인 프로그래밍 지식들의 실습 시간을 갖는다. 그중에서도 일부 지식들에 대하여 실습을 수행한다.

자바를 실습하기에 앞서 자바, JDK, JVM에 대한 개념을 간략히 소개하고 설치 방법을 설명한다.
맥에서의 JDK와 이클립스 설치는 처음 해보는데 다운로드나 환경변수 설정과 같이 윈도우의 설치 과정보다도 훨씬 간소화 되었다. 이번 포스팅에서의 실습은 맥으로 진행할 것이다.
오버플로우란 타입이 허용하는 최대값을 벗어나는 것을 말한다. 반대로 언더플로우는 타입이 허용하는 최소값을 벗어나는 것을 말한다. 정수 타입 연산에서 오버플로우 또는 언더플로우가 발생되면 (중략) 해당 정수 타입의 최소값 또는 최대값으로 되돌아간다.
85쪽, 이것이 자바다.
위의 인용문은 오버플로우와 언더플로우를 설명한다. 개념에 이어 byte 타입을 활용한 예시로 이해를 돕는다. byte의 최댓값은 127, 최솟값은 -128이다. byte의 value를 127로 설정하고 value++; 를 통해 1이 증가하도록 하면 -128의 결과값이 도출된다. 최대값을 초과하자 최소값으로 돌아가는 개념이다.

오버플로우와 언더플로우 샘플 코드를 따라 실습했다. var1과 var2의 값이 출력되는 결과에 따라 오버플로우와 언더플로우의 원리를 확실히 이해할 수 있었다.
제네릭(Generic)이란 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능
573쪽, 이것이 자바다.
제네릭 타입은 결정되지 않은 타입을 파라미터로 가지는 클래스와 인터페이스를 말한다. 제네릭 타입은 선언부에 '<>' 부호가 붙고 그 사이에 타입 파라미터들이 위치한다.
575쪽, 이것이 자바다.
다음으로는 2권에 있던 제네릭 타입을 실습해보았다. 특정 타입을 미리 지정하지 않고 외부 사용자에 의해 지정될 수 있다는 특징이 돋보이는 타입이다.

상기 실습 또한 책에서 제공한 코드를 따라 실습한 결과이다. Product 제네릭 타입을 활용하여 TV와 Car를 저장하고 값을 도출하는 과정이다. 타입 파라미터를 대체하는 방법과 매개값과 리턴값을 설정하는 방법을 습득할 수 있다.
책의 일부만 도출하여 실습해보았다. 자바의 개념과 실제 활용 방법을 습득하고 싶은 이들이 읽기 적합한 책이다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."