기본기가 탄탄한 자바 개발자 : 모던 자바의 새로운 기능을 배우고 자바 전문가가 되는 법 (2판)

기본기가 탄탄한 자바 개발자 : 모던 자바의 새로운 기능을 배우고 자바 전문가가 되는 법 (2판)

$50.50
Description
JVM부터 성능, 동시성, 컨테이너화 등 고급 기술까지
자바는 엔터프라이즈 소프트웨어 엔지니어링의 핵심이다. 훌륭한 자바 개발자가 되기 위해선 기본기를 갖춰야 한다. 이 책은 자바 8 이후 자바 생태계와 릴리스 주기가 어떻게 변화했는지 살펴보며, 특히 자바 11 및 17에 추가된 새로운 기능을 설명한다. 자바 모듈 및 동시성 모델, 클래스 로딩과 같은 강력한 기능부터 성능 최적화와 바이트코드를 위한 고급 기술 그리고 테스트 중심 개발과 컨테이너 기반 배포와 같은 필수 최신 기술까지 알아본다. 코틀린 및 클로저 등 다른 JVM 언어까지 다뤄 자바 기술을 한층 더 업그레이드하고 탄탄한 기반을 다질 수 있도록 도와준다.

저자

벤저민J.에번스,제이슨클라크,마르테인페르뷔르흐

저자:벤저민J.에번스(BenjaminJ.Evans)
레드햇의자바챔피언이자수석소프트웨어엔지니어다.뉴렐릭,도이체방크에서수석아키텍트였으며,모건스탠리에서수석기술강사로근무했다.jClarity를공동창립했고,자바커뮤니티프로세스집행위원회에서새로운자바표준을정의하는데도움을줬다.저서로《자바최적화》(한빛미디어,2019)와《JavainaNutshell》(O’Reilly,2014)등이있다.전세계기업및콘퍼런스에서자바플랫폼,시스템아키텍처,성능및동시성등의주제로정기적으로연설및교육하고있다.

저자:제이슨클라크(JasonClark)
깃허브의소프트웨어엔지니어다.뉴렐릭의수석엔지니어겸아키텍트였으며,WebMD에서닷넷기반웹서비스를구축하는아키텍트였다.저서로《JavainaNutshell,8thEdition》(O’Reilly,2023)이있다.정기적인콘퍼런스연사로활동중이며,초보자와학생을위한쉽고재미있는GUI프로그래밍을목표로하는오픈소스프로젝트Shoes에기여하고있다.

저자:마르테인페르뷔르흐(MartijnVerburg)
마이크로소프트자바엔지니어링그룹의수석SWE그룹관리자다.런던자바사용자그룹의공동리더로,세계최고의OpenJDK배포판인AdoptOpenJDK(현이클립스애드옵티움)를공동설립했다.《기본기가탄탄한자바개발자》제1판의공동저자이며,여러자바표준단체(자바커뮤니티프로세스,자카르타EE등)의위원으로활동하고있다.

역자:김성원
2000년부터컴퓨터응용프로그램개발분야에서다양한경험을쌓아왔다.다양한언어로,다양한애플리케이션개발과개발관리에대한깊은통찰을얻었고,이를토대로소프트웨어개발과관련된많은책을번역하면서항상새로운기술과도전에생각이열려있도록노력해왔다.현재프리랜서개발자로활동하면서다양한프로젝트에참여하는한편,평소에는자유롭게아이디어를현실로구현해보고자노력하고있다.
주요역서
Node.js디자인패턴바이블(영진닷컴,2021)
코딩테스트로시작하는파이썬프로그래밍(영진닷컴,2022)
파이브라인스오브코드(위키북스,2023)

목차

지은이·옮긴이소개xv
옮긴이머리말xvii
베타리더후기xviii
추천서문(하인츠카부츠)xx
시작하며xxii
감사의글xxv
이책에대하여xxviii
표지에대하여xxxii

PARTI버전8에서11그리고그이후1
CHAPTER1모던자바소개3
1.1언어와플랫폼4
1.2새로운자바릴리스모델6
1.3향상된타입추론(var키워드)10
1.4언어및플랫폼변경15
1.5자바11에서의작은변경사항20
요약30

