25년 동안 시스템 제어 및 애플리케이션 개발자로 활동한 베테랑 개발자이자, IT 전문 교육자이기도 하다. 메카트로닉스를 전공했으며, 삼성항공 시스템 설계 파트에서 하드웨어 제어용 소프트웨어 개발을 담당했다. 유수한 교육기관에서 재직자 및 전문가 위탁교육을 진행해 왔으며, 현재는 한국소프트웨어산업협회에서 교수로 근무하고 있다. 주로 오픈 소스 프레임워크, 안드로이드, IoT, 스택 애플리케이션 분야에서 현업 재직자 및 채용 예정자를 위한 소프트웨어 역량 강화 사업의 강사로 활동하고 있다.
컴퓨터공학 및 IT융합공학을 전공했으며, 20년간 비트컴퓨터, 코스타, 한국소프트웨어산업협회에서 현업 개발자 및 취업 준비생들을 위해 자바, C# 개발 및 다양한 기업체 교육을 진행하고 있다. 오늘도 빠르게 변화하는 시대에 발맞춰 프로그래밍 교육을 위한 즐거운 상상을 하고 있다.
IT로 직무전환을 준비하며 가장 먼저 한 것은 관련 기초 자격증인 '정보처리기사'의 준비였다. 비전공(경영학과) 출신으로 프로그래밍 언어는 이때 처음 공부하게 되었는데, 특히 '객체지향'을 다루는 자바가 시험을 준비하며 가장 어렵게 느껴졌던 기억이 있다. 개념과 코드 작성의 패턴을 익혀 반복 숙달하는 것이 특히 중요한 프로그래밍 언어 학습에서 900여개의 예제로 돌아온 '이것이 자바다 3판'을 통해 2024년에는 자바 기초 마스터를 도전해 본다.
책의 구성
5개의 챕터로 구성된 책은
Part 01(01장 ~ 04장) : 자바 언어의 기본 문법
Part 02(05장 ~ 11장) : 객체지향 프로그래밍 기법
Part 03(12장 ~ 17장) : 표준 라이브러리 사용 방법
Part 04(18장 ~ 20장) : 데이터를 읽고 저장하는 방법
Part 05(21장) : 최신 자바에서 강화된 언어 및 라이브러리
로 구성되어 있으며, 1권에서는 Part01과 02를, 2권에서는 Part 03~ 05를 다루고 있다.
또한 필수 학습 내용인 본문과 더불어 선택적 학습 내용인 부록을 통해 MySQL을 이용한 데이터베이스 입출력과, JAVA UI 인 Swing과 JavaFX, 그리고 NIO 를 학습할 수 있도록 제공한다.
책의 장점
프로그래밍 언어의 개념을 처음 이해하는 것은 항상 어렵다. 특히 객체지향 언어인 자바의 경우 기초 문법을 명확히 하지 않으면 코드 구현에서 1차로 막히고, 이후 맞이하는 에러 상황에서 또 한번의 장벽을 연달아 마주치게 된다. '이것이 자바다'는 다양한 코드 문법을 그림으로 명확하게 설명하는데, 이미지를 통해 프로그래밍 전반의 절차를 그리며 이해 할 수 있도록 안내한다.
프로그래밍 언어 학습의 절대 명제는 '반복 코딩'이다. 이해가 가지 않더라도 같은 코드를 반복해서 따라 하며 코딩 패턴을 익히는 것이 실력 향상을 위한 첫 걸음인데, 샘플 코드에서 주석과 함께 제공되는 부연 설명은 학습자들의 이해를 돕고, 보다 명확하게 코드를 작성할 수 있도록 안내한다.
또한, 변화하는 자바 버전에 대응하여 자바 21에서 강화된 언어 기능과 라이브러리를 설명한다. 단순히 변경된 내용의 정리가 아닌, 자바 21버전 전/후의 코드 비교를 통해, 학습자들이 명확하게 이해 할 수 있도록 설명한다.
마치며
자바의 기초를 쌓는 1권에 이어, 2권에서는 객체지향 프로그래밍 언어인 자바가 왜 다른 프로그래밍 언어와 다른지를 설명한다. 클래스와 상속의 개념을 시작으로 인터페이스와 중첩 선언, 익명 객체까지 설명함으로써 자바 초보자에게는 어렵게 다가올 수 있지만, 자바 개발자를 목표로 한다면 필수로 알아야 할 개념을 명확하게 설명하는 점이 책의 장점이다. 또한 챕터에서 다루는 주제의 개념을 명료하게 정의하고 이미지로 설명 하는 부분과 함께, 짧은 예제 코드로 구현함으로써 자바 입문자의 이해도를 높이는 구성은 반복 학습을 더 효과적으로 할 수 있도록 안내한다.
웹 프로그래밍 혹은 백엔드 개발자를 목표로 한다면, '이것이 자바다 개정 3판'으로 자바의 참 맛을 알아가는 것을 추천해본다.
자바 프로그래밍을 배우고 싶은데 어떤 자료를 찾고 계신가요? 처음 시작하는 분들을 위한 필수 도서인 자바 프로그래밍의 바이블, 『이것이 자바다(3판)』로 깊이 있게 학습해보세요.
『이것이 자바다(3판)』은 자바 프로그래밍의 세계로 초점을 맞춘 뛰어난 학습 교재로, 최신 JAVA 21 버전을 반영하여 기초부터 심화까지 폭넓게 다루었다. 『이것이 자바다』는 자바의 교과서라 불러도 어색하지 않을 만큼 2015년 초판 이후 9년 동안 꾸준히 사랑을 받아 자바 베스트셀러로 자리매김했다.
이번 한빛미디어에서는 최신 LTS(Long Term Support) 버전을 기반으로 기존 내용을 업데이트하여 출시되었다.
자바 언어의 기초부터 객체지향 프로그래밍, 데이터 입출력, 그리고 최신 자바의 강화된 언어 기능까지 모두 다루었다. Chapter마다 900개의 실전 예제들이 포함되어 개념을 쉽게 이해하고 실습할 수 있도록 확인문제가 마지막에 수록되었다.
로컬 변수 타입 추론, switch 문의 null 처리 및 패턴 매칭, 레코드 패턴 등 새로운 기능이 자세히 설명되어 있다. 입문자들 뿐만 아니라 전문 개발자들에게 도움이 될 것으로 기대된다.
MySQL용 데이터베이스 입출력, Swing, JavaFX, NIO 기반 입출력 및 네트워킹 등을 주제로 하여 자바 프로그래밍에 관심을 갖고 탐구할 수 있도록 돕는 좋은 자원이다.
[무료 특별판] e-Book을 통해 본 책에서 다루지 않은 추가적인 학습 자료를 제공하였다. 더욱 난이도 있는 학습을 즐길 수 있어 더 깊이 있게 자바를 학습할 수 있고, 책에서 다룬 내용을 보충하고 확장할 수 있는 기회가 된다.
마치며 자바 프로그래밍 입문자부터 경험이 있는 전문가까지 모두 추천하는 『이것이 자바다(3판)』은 최신 기능이 포함되어 있어 도움이 될 것으로 기대된다. 체계적으로 학습하는데 유용하다.
자바 프로그래밍을 더욱 편리하고 효율적으로 학습할 수 있도록 한빛미디어에서는 여러 가지 부가 기능을 제공하고 있다. 동영상 강의, 네이버 카페 등을 통해 학습 과정에서 발생할 수 있는 궁금증을 빠르게 해결할 수 있다.
자바의 핵심 개념을 이해하고, 최신 도구를 활용해 지식을 쌓고 더욱 효과적인 개발을 할 수 있을 것이다. 책을 완독하게 되면 코드를 보고 자바의 구조와 실행 흐름을 머릿속에서 그려낼 수 있는 능력을 갖게 될 것으로 보인다.
IT 세계로 들어오면 SI나 서비스 기업의 서버는 대부분 JVM 계열인 자바를 씁니다. 우스갯소리로 10년 전만 해도 자바 두명 타요 하면서 승합차에서 말하는 짤도 있는데요. 또한 우리나라는 자바 공화국이라는 말도 많죠.
컴퓨터 언어인 자바는 왜 많이 쓸까요?
기업 입장은 스프링 프레임워크에 많은 인력들이 쓰기 때문일 수 있습니다. 자바를 바탕으로 한 서버가 웬만하면 셧다운이 적기 때문일 수 있습니다.
그보다 더 큰 이유는 객체지향 프로그래밍 언어로서 이유가 클 거라고 생각이 드는데요. 이것이 자바다 3판은 책을 통해 자세히 알아볼 수 있습니다.
자바는 "Write Once, Run Anywhere"라는 개념으로 유명합니다. 한 번 작성한 자바 코드는 다양한 운영체제와 장치에서 실행할 수 있다는 것을 의미하는데요. 그만큼 플랫폼 독립성 강합니다. 자바의 가상 머신(Java Virtual Machine, JVM)이 자바 바이트코드를 해당 플랫폼에 맞는 기계어로 변환하기 때문에 가능합니다.
처음 프로그래밍 언어 공부하기는 어렵습니다.
하지만, 이것이 자바다 3판 책은 친절한 저자님이 있어서 쉬워질 수 있습니다. 한빛미디어 유튜브를 통해 저자가 직접 책의 내용을 바탕으로 강의를 해줍니다. 책과 함께 자바 프로그래밍의 기초부터 심화까지 깊이 있게 학습할 수 있습니다.
비전공자에겐 유튜브 강의를 먼저 듣고 공부를 해도 됩니다. 반대로 강의를 듣기 전 한번 쓱 책을 읽고 강의를 들어도 책을 이해하는 데 좋습니다. 완독 후엔 코드만 보고 자바의 구조와 실행 흐름을 이해하는 자신을 볼 수 있습니다.
최근 자바의 변화는 예전에 알던 자바와 사뭇 다릅니다. 함수형 언어인 파이썬, 코틀린 등의 영향일 수도 있습니다. 자바도 바뀌는 언어의 변화에 발을 맞추는 것이죠.
프로그래밍 언어를 공부할 때는 언어의 버전별 이슈에 대해서 알아야 하는데요. 기존의 JAVA 기본서는 대부분은 20 이하 버전을 알려줍니다. IT회사 면접에서 전 버전과 현재 버전의 차이에 관해서 자주 물어봅니다. 이때 말할 수 있도록 책에서 자세히 서술돼 있습니다. 현업에서 사용하고 있는 자바의 최신 기능까지 배울 수 있는 이것이 자바다 3판을 추천합니다.
그림을 통해 자바 프로그래밍 기법에 대한 설명을 듣고, 친절한 실습 코드와 함께 관련 개념에 대해 주석과 자세한 설명으로 명확하게 내용을 익힐 수 있습니다. 본문 개념을 학습 후엔 확인 문제를 통해 자신 실력을 점검할 수 있습니다.
책에서 개념을 배우며 선택/ 심화 학습을 위한 독자분들을 위해 저자님은 아낌없이 주는 나무처럼 자료를 제공합니다.
- 온라인 서점에서 e-book 이것이 자바를 검색하거나 한빛미디어 자료실에서 무료 특별판
'이것이 자바다'는 자바 기초 지식과 활용을 위한 기본서이다. 기본서적이니만큼 Java를 쉽게 이해하면서도 활용할 수 있도록 하는 것이 책의 주요 목적이라 할 수 있다. 책은 1,000장이 넘는 방대한 크기를 자랑하고 있지만 500장씩 1권과 2권으로 분리되어 있어 부담되는 무게나 크기는 아니었다.
'이것이 자바다'의 특징으로는 다음과 같은 것들이 있다. 아래 각 특징에 대한 설명을 이어나가도록 한다.
✅ 초심자를 대상으로 한 설명(개념, 도식화) ✅ 다양한 소통 창구 ✅ 동영상 강의와 확인 문제 등의 학습 자료 ✅ 샘플코드를 통한 실습
✅ 초심자를 대상으로 한 설명(개념, 도식화)
객체지향 프로그래밍과 같은 개념들은 초심자들이 이해하기 어려울 수 있다. 이러한 개념에 대한 예시와 예시의 도식화를 제공하여 독자들이 쉽게 이해할 수 있도록 돕는다.
변수에 최초로 값을 대입하는 행위를 변수 초기화라고 하고, 이때의 값을 초기값이라고 한다. 초기값은 다음과 같이 변수를 선언함과 동시에 대입할 수도 있다. 38쪽, 이것이 자바다.
필드, 메소드 등의 정석적인 개념과 실제 활용되는 곳에서의 역할, 역학관계 등을 살펴볼 수 있다. 다소 복잡한 개념이라 그림을 보더라도 이해하기 어려울 수 있다. 이해가 어려운 부분은 유튜브 강의나 독자 Q&A를 활용하면 된다.
✅ 샘플코드를 통한 실습
책의 전반에 걸쳐 샘플코드와 주석이 제공된다. 샘플코드를 따라 직접 실습하면 활자로만 보았을 때보다 이해가 수월히 되기도 한다. 물론, 실습을 한 번 한다고 해서 완전히 이해하는 것은 어렵다. 샘플코드를 작성하고 실행하고 결과를 분석하는 과정을 반복하다보면 절로 이해할 수 있다는 것이 저자 신용권 교수의 지론이다. 저자의 방식을 반복하다보면 추상적인 개념도 내재화되리라 생각된다.
챕터별로 문제가 제공된다. 문제를 고민하는 과정을 통해 개념을 이해했는지 확인할 수 있다. 확인 문제와 답, 예제소스는 상기 한빛미디어 링크에서 다운로드 받을 수 있다.
자바 개발 시 필요한 상식들 또한 설명한다. 위의 이미지는 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를 저장하고 값을 도출하는 과정이다. 타입 파라미터를 대체하는 방법과 매개값과 리턴값을 설정하는 방법을 습득할 수 있다.
책의 일부만 도출하여 실습해보았다. 자바의 개념과 실제 활용 방법을 습득하고 싶은 이들이 읽기 적합한 책이다.
책이 1권과 2권으로 분리되어 두꺼운 책에 비해 보기 편하게 되어있습니다. 목차는 자바 기초, 객체지향 프로그래밍, 라이브러리 활용, 데이터 입출력, 최신 자바 기능 순서로 구성되고 'Part 03 라이브러리 활용'부터 2권이 시작됩니다. 1000페이지 가량되기 때문에 1, 2권으로 분리되어 있는게 확실히 보기 편한것 같습니다.
목차구성
- Part 01 자바 언어의 기초
- Part 02 객체지향 프로그래밍
- Part 03 라이브러리 활용
- Part 04 데이터 입출력
- Part 05 최신 자바의 강화된 언어 기능
목차
전반적으로 기본서 답게 자바 기본기를 익힐 수 있도록 구성이 잘 짜여진 느낌을 받았습니다. 아무래도 기본서는 문법을 많이 강조하기 때문에 각 챕터별 문법개념을 입문자가 쉽게 이해할 수 있도록 구성되어야 합니다. 특히, 자바는 객체지향 프로그래밍 언어이기 때문에 객체지향에 대한 다양한 문법을 입문자가 쉽게 이해할 수 있게 도와주어야 된다고 생각하는데, 이것이 자바다에서는 개념을 도식화하거나 소스코드 강조 표시를 해주어 실습 전 개념 부분을 충분히 이해할 수 있도록 신경을 많이 썼다는 것이 확실히 느껴졌습니다.
아래는 String 객체에 대한 도식화와 소스코드 설명으로 독자들이 이해하기 쉽게 풀어내고 있는데 실습 전, 후로 개념을 이해하는데 이만한 설명이 더 없을 정도로 설명이 잘되어 있는 것을 확인할 수 있습니다.
객체 - 도식화 및 소스코드 설명
파트별 구성을 살펴보자면, 'Part 01 자바 언어의 기초'에서는 개발에 기조가 되는 변수와 연산자, 조건문과 반복문으로 구성되어 있고 'Part 02 객체지향 프로그래밍'에서는 참조타입, 클래스, 상속, 인터페이스 등으로 챕터로 구성하여 객체지향 프로그래밍에서 필수로 알아야할 문법을 알려줍니다. 사실상 객체지향 파트가 자바에서 가장 중요한 부분이기 때문에 저 역시 해당 파트를 집중적으로 봤고, 저자가 해당 파트에 많은 신경을 썼다는 것을 느낄 수 있었습니다.
아무래도 자바는 순서대로 학습하면 지루한 면이 있다보니 기본서는 객체지향 쪽 설명만 잘 구성되어도 입문자들이 빠르게 학습한 후 웹과 같은 응용프로그램 개발에 수월하게 접근할 수 있을 것입니다. 자바를 처음 접하는 입문하시는 분들은 파트2에 조금 더 집중해서 학습하시는 것을 추천드리며, 코딩하시면서 두고두고 참고하셨으면 합니다.
NullPointerException 실습
'Part 03 라이브러리 활용'에서는 자바의 기본 모듈, 제네릭, 멀티 스레드, 컬렉션, 람다식 등으로 자바 고급에 해당하는 내용으로 구성되어 있고, 'Part 04 데이터 입출력'에서는 데이터와 네트워크 입출력, 데이터베이스 입출력 챕터가 구성되어 있습니다. 특히, 데이터베이스 입출력은 오라클 DB를 연동하고 게시판 구현을 통해 데이터의 저장, 수정, 삭제, 읽기 처리를 할 수 있고 SQL도 익히면서 학습할 수 있는 장점이 있습니다. 데이터베이스 연동은 개발에 필수적인 부분이므로 해당 챕터에서 학습하신 내용을 개발 프로젝트에 응용하여 활용하시면 실무 개발자로 한걸음 더 나갈 수 있는 계기가 될 수 있을 것입니다.
챕터별로 확인문제도 제공하는데 객관식과 실행결과 예측, 소스코드 구현 문제를 제공하여 학습한 내용을 한번 더 확인할 수 있게 도와줍니다.
Chapter 확인문제
마지막으로 최신 자바 버전인 자바 21을 별도 챕터로 구성하여 확정된 기능을 살펴볼 수도 있습니다. 이것이 자바다에서는 로컬 변수 타임 추론, Switch 문의 null 처리 및 패턴 매칭, 레코드 패턴, 가상 스레드, 순차 컬렉션, 기본 문자셋 변경을 간략히 소개하여 이전 버전과 다른 점을 가볍게 살펴볼 수 있습니다. 실제 응용 프로그램 개발(웹 개발 등)에서는 빠르게 수용되지는 않더라도 장단점을 미리 알아둔다면 빠르게 변화하는 환경에 바로바로 대응할 수 있을 것입니다.
자바21 최신버전 요약
3. 유튜브 강의와 소스코드
유튜브 무료 강의 제공
카페 질문게시판 운영
실습예제 소스코드 제공
이것이 시리즈는 유튜브 동영상 강의를 무료로 제공한다는 점이 장점입니다. 이것이 자바다 역시 유튜브 강의가 제공되고 있고 무려 199강까지 존재하는데 저자 신용권님께서 직접 강의를 알려주십니다. 전달력이 조금 아쉽기는 하나, 입문자들이 이해하기 쉽게 설명해주시고 실습을 하면서 진행하기 때문에 책으로 이해안되시는 경우 유튜브 강의로 학습하시는 것을 추천드립니다. 무엇보다 초보개발자 분들께서는 기본서를 옆에 두고 코딩을 하는 경우가 많은데, 이해 안되는 개념이 있다면 해당되는 챕터만 별도 동영상으로 학습하면 많은 도움이 되지 않을까 생각합니다.
이것이 자바다 책은 기본서이기 때문에 각 챕터별 문법적 설명이 강조되므로 입문자 입장에서는 꾸준히 학습하기에 지루한 측면이 있습니다. 이를 해소하기 위해 각 챕터별 확인문제를 제공하고 있으나, 이 역시 꾸준한 학습하기에는 다소 부족한 점이 있어 보였습니다. 아무래도 프로그래밍 언어는 프로그램을 개발하는 게 목적이기 때문에 완성된 프로그램을 만들어보는데에 그 의미가 크지 않을까 싶은데요. 각 파트별로 간단한 프로젝트(도전과제 등)를 만들어볼 수 있게 구성했으면 하는 아쉬움이 많이 남습니다.
5. 총평
이 책은 자바 기본서로서의 역할을 충분히 다했다고 봅니다. 또한, 유튜브 강의까지 제공되어 자바 입문자들이 쉽게 학습할 수 있도록 제공하고 있어 기본서 이상의 장점이 있다고 생각합니다. 물론 기본서이다보니 대학생이나 처음 개발에 입문하시는 분들께는 어려운 책일 수 있고 다소 지루한 면도 있을거라 봅니다. 그러나 기본서는 모르는 내용이 있을 때 찾아보며 학습할 수 있는 장점도 있으므로 '이것이 자바다'를 기본서로 두고 코딩하시는 것을 추천드립니다.
추가로 기본서로 학습을 끝낼 경우 학습한 내용을 금방 잊어버리기 때문에 이 책을 학습 중이거나 학습을 완료하였다면, 자바 웹 개발도 같이 도전해보시길 바랍니다. 자바를 학습하시는 모든 분들께 '이것이 자바다' 추천드리며, 이 책이 실무 개발자로 한걸음 나아가는데 큰 도움이 되길 바라겠습니다.
안녕하세요, 개발자 여러분! 오늘은 프로그래밍 언어 중 가장 인기 있는 언어 중 하나인 자바를 배우고자 하는 분들을 위한 필독서, “이것이 자바다 3판“에 대해 이야기해보려고 합니다.
자바는 오랜 기간 동안 사랑 받아온 언어이며, 현재도 많은 시스템과 애플리케이션에서 널리 쓰이고 있죠. 이 책은 자바의 기초부터 심화 내용까지 배울 수 있도록 구성되어 있어, 자바 프로그래밍을 배우려는 취업 준비생이나 스프링 프레임워크를 공부하고자 하는 백엔드 개발자 준비생들에게 특히 추천하고 싶습니다.
제가 첫판인 1판부터 이번 3판까지 모두 본 독자로서 말씀드릴 수 있는 것은, 이 책은 정말 자바를 공부하고자 하는 모든 입문자들에게 교과서와 같은 존재라는 것입니다. 많은 교육기관에서 이용을 하였으며, 현재 자바 개발자로 현업에서 일하시는 분들도 많이 이 책을 통해 공부를 했다고 합니다.
자바 버전이 업데이트되면서, 2판에서는 Java 8~17 버전에 맞게 많은 부분이 업데이트되었고, 특히 GUI 개발 기능에 대한 부분이 많이 개선되었습니다. 이번 3판에서는 Java 21 버전으로의 변경을 반영하였는데, 만약 이전 개정판을 가지고 계신 분들이라면, 3판의 Chapter 21 부분만 참고하시면 됩니다.
이 책은 자바를 공부하고자 하는 입문서로서, 자바 프로그래밍 언어에 대해 초급 개발자로 취업을 준비하거나 스프링을 공부하기 전에 반드시 알아야 하는 모든 부분을 포함하고 있습니다. 부록으로 제공되는 PDF에는 MySQL DB를 사용한 개발 방법, Swing과 JavaFX를 이용한 GUI 프로그래밍, 네트워크 프로그래밍 등이 포함되어 있어, 이 책 한 권이면 자바 개발자가 되기 위한 기본적인 내용은 모두 다루고 있다고 할 수 있습니다.
책의 구성은 아래와 같습니다.
PART 01 자바 언어의 기초
자바의 세계에 첫 발을 딛는 분들을 위해 프로그래밍 언어의 개념부터 시작하여, 자바 개발 환경 설정, 기본 문법, 조건문과 반복문 사용 방법에 대해 소개합니다. 또한, 이클립스 같은 통합 개발 환경(IDE) 설치 및 사용법도 다룹니다.
PART 02 객체지향 프로그래밍
자바의 핵심인 객체지향 프로그래밍에 대해 배웁니다. 클래스와 객체의 개념부터 시작하여 상속, 인터페이스, 다형성 등 객체지향의 중요한 특징들을 심층적으로 이해합니다. 또한, 예외 처리와 같은 중요한 프로그램밍 기법도 다룹니다.
PART 03 라이브러리 활용
자바의 표준 라이브러리 사용 방법과 함께, 제네릭, 멀티 스레드, 컬렉션 프레임워크 등을 통해 보다 효율적인 코드 작성 방법을 배웁니다. 또한, 스트림 API를 활용한 데이터 처리 방법도 학습합니다.
PART 04 데이터 입출력
파일 시스템과 네트워크를 통한 데이터 입출력 방법을 배웁니다. JDBC를 사용한 데이터 베이스 작업 방법도 포함되어 있어, 자바 애플리케이션에서 외부 데이터와의 연동 방법을 이해할 수 있습니다.
PART 05 최신 자바의 강회된 언어 기능
자바의 최신 버전인 Java21에서 추가된 강회된 언어 기능과 라이브러리에 대해 소개합니다. 로컬 변수 타입 추론, 패턴 매칭, 가상 스레드 등 최신 기능을 통해 보다 효율적이고 간결한 코드 작성이 가능해집니다.
결론적으로, “이것이 자바다 3판”은 자바 프로그래밍을 배우고자 하는 모든 분들에게 필수적인 지침서입니다. 자바의 기초부터 고급 기능에 이르기까지 폭넓게 다루며, 최신 자바 버전의 업데이트를 반영한 이 책은 입문자부터 현업에서 활동중인 개발자까지 모두에게 유용한 자료가 될 것입니다. 특히, 자바 개발의 기본을 다지고 싶은 취업 준비생이나 스프링 프레임워크를 공부하고자 하는 백엔드 개발자 준비생들에게는 더욱더 강력히 추천합니다. 부록으로 제공되는 다양한 개발 방법들은 실제 개발 과정에서 큰 도움이 될 것이며, 이 책 한 권이면 자바 개발자로서 필요한 기본적인 내용을 모두 습득할 수 있을 것입니다. 자바 프로그래밍의 세계에 첫 발을 딛고자 하는 분들에게 “이것이 자바다 3판“은 최고의 시작점이 될 것입니다.
프로젝트 환경에 맞게 언어를 사용하는 것이고 언어별로 기본서는 하나씩 있으면 좋겠다고 생각하는지라 기본서로 두고 보기 좋다고 생각합니다. 기존 판에 비해 예제소스는 900개로 늘어났고, JAVA업데이트에 맞춰 진화해가는 기본서이므로 Q&A를 위한 카페나 유튜드 강의도 제공하고 있으니 기본부터 스터디해보기 좋습니다.
교육 현장에서 가장 많이 쓰이고 있다는 자바 기본 프로그래밍 기본서 <이것이 자바다>. 이 책은 이전부터 알고 있었다. 아니, 개정판이 나오기 이전에 나도 이 책을 가지고 있었던 적이 있다. 다만 그때는 프로그래밍과 관련된 일을 계속 하리라는 생각을 못 했던 터라, 1권만 읽고 그 이후로 안 봤던 기억이 있다. 하지만 지금은 자바 언어를 사용하는 일을 계속하고 있고, 막상 코드를 짜다 보니 정말 내가 딱 아는 선에서만 계속 반복되어 사용하고 있다는 아쉬움이 느껴졌다. 자바도 버전이 올라가며, 제공하는 기능 같은 게 다를 텐데? 그런 기능에 대해서도 알고 싶은 마음도 컸다. 그런 찰나에 읽게 되고, 실습을 따라 하게 된 <이것이 자바다>.
책은 총 2권으로 되어 있다. 3판 개정판으로 최신 자바 21 LTS 버전을 기반으로 기존 내용을 보강했다고 한다. 이전과 다르게 'PART 05'가 추가되어, 자바 21에서 강회된 언어 및 라이브러리에 대해서도 확인할 수 있었다. 물론 프로젝트 시에는 안정화된 버전을 많이 사용하겠지만, 최신 자바에 대해 궁금하면 알아두는 것도 좋다고 본다.
책은 자바를 어떻게 설치해야 하는지부터 친절하게 알려준다. 어디서 JDK를 받을 수 있는지? 그리고 그걸 컴퓨터에 설치한 후에는 어떻게 적용해야 하는지도, 설명과 이미지로 알려주고 있다 보니 초보자도 어렵지 않게 시작을 할 수 있을 것 같다.
해당 책은 총 5개의 파트로 나눠져 있다. 어떤 언어든 기본 문법을 알아야 사용할 수 있다고 생각을 한다. 그렇기 때문에 시작을 문법으로 한다. 책의 본문만 학습하더라도 웹 프로그래밍 개발에는 전혀 문제가 없다지만, 그 외에 필요한 영역이 있을 것을 고려해 별도 PDF도 제공하고 있다. 부록에는 MySQL을 이용한 데이터베이스 입출력, Java UI - Swing, Java UI - JavaFX, NIO와 관련된 내용이 있고, 해당 PDF는 한빛미디어 홈페이지 자료실에서 받을 수 있다고 하니, 참고하면 좋을 것 같다.
part 01. (01~04) 자바 언어의 기본 문법을 다룸
part 02. (05~11) 객체지향 프로그래밍 기법을 다룸
part03. (12~17) 표준 라이브러리를 사용하는 방법을 다룸
part04. (18~20) 데이터를 읽고 저장하는 방법을 다룸
part05. (21) 최신 자바에서 강회된 언어 및 라이브러리를 다룸
그리고 각 Part가 끝날 때마다 확인 문제도 제공하고 있다. 앞에서 배운 내용을 바탕으로 하여 문제가 제공되기 때문에, 리마인드 하면서 풀어 보면 좋을 것 같다. 해당 문제에 대한 답은 책에서 따로 제공하지는 않고 있으며, 한빛미디어 홈페이지에서 pdf를 다운로드하여 확인할 수 있다.
그리고 많은 설명들을 이미지나 도형을 통해 확인할 수 있다. 아무리 잘 쓰인 글이라도 그림이 없다면, 이해할 때 조금 어려운 부분들이 있다. 그런 부분들을 위처럼 쉽게 이해할 수 있도록 제공하고 있으니, 이해하는 데에 많은 도움이 될 것 같다.
읽기만 해서 되는 학습이 있는 반면, 프로그래밍 언어 학습은 읽기만 해서 되지는 않는다. 많은 경험자들이 일단 직접 따라 해보라고 말한다. 그런 경험들이 반영되어 있어서인지, 책에는 무려 900개의 실전 예제를 제공하고 있다. 그냥 눈으로만 볼 게 아니라, 직접 따라 하기를 추천한다. 그리고 해당 예제에는 위처럼 글박스나 주석 등을 통해 부가 설명 등도 제공하고 있으니, 참고하기도 좋다.
글로만 보면 이해가 되지 않던 게, 이렇게 코드로 따라 치면서 이해되는 부분도 있다. 그러니 따라치면서 이해하려고 노력해 보자. 책에서는 이클립스 설치에 대해 제공하고 있지만, 요즘은 인텔리제이도 많이 사용하고 있기 때문에, 본인이 사용하는 IDE를 이용해 작성해 보면 될 것 같다. 상속이나 인터페이스 부부을 실습하다 보면, 예제가 반복이 되면서 확장되는 부분이 많다. 반복되는 부분들은 앞에서 작성했던 코드를 기억해 보며, 안 보고 입력해 보는 것도 좋은 학습이 될 것 같으니 추천한다.
그리고 이번 개정판에 추가된 Part05에서는 자바 21 버전에서 강화된 내용을 설명하고 있다. 로컬(지역) 변수 타입 추론, switch 문의 null 처리 및 패턴 매칭, 레코드 패턴 등. 자바 21이 아닌 이전부터 제공되던 기능도 있지만, 이번 장을 통해 알게 된 게 많았다. 최신 자바를 사용할 예정이라면, 참고하여 알아두는 게 좋을 것 같다.
이번에 자바 13부터 제공되고 있었던, 텍스트 블록 문법을 알게 된 게 이득이었다. 물론 이전 프로젝트에서는 자바 8이랑 자바 11을 사용했기 때문에, 이 문법을 사용할 수가 없었다. 그런데 앞으로 다른 최신 버전을 사용하게 된다면, 당연히 쓸 수 있는 기능이니 알아두면 활용할 수 있는 거 아닌가. 자바 공부를 하면서 느낀 것은 정말 아는 만큼 보인다는 거다. 물론 인터넷 세상 속에 사는 우리는 검색하면 많은 정보를 얻을 수 있다. 그리고 쉽게 얻을 수 있다. 하지만 그 많은 정보들 중에서 내가 쓸만한 정보인지를 판별하기 위해서는 어느 정도 베이스는 있어야 한다고 생각한다. 자바 언어를 사용해야 한다면, 당연히 자바에 대해 알아야겠지? 물론 이론 없이 실습만으로 된다고 하는 사람들도 있지만, 개인적으로 나는 기본적인 이론은 알아야 한다는 입장이기 때문에 그 기본적인 것을 <이것이 자바다> 책으로 채우고 다지려고 한다. 책을 한 번 보는 걸로 끝내면 안 된다고 하니, 두고두고 여러 번 보면서 자바와 가까워져야겠다.