상세정보
미리보기
기본기가 탄탄한 자바 개발자 (제2판)
- 저자
- 제이슨 클라크,마르테인 페르뷔르흐,벤저민 J. 에번스 공저/김성원 역
- 출판사
- 제이펍
- 출판일
- 2024-09-11
- 등록일
- 2025-10-16
- 파일포맷
- PDF
- 파일크기
- 15MB
- 공급사
- 예스이십사
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
JVM부터 성능, 동시성, 컨테이너화 등 고급 기술까지자바는 엔터프라이즈 소프트웨어 엔지니어링의 핵심이다. 훌륭한 자바 개발자가 되기 위해선 기본기를 갖춰야 한다. 이 책은 자바 8 이후 자바 생태계와 릴리스 주기가 어떻게 변화했는지 살펴보며, 특히 자바 11 및 17에 추가된 새로운 기능을 설명한다. 자바 모듈 및 동시성 모델, 클래스 로딩과 같은 강력한 기능부터 성능 최적화와 바이트코드를 위한 고급 기술 그리고 테스트 중심 개발과 컨테이너 기반 배포와 같은 필수 최신 기술까지 알아본다. 코틀린 및 클로저 등 다른 JVM 언어까지 다뤄 자바 기술을 한층 더 업그레이드하고 탄탄한 기반을 다질 수 있도록 도와준다.
저자소개
레드햇의 자바 챔피언이자 수석 소프트웨어 엔지니어다. 뉴렐릭, 도이체 방크에서 수석 아키텍트였으며, 모건 스탠리에서 수석 기술 강사로 근무했다. jClarity를 공동 창립했고, 자바 커뮤니티 프로세스 집행위원회에서 새로운 자바 표준을 정의하는 데 도움을 줬다. 저서로 『자바 최적화』(한빛미디어, 2019)와 『Java in a Nutshell』(O’Reilly, 2014) 등이 있다. 전 세계 기업 및 콘퍼런스에서 자바 플랫폼, 시스템 아키텍처, 성능 및 동시성 등의 주제로 정기적으로 연설 및 교육하고 있다.
목차
지은이·옮긴이 소개 xv옮긴이 머리말 xvii베타리더 후기 xviii추천 서문(하인츠 카부츠) xx시작하며 xxii감사의 글 xxv이 책에 대하여 xxviii표지에 대하여 xxxiiPART I 버전 8에서 11 그리고 그 이후 1CHAPTER 1 모던 자바 소개 31.1 언어와 플랫폼 41.2 새로운 자바 릴리스 모델 61.3 향상된 타입 추론(var 키워드) 101.4 언어 및 플랫폼 변경 151.5 자바 11에서의 작은 변경 사항 20▶ 요약 30CHAPTER 2 자바 모듈 312.1 배경 설명 322.2 기본적인 모듈 구문 412.3 모듈 로드하기 452.4 첫 모듈형 앱 빌드하기 482.5 모듈을 위한 아키텍처 552.6 모듈을 넘어서 64▶ 요약 66CHAPTER 3 자바 17 673.1 Text 블록 673.2 switch 표현식 693.3 record 733.4 sealed 타입 853.5 instanceof의 새로운 형식 913.6 패턴 매칭과 프리뷰 기능 92▶ 요약 96PART II 한 발 더 들어가기 97CHAPTER 4 클래스 파일과 바이트코드 994.1 클래스 로딩과 클래스 객체 1004.2 클래스로더 1054.3 클래스 파일 살펴보기 1174.4 바이트코드 1234.5 리플렉션 138▶ 요약 144CHAPTER 5 자바 동시성 기초 1455.1 동시성 이론 입문 1465.2 디자인 콘셉트 1515.3 블록 구조 동시성(자바 5 이전) 1565.4 자바 메모리 모델 1795.5 바이트코드로 동시성 이해하기 182▶ 요약 205CHAPTER 6 JDK 동시성 라이브러리 2066.1 최신 동시 애플리케이션을 위한 빌딩 블록 2066.2 아토믹 클래스 2076.3 잠금 클래스 2096.4 CountDownLatch 2126.5 ConcurrentHashMap 2146.6 CopyOnWriteArrayList 2256.7 블로킹 큐 2296.8 퓨처 2396.9 작업과 실행 243▶ 요약 251CHAPTER 7 자바 성능 이해하기 2527.1 몇 가지 성능 용어의 기본 정의 2557.2 성능 분석에 대한 실용적인 접근 방식 2587.3 무엇이 문제인지 왜 신경 써야 하는가? 2657.4 자바 성능 튜닝은 왜 어려운가? 2697.5 가비지 컬렉션 2747.6 핫스폿에서의 JIT 컴파일 2847.7 JDK Flight Recorder 291▶ 요약 298PART III JVM에서 자바 외의 언어 299CHAPTER 8 다른 JVM 언어 3018.1 언어 분류학 3028.2 JVM에서의 다중 언어 프로그래밍 3078.3 프로젝트에 비자바 언어를 선택하는 방법 3148.4 JVM이 다른 언어를 지원하는 방법 318▶ 요약 322CHAPTER 9 코틀린 3239.1 코틀린을 사용하는 이유 3249.2 편의성과 간결성 3259.3 클래스와 객체에 대한 다른 시각 3379.4 안전성 3459.5 동시성 3499.6 자바와의 상호 운용성 353▶ 요약 358CHAPTER 10 클로저: 프로그래밍에 대한 다른 관점 35910.1 클로저 소개 36010.2 클로저 찾아보기: 구문 및 의미론 37010.3 함수형 프로그래밍과 closure 38810.4 클로저 시퀀스 소개 39010.5 클로저와 자바 간의 상호 운용성 39710.6 매크로 403▶ 요약 410PART IV 빌드와 디플로이먼트 411CHAPTER 11 그래들과 메이븐을 사용한 빌드 41311.1 기본기가 탄탄한 개발자에게 빌드 도구가 왜 중요한가 41311.2 메이븐 41911.3 그래들 450▶ 요약 481CHAPTER 12 컨테이너에서 자바 실행하기 48212.1 기본기가 튼튼한 개발자에게 컨테이너가 중요한 이유 48312.2 도커 기본 48712.3 도커로 자바 애플리케이션 개발하기 49412.4 쿠버네티스 51012.5 관측 가능성과 성능 519▶ 요약 524CHAPTER 13 테스트 기본 52513.1 테스트하는 이유 52613.2 테스트 방법 52613.3 테스트 주도 개발 53013.4 테스트 더블 53913.5 Junit 4에서 5로 552▶ 요약 559CHAPTER 14 Junit을 넘어선 테스트 56014.1 테스트컨테이너를 이용한 통합 테스트 56014.2 Spek과 코틀린을 사용한 명세 스타일 테스팅 57214.3 클로저를 사용한 속성 기반 테스트 579▶ 요약 594PART V 자바의 새 영역 595CHAPTER 15 고급 함수 프로그래밍 59715.1 함수형 프로그래밍 개념 소개 59815.2 자바의 함수형 프로그래밍 언어로서의 한계 60315.3 코틀린 함수형 프로그래밍 61915.4 클로저 함수형 프로그래밍 637▶ 요약 644CHAPTER 16 고급 동시성 프로그래밍 64516.1 Fork/Join 프레임워크 64616.2 동시성과 함수형 프로그래밍 65316.3 코틀린 코루틴의 내면 들여다보기 66016.4 클로저 동시성 669▶ 요약 685CHAPTER 17 최신 내부 구조 68617.1 JVM 내부 구조 소개: 메서드 호출 68717.2 리플렉션 내부 69417.3 메서드 핸들 70017.4 Invokedynamic 70717.5 내부의 작은 변화들 71317.6 Unsafe 72117.7 지원되는 API로 Unsafe 대체하기 726▶ 요약 731CHAPTER 18 앞으로의 자바 73218.1 프로젝트 앰버 73318.2 프로젝트 파나마 73518.3 프로젝트 룸 74318.4 프로젝트 발할라 75318.5 자바 18 762▶ 요약 763APPENDIX A 자바 선택하기 765A.1 자바는 여전히 무료다 765A.2 자바 SE 8 유지 766A.3 자바 SE 11 받기 766A.4 자바 SE 17(장기 지원 버전) 받기 767A.5 유료 지원 768APPENDIX B 자바 8에서의 스트림에 대한 요약 769B.1 하위 호환성 769B.2 디폴트 메서드 770B.3 스트림 772B.4 컬렉션의 한계 776B.5 무한 스트림 776B.6 원시 타입 다루기 777B.7 병렬 연산? 779찾아보기 781