CHAPTER2자바모듈31
2.1배경설명32
2.2기본적인모듈구문41
2.3모듈로드하기45
2.4첫모듈형앱빌드하기48
2.5모듈을위한아키텍처55
2.6모듈을넘어서64
요약66

CHAPTER3자바1767
3.1Text블록67
3.2switch표현식69
3.3record73
3.4sealed타입85
3.5instanceof의새로운형식91
3.6패턴매칭과프리뷰기능92
요약96

PARTII한발더들어가기97
CHAPTER4클래스파일과바이트코드99
4.1클래스로딩과클래스객체100
4.2클래스로더105
4.3클래스파일살펴보기117
4.4바이트코드123
4.5리플렉션138
요약144

CHAPTER5자바동시성기초145
5.1동시성이론입문146
5.2디자인콘셉트151
5.3블록구조동시성(자바5이전)156
5.4자바메모리모델179
5.5바이트코드로동시성이해하기182
요약205

CHAPTER6JDK동시성라이브러리206
6.1최신동시애플리케이션을위한빌딩블록206
6.2아토믹클래스207
6.3잠금클래스209
6.4CountDownLatch212
6.5ConcurrentHashMap214
6.6CopyOnWriteArrayList225
6.7블로킹큐229
6.8퓨처239
6.9작업과실행243
요약251

CHAPTER7자바성능이해하기252
7.1몇가지성능용어의기본정의255
7.2성능분석에대한실용적인접근방식258
7.3무엇이문제인지왜신경써야하는가?265
7.4자바성능튜닝은왜어려운가?269
7.5가비지컬렉션274
7.6핫스폿에서의JIT컴파일284
7.7JDKFlightRecorder291
요약298

PARTIIIJVM에서자바외의언어299
CHAPTER8다른JVM언어301
8.1언어분류학302
8.2JVM에서의다중언어프로그래밍307
8.3프로젝트에비자바언어를선택하는방법314
8.4JVM이다른언어를지원하는방법318
요약322

CHAPTER9코틀린323
9.1코틀린을사용하는이유324
9.2편의성과간결성325
9.3클래스와객체에대한다른시각337
9.4안전성345
9.5동시성349
9.6자바와의상호운용성353
요약358

CHAPTER10클로저:프로그래밍에대한다른관점359
10.1클로저소개360
10.2클로저찾아보기:구문및의미론370
10.3함수형프로그래밍과closure388
10.4클로저시퀀스소개390
10.5클로저와자바간의상호운용성397
10.6매크로403
요약410

PARTIV빌드와디플로이먼트411
CHAPTER11그래들과메이븐을사용한빌드413
11.1기본기가탄탄한개발자에게빌드도구가왜중요한가413
11.2메이븐419
11.3그래들450
요약481

CHAPTER12컨테이너에서자바실행하기482
12.1기본기가튼튼한개발자에게컨테이너가중요한이유483
12.2도커기본487
12.3도커로자바애플리케이션개발하기494
12.4쿠버네티스510
12.5관측가능성과성능519
요약524

CHAPTER13테스트기본525
13.1테스트하는이유526
13.2테스트방법526
13.3테스트주도개발530
13.4테스트더블539
13.5Junit4에서5로552
요약559

CHAPTER14Junit을넘어선테스트560
14.1테스트컨테이너를이용한통합테스트560
14.2Spek과코틀린을사용한명세스타일테스팅572
14.3클로저를사용한속성기반테스트579
요약594

PARTV자바의새영역595
CHAPTER15고급함수프로그래밍597
15.1함수형프로그래밍개념소개598
15.2자바의함수형프로그래밍언어로서의한계603
15.3코틀린함수형프로그래밍619
15.4클로저함수형프로그래밍637
요약644

CHAPTER16고급동시성프로그래밍645
16.1Fork/Join프레임워크646
16.2동시성과함수형프로그래밍653
16.3코틀린코루틴의내면들여다보기660
16.4클로저동시성669
요약685

CHAPTER17최신내부구조686
17.1JVM내부구조소개:메서드호출687
17.2리플렉션내부694
17.3메서드핸들700
17.4Invokedynamic707
17.5내부의작은변화들713
17.6Unsafe721
17.7지원되는API로Unsafe대체하기726
요약731

