본문 바로가기
카테고리 없음

[책] 이것은 자바다(feat. JAVA21)

by 수목원 2024. 4. 23.

 

JAVA21(23/09/20 릴리즈)의 감도 익히고 내부스터디도 할 겸 어떤 것으로 스터드를 하면 좋을까
고민하다가 한빛미디어의 지원으로 다수의 현장에서 교육교재로 사용하는 ‘이것이 자바다’를 리뷰하게 되었습니다.

이것은 자바다 표지
이것은 자바다 표지

 

자바의 핵심을 완벽히 이해하는 데 도움이 되는 기본서


대학교때부터 웹 어플 등에서(JBuilder를 이용해 윈도프로그램까지) 자바를 이용하였지만
프로젝트 환경에 맞게 언어를 사용하는 것이고 언어별로 기본서는 하나씩 있으면 좋겠다고 생각하는지라
토비의 스프링과 함께 이 책은 기본서로 두고 보기 좋다고 생각합니다.

새로운 기술들은 발전된 모습을 보여주기에 당장은 프로덕트에 적용하기 어려워도 감을 잡고 있으면
더 좋은 패턴을 적용해 볼수 있을 것입니다.

// 😰
public class HelloWorld {   
    public static void main(String[] args) {   
        System.out.println("🖐️, 🌏!");  
    }  
}
//JEP 445 👍
void main() {  
    System.out.println("🖐️, 🌏!");  
}

 

 

이 책은 총 5개의 파트로 구성되어 있으며, 자바 언어의 기초부터 최신 기능까지 다루고 있습니다.
특히 쓰레드, 스트림 등 처음 접하는 개념들도 친절하게 설명하여 이해하기 쉽게 구성되어 있습니다.
(실무에서 Java를 익숙하게 사용 중이라면 Part3부터 추천)

 

  1. 자바 언어의 기초
    이 파트에서는 운영체제별 JDK 설치부터 시작하여 이클립스 설정, 코드 작성부터 실행까지의 과정을 다룹니다.
    또한 변수와 타입, 연산자, 조건문과 반복문 등의 기본적인 개념들을 소개합니다.

  2. 객체지향 프로그래밍
    객체지향 프로그래밍 관련 참조 타입, 클래스, 상속, 인터페이스 등을 다루며
    이를 통해 객체들을 라이브러리화 하고 모듈화 하는 방법을 소개합니다.

  3. 라이브러리 활용
    자바의 주요 라이브러리(java.base 모듈) Object 클래스부터 시작하여 제너릭, 멀티스레드 등의 개념과
    특히 람다식과 스트림 요소 처리를 위한 부분을 설명합니다.

  4. 데이터 입출력
    입출력 스트림부터 네트워크 입출력, 데이터베이스 입출력까지를 다룹니다.
    이를 통해 실제 데이터를 다루는 방법을 배울 수 있습니다.

  5. 최신 자바의 강화된 언어 기능
    자바 21에서 강화된 내용들을 다룹니다. 로컬 변수 타입 추론, switch 문의 null 처리 및 패턴 매칭,
    가상스레드, 레코드 패턴 등의 내용을 포함합니다.

이것은 자바다 표지 설명이것은 자바다 표지 설명
이것은 자바다 표지 설명

 

예제 코드가 총 900개로 늘어나고, 기본서의 특성상 최신 자바 업데이트에 맞춰 진화되고 있으며
또한 Q&A를 위한 카페유튜브 강의도 제공되어 있어 보다 심도 있는 학습이 가능합니다.

 

개발자로서 오랜 경험을 가지고 계셨던 분들도, 또한 프로젝트에 따라 언어를 적절히 활용하는 것이 중요한
현대 개발 환경에서 자바의 기본 지식을 되짚어볼 필요가 있습니다.

"이것이 자바다"는 자바를 처음 접하는 입문자부터 중급 수준의 개발자까지 다양한 수준의 독자들에게 도움이 될 것입니다.
자바 언어의 기초를 탄탄히 다지고 싶은 분들에게 적극 추천합니다.

Appendix. New feature Java21

Core Java Library

JEP 431: Sequenced Collections

JEP 442: Foreign Function & Memory API (Third Preview)

JEP 444: Virtual Threads

JEP 446: Scoped Values (Preview)

JEP 448: Vector API (Sixth Incubator)

JEP 453: Structured Concurrency (Preview)

 

Java Language Specification:

JEP 430: String Templates (Preview)

JEP 440: Record Patterns

JEP 441: Pattern Matching for switch

JEP 443: Unnamed Patterns and Variables (Preview)

JEP 445: Unnamed Classes and Instance Main Methods (Preview)

 

HotSpot:

JEP 439: Generational ZGC

JEP 449: Deprecate the Windows 32-bit x86 Port for Removal

JEP 451: Prepare to Disallow the Dynamic Loading of Agents

 

Security Library:

JEP 452: Key Encapsulation Mechanism API