CHAPTER18앞으로의자바732
18.1프로젝트앰버733
18.2프로젝트파나마735
18.3프로젝트룸743
18.4프로젝트발할라753
18.5자바18762
요약763

APPENDIXA자바선택하기765
A.1자바는여전히무료다765
A.2자바SE8유지766
A.3자바SE11받기766
A.4자바SE17(장기지원버전)받기767
A.5유료지원768

APPENDIXB자바8에서의스트림에대한요약769
B.1하위호환성769
B.2디폴트메서드770
B.3스트림772
B.4컬렉션의한계776
B.5무한스트림776
B.6원시타입다루기777
B.7병렬연산?779

찾아보기781

출판사 서평

더나은자바개발자가되는법

자바는많은개발자에게이미익숙한언어다.1995년썬마이크로시스템즈에서개발해무려30여년동안사랑받아왔으며,자바21까지출시됐다.익숙하면초심을잊기마련이다.지금보다더나은개발자가되고싶다면기본기를갖춰야한다.기본기가탄탄할수록변화하는기술환경에잘적응해활용하는개발자가될수있다.자바에대한기본기를탄탄하게갖추고싶고,6개월이라는빠른릴리스주기와자바21이출시됐음에도여전히자바8을사용한다는이유로새로운자바를배우는것이쉽지않았다면바로이책을선택하자.

2012년《TheWell-GroundedJavaDeveloper》의2판으로,10여년동안변화해온자바에대한모든것을담았다.자바7에서자바8과11이대세로자리잡았고,스칼라는매우강력한JVM언어가됐다.이책은흐름에맞춰자바8부터17까지의주요기능과변화를체계적으로설명한다.람다표현식,스트림API,모듈시스템,Text블록등최신기능들을실제코드에어떻게적용할수있는지를보여주고,JVM언어를폭넓게탐구한다.

총5부로구성됐다.1부에서는버전8부터11까지를자세히살펴본다.자바17로업그레이드하는방법과함께자바11에포함된편의성향상에대한내용으로시작해자바8이후자바생태계와릴리스주기가어떻게변화했는지알아본다.특히완전모듈시스템추가에대해자세히알수있어애플리케이션과라이브러리에서활용하는방법을알게될것이다.

2부에서는JVM이실제로어떻게작동하는지살펴본다.자바개발자는자바의동시성기능에대해잘알고있어야하는데,2부에서최신프로세서를최대한활용하는방법을알려준다.또한,성능에영향을미치는JVM의두가지주요부분인가비지컬렉션과JIT컴파일러에대해집중적으로다룬다.3부에서는JVM에서의다중언어프로그래밍을다룬다.함수형프로그래밍은자바가표현한전형적인객체지향적시각에대한대안으로계속해서주목받고있는데,이를알아보기위해코틀린과클로저를살펴본다.

4부에서는자바애플리케이션을빌드,테스트,배포하기위한도구를효과적으로사용하는방법에대해설명한다.가장널리사용되는두가지자바빌드도구인메이븐과그래들을살펴보고,자바애플리케이션환경을컨테이너에통합하는구체적인방법,다양한테스트접근방식과각각의장단점에대해탐구한다.5부에서는지금까지의학습을기반으로함수형프로그래밍,동시성,플랫폼내부에대해더깊게살펴본다.부록에서는자바를선택하는방법과자바8스트림과관련된함수형프로그래밍을간략하게알아본다.

이책을통해새로운자바기능을발견하고,테스트중심개발및컨테이너기반배포와같은필수적인최신소프트웨어기술에익숙해지는것은물론JVM에서의비자바언어를학습할수있다.기본기가탄탄한자바개발자를넘어훌륭한자바개발자로성장하는데훌륭한길잡이가될것이다.

주요내용

자바11및17의새로운기능
컨테이너에서JVM실행하는법
JDK동시성라이브러리사용법
코틀린및클로저등다른JVM언어의중요성
메이븐과그래들로CI/CD를극대화하는방법
동시성과함수형프로그래밍사이의상호작용