최근본상품
기본기가 탄탄한 자바 개발자:모던 자바의 새로운 기능을 배우고 자바 전문가가 되는 법
10%
45,000원
40,500원
무료배송
수요일 1/28 도착 예정
적립
최대 2,025원· 쿠페이 머니 결제시
혜택보기
PC에서도 간편한 결제
쿠페이머니
카드
계좌이체
쿠페이머니
카드
계좌이체- 원제: The Well-Grounded Java Deve...
- ISBN: 9791193926277
- 옮긴이/역자: 김성원
- 프로그래밍 언어종류: 상세내용 참조
- 도서형태: 1
- 쿠팡상품번호: 8253480779 - 23764924357
필수 표기 정보
| 도서명 | 기본기가 탄탄한 자바 개발자 (제2판) : 모던 자바의 새로운 기능을 배우고 자바 전문가가 되는 법 | 저자, 출판사 | 제이슨 클라크,마르테인 페르뷔르흐,벤저민 J. 에번스 공저/김성원 역, 제이펍 |
| 크기(파일의 용량) | 188*245 | 쪽수 | 828 |
| 제품 구성 | 상세페이지 참조 | 발행일 | 2024년 08월 14일 |
필수 표기 정보 더보기더보기
판매자가 현금거래를 요구하면 거부하시고 즉시 사기 거래 신고센터 (1670-9832)에 신고하시기 바랍니다.
상품상세
상품소개
JVM부터 성능, 동시성, 컨테이너화 등 고급 기술까지
자바는 엔터프라이즈 소프트웨어 엔지니어링의 핵심이다. 훌륭한 자바 개발자가 되기 위해선 기본기를 갖춰야 한다. 이 책은 자바 8 이후 자바 생태계와 릴리스 주기가 어떻게 변화했는지 살펴보며, 특히 자바 11 및 17에 추가된 새로운 기능을 설명한다. 자바 모듈 및 동시성 모델, 클래스 로딩과 같은 강력한 기능부터 성능 최적화와 바이트코드를 위한 고급 기술 그리고 테스트 중심 개발과 컨테이너 기반 배포와 같은 필수 최신 기술까지 알아본다. 코틀린 및 클로저 등 다른 JVM 언어까지 다뤄 자바 기술을 한층 더 업그레이드하고 탄탄한 기반을 다질 수 있도록 도와준다.
자바는 엔터프라이즈 소프트웨어 엔지니어링의 핵심이다. 훌륭한 자바 개발자가 되기 위해선 기본기를 갖춰야 한다. 이 책은 자바 8 이후 자바 생태계와 릴리스 주기가 어떻게 변화했는지 살펴보며, 특히 자바 11 및 17에 추가된 새로운 기능을 설명한다. 자바 모듈 및 동시성 모델, 클래스 로딩과 같은 강력한 기능부터 성능 최적화와 바이트코드를 위한 고급 기술 그리고 테스트 중심 개발과 컨테이너 기반 배포와 같은 필수 최신 기술까지 알아본다. 코틀린 및 클로저 등 다른 JVM 언어까지 다뤄 자바 기술을 한층 더 업그레이드하고 탄탄한 기반을 다질 수 있도록 도와준다.
목차
지은이·옮긴이 소개 xv
옮긴이 머리말 xvii
베타리더 후기 xviii
추천 서문(하인츠 카부츠) xx
시작하며 xxii
감사의 글 xxv
이 책에 대하여 xxviii
표지에 대하여 xxxii
PART I 버전 8에서 11 그리고 그 이후 1
CHAPTER 1 모던 자바 소개 3
1.1 언어와 플랫폼 4
1.2 새로운 자바 릴리스 모델 6
1.3 향상된 타입 추론(var 키워드) 10
1.4 언어 및 플랫폼 변경 15
1.5 자바 11에서의 작은 변경 사항 20
▶ 요약 30
CHAPTER 2 자바 모듈 31
2.1 배경 설명 32
2.2 기본적인 모듈 구문 41
2.3 모듈 로드하기 45
2.4 첫 모듈형 앱 빌드하기 48
2.5 모듈을 위한 아키텍처 55
2.6 모듈을 넘어서 64
▶ 요약 66
CHAPTER 3 자바 17 67
3.1 Text 블록 67
3.2 switch 표현식 69
3.3 record 73
3.4 sealed 타입 85
3.5 instanceof의 새로운 형식 91
3.6 패턴 매칭과 프리뷰 기능 92
▶ 요약 96
PART II 한 발 더 들어가기 97
CHAPTER 4 클래스 파일과 바이트코드 99
4.1 클래스 로딩과 클래스 객체 100
4.2 클래스로더 105
4.3 클래스 파일 살펴보기 117
4.4 바이트코드 123
4.5 리플렉션 138
▶ 요약 144
CHAPTER 5 자바 동시성 기초 145
5.1 동시성 이론 입문 146
5.2 디자인 콘셉트 151
5.3 블록 구조 동시성(자바 5 이전) 156
5.4 자바 메모리 모델 179
5.5 바이트코드로 동시성 이해하기 182
▶ 요약 205
CHAPTER 6 JDK 동시성 라이브러리 206
6.1 최신 동시 애플리케이션을 위한 빌딩 블록 206
6.2 아토믹 클래스 207
6.3 잠금 클래스 209
6.4 CountDownLatch 212
6.5 ConcurrentHashMap 214
6.6 CopyOnWriteArrayList 225
6.7 블로킹 큐 229
6.8 퓨처 239
6.9 작업과 실행 243
▶ 요약 251
CHAPTER 7 자바 성능 이해하기 252
7.1 몇 가지 성능 용어의 기본 정의 255
7.2 성능 분석에 대한 실용적인 접근 방식 258
7.3 무엇이 문제인지 왜 신경 써야 하는가? 265
7.4 자바 성능 튜닝은 왜 어려운가? 269
7.5 가비지 컬렉션 274
7.6 핫스폿에서의 JIT 컴파일 284
7.7 JDK Flight Recorder 291
▶ 요약 298
PART III JVM에서 자바 외의 언어 299
CHAPTER 8 다른 JVM 언어 301
8.1 언어 분류학 302
8.2 JVM에서의 다중 언어 프로그래밍 307
8.3 프로젝트에 비자바 언어를 선택하는 방법 314
8.4 JVM이 다른 언어를 지원하는 방법 318
▶ 요약 322
CHAPTER 9 코틀린 323
9.1 코틀린을 사용하는 이유 324
9.2 편의성과 간결성 325
9.3 클래스와 객체에 대한 다른 시각 337
9.4 안전성 345
9.5 동시성 349
9.6 자바와의 상호 운용성 353
▶ 요약 358
CHAPTER 10 클로저: 프로그래밍에 대한 다른 관점 359
10.1 클로저 소개 360
10.2 클로저 찾아보기: 구문 및 의미론 370
10.3 함수형 프로그래밍과 closure 388
10.4 클로저 시퀀스 소개 390
10.5 클로저와 자바 간의 상호 운용성 397
10.6 매크로 403
▶ 요약 410
PART IV 빌드와 디플로이먼트 411
CHAPTER 11 그래들과 메이븐을 사용한 빌드 413
11.1 기본기가 탄탄한 개발자에게 빌드 도구가 왜 중요한가 413
11.2 메이븐 419
11.3 그래들 450
▶ 요약 481
CHAPTER 12 컨테이너에서 자바 실행하기 482
12.1 기본기가 튼튼한 개발자에게 컨테이너가 중요한 이유 483
12.2 도커 기본 487
12.3 도커로 자바 애플리케이션 개발하기 494
12.4 쿠버네티스 510
12.5 관측 가능성과 성능 519
▶ 요약 524
CHAPTER 13 테스트 기본 525
13.1 테스트하는 이유 526
13.2 테스트 방법 526
13.3 테스트 주도 개발 530
13.4 테스트 더블 539
13.5 Junit 4에서 5로 552
▶ 요약 559
CHAPTER 14 Junit을 넘어선 테스트 560
14.1 테스트컨테이너를 이용한 통합 테스트 560
14.2 Spek과 코틀린을 사용한 명세 스타일 테스팅 572
14.3 클로저를 사용한 속성 기반 테스트 579
▶ 요약 594
PART V 자바의 새 영역 595
CHAPTER 15 고급 함수 프로그래밍 597
15.1 함수형 프로그래밍 개념 소개 598
15.2 자바의 함수형 프로그래밍 언어로서의 한계 603
15.3 코틀린 함수형 프로그래밍 619
15.4 클로저 함수형 프로그래밍 637
▶ 요약 644
CHAPTER 16 고급 동시성 프로그래밍 645
16.1 Fork/Join 프레임워크 646
16.2 동시성과 함수형 프로그래밍 653
16.3 코틀린 코루틴의 내면 들여다보기 660
16.4 클로저 동시성 669
▶ 요약 685
CHAPTER 17 최신 내부 구조 686
17.1 JVM 내부 구조 소개: 메서드 호출 687
17.2 리플렉션 내부 694
17.3 메서드 핸들 700
17.4 Invokedynamic 707
17.5 내부의 작은 변화들 713
17.6 Unsafe 721
17.7 지원되는 API로 Unsafe 대체하기 726
▶ 요약 731
CHAPTER 18 앞으로의 자바 732
18.1 프로젝트 앰버 733
18.2 프로젝트 파나마 735
18.3 프로젝트 룸 743
18.4 프로젝트 발할라 753
18.5 자바 18 762
▶ 요약 763
APPENDIX A 자바 선택하기 765
A.1 자바는 여전히 무료다 765
A.2 자바 SE 8 유지 766
A.3 자바 SE 11 받기 766
A.4 자바 SE 17(장기 지원 버전) 받기 767
A.5 유료 지원 768
APPENDIX B 자바 8에서의 스트림에 대한 요약 769
B.1 하위 호환성 769
B.2 디폴트 메서드 770
B.3 스트림 772
B.4 컬렉션의 한계 776
B.5 무한 스트림 776
B.6 원시 타입 다루기 777
B.7 병렬 연산? 779
찾아보기 781
옮긴이 머리말 xvii
베타리더 후기 xviii
추천 서문(하인츠 카부츠) xx
시작하며 xxii
감사의 글 xxv
이 책에 대하여 xxviii
표지에 대하여 xxxii
PART I 버전 8에서 11 그리고 그 이후 1
CHAPTER 1 모던 자바 소개 3
1.1 언어와 플랫폼 4
1.2 새로운 자바 릴리스 모델 6
1.3 향상된 타입 추론(var 키워드) 10
1.4 언어 및 플랫폼 변경 15
1.5 자바 11에서의 작은 변경 사항 20
▶ 요약 30
CHAPTER 2 자바 모듈 31
2.1 배경 설명 32
2.2 기본적인 모듈 구문 41
2.3 모듈 로드하기 45
2.4 첫 모듈형 앱 빌드하기 48
2.5 모듈을 위한 아키텍처 55
2.6 모듈을 넘어서 64
▶ 요약 66
CHAPTER 3 자바 17 67
3.1 Text 블록 67
3.2 switch 표현식 69
3.3 record 73
3.4 sealed 타입 85
3.5 instanceof의 새로운 형식 91
3.6 패턴 매칭과 프리뷰 기능 92
▶ 요약 96
PART II 한 발 더 들어가기 97
CHAPTER 4 클래스 파일과 바이트코드 99
4.1 클래스 로딩과 클래스 객체 100
4.2 클래스로더 105
4.3 클래스 파일 살펴보기 117
4.4 바이트코드 123
4.5 리플렉션 138
▶ 요약 144
CHAPTER 5 자바 동시성 기초 145
5.1 동시성 이론 입문 146
5.2 디자인 콘셉트 151
5.3 블록 구조 동시성(자바 5 이전) 156
5.4 자바 메모리 모델 179
5.5 바이트코드로 동시성 이해하기 182
▶ 요약 205
CHAPTER 6 JDK 동시성 라이브러리 206
6.1 최신 동시 애플리케이션을 위한 빌딩 블록 206
6.2 아토믹 클래스 207
6.3 잠금 클래스 209
6.4 CountDownLatch 212
6.5 ConcurrentHashMap 214
6.6 CopyOnWriteArrayList 225
6.7 블로킹 큐 229
6.8 퓨처 239
6.9 작업과 실행 243
▶ 요약 251
CHAPTER 7 자바 성능 이해하기 252
7.1 몇 가지 성능 용어의 기본 정의 255
7.2 성능 분석에 대한 실용적인 접근 방식 258
7.3 무엇이 문제인지 왜 신경 써야 하는가? 265
7.4 자바 성능 튜닝은 왜 어려운가? 269
7.5 가비지 컬렉션 274
7.6 핫스폿에서의 JIT 컴파일 284
7.7 JDK Flight Recorder 291
▶ 요약 298
PART III JVM에서 자바 외의 언어 299
CHAPTER 8 다른 JVM 언어 301
8.1 언어 분류학 302
8.2 JVM에서의 다중 언어 프로그래밍 307
8.3 프로젝트에 비자바 언어를 선택하는 방법 314
8.4 JVM이 다른 언어를 지원하는 방법 318
▶ 요약 322
CHAPTER 9 코틀린 323
9.1 코틀린을 사용하는 이유 324
9.2 편의성과 간결성 325
9.3 클래스와 객체에 대한 다른 시각 337
9.4 안전성 345
9.5 동시성 349
9.6 자바와의 상호 운용성 353
▶ 요약 358
CHAPTER 10 클로저: 프로그래밍에 대한 다른 관점 359
10.1 클로저 소개 360
10.2 클로저 찾아보기: 구문 및 의미론 370
10.3 함수형 프로그래밍과 closure 388
10.4 클로저 시퀀스 소개 390
10.5 클로저와 자바 간의 상호 운용성 397
10.6 매크로 403
▶ 요약 410
PART IV 빌드와 디플로이먼트 411
CHAPTER 11 그래들과 메이븐을 사용한 빌드 413
11.1 기본기가 탄탄한 개발자에게 빌드 도구가 왜 중요한가 413
11.2 메이븐 419
11.3 그래들 450
▶ 요약 481
CHAPTER 12 컨테이너에서 자바 실행하기 482
12.1 기본기가 튼튼한 개발자에게 컨테이너가 중요한 이유 483
12.2 도커 기본 487
12.3 도커로 자바 애플리케이션 개발하기 494
12.4 쿠버네티스 510
12.5 관측 가능성과 성능 519
▶ 요약 524
CHAPTER 13 테스트 기본 525
13.1 테스트하는 이유 526
13.2 테스트 방법 526
13.3 테스트 주도 개발 530
13.4 테스트 더블 539
13.5 Junit 4에서 5로 552
▶ 요약 559
CHAPTER 14 Junit을 넘어선 테스트 560
14.1 테스트컨테이너를 이용한 통합 테스트 560
14.2 Spek과 코틀린을 사용한 명세 스타일 테스팅 572
14.3 클로저를 사용한 속성 기반 테스트 579
▶ 요약 594
PART V 자바의 새 영역 595
CHAPTER 15 고급 함수 프로그래밍 597
15.1 함수형 프로그래밍 개념 소개 598
15.2 자바의 함수형 프로그래밍 언어로서의 한계 603
15.3 코틀린 함수형 프로그래밍 619
15.4 클로저 함수형 프로그래밍 637
▶ 요약 644
CHAPTER 16 고급 동시성 프로그래밍 645
16.1 Fork/Join 프레임워크 646
16.2 동시성과 함수형 프로그래밍 653
16.3 코틀린 코루틴의 내면 들여다보기 660
16.4 클로저 동시성 669
▶ 요약 685
CHAPTER 17 최신 내부 구조 686
17.1 JVM 내부 구조 소개: 메서드 호출 687
17.2 리플렉션 내부 694
17.3 메서드 핸들 700
17.4 Invokedynamic 707
17.5 내부의 작은 변화들 713
17.6 Unsafe 721
17.7 지원되는 API로 Unsafe 대체하기 726
▶ 요약 731
CHAPTER 18 앞으로의 자바 732
18.1 프로젝트 앰버 733
18.2 프로젝트 파나마 735
18.3 프로젝트 룸 743
18.4 프로젝트 발할라 753
18.5 자바 18 762
▶ 요약 763
APPENDIX A 자바 선택하기 765
A.1 자바는 여전히 무료다 765
A.2 자바 SE 8 유지 766
A.3 자바 SE 11 받기 766
A.4 자바 SE 17(장기 지원 버전) 받기 767
A.5 유료 지원 768
APPENDIX B 자바 8에서의 스트림에 대한 요약 769
B.1 하위 호환성 769
B.2 디폴트 메서드 770
B.3 스트림 772
B.4 컬렉션의 한계 776
B.5 무한 스트림 776
B.6 원시 타입 다루기 777
B.7 병렬 연산? 779
찾아보기 781
저자 소개
벤저민 J. 에번스
Benjamin J. Evans 레드햇의 자바 챔피언이자 수석 소프트웨어 엔지니어다. 뉴렐릭, 도이체 방크에서 수석 아키텍트였으며, 모건 스탠리에서 수석 기술 강사로 근무했다. jClarity를 공동 창립했고, 자바 커뮤니티 프로세스 집행위원회에서 새로운 자바 표준을 정의하는 데 도움을 줬다. 저서로 『자바 최적화』(한빛미디어, 2019)와 『Java in a Nutshell』(O’Reilly, 2014) 등이 있다. 전 세계 기업 및 콘퍼런스에서 자바 플랫폼, 시스템 아키텍처, 성능 및 동시성 등의 주제로 정기적으로 연설 및 교육하고 있다.제이슨 클라크
Jason Clark 깃허브의 소프트웨어 엔지니어다. 뉴렐릭의 수석 엔지니어 겸 아키텍트였으며, WebMD에서 닷넷 기반 웹 서비스를 구축하는 아키텍트였다. 저서로 『Java in a Nutshell, 8th Edition』(O’Reilly, 2023)이 있다. 정기적인 콘퍼런스 연사로 활동 중이며, 초보자와 학생을 위한 쉽고 재미있는 GUI 프로그래밍을 목표로 하는 오픈소스 프로젝트 Shoes에 기여하고 있다.마르테인 페르뷔르흐
Martijn Verburg 마이크로소프트 자바 엔지니어링 그룹의 수석 SWE 그룹 관리자다. 런던 자바 사용자 그룹의 공동 리더로, 세계 최고의 OpenJDK 배포판인 AdoptOpenJDK(현 이클립스 애드옵티움)를 공동 설립했다. 『기본기가 탄탄한 자바 개발자』 제1판의 공동 저자이며, 여러 자바 표준 단체(자바 커뮤니티 프로세스, 자카르타 EE 등)의 위원으로 활동하고 있다.김성원
대학원에서 정보보안학을 전공했으며, 20년 넘게 컴퓨터 응용 프로그램 개발 분야에서 다양한 수준의 개발 경험을 쌓아왔다. 여러 언어로 애플리케이션을 개발하고 관리하면서 깊은 통찰을 얻었고, 이를 토대로 소프트웨어 개발과 관련된 책들을 번역하면서 항상 새로운 기술과 도전에 생각이 열려 있도록 노력해왔다. 기업에 소속해서는 소프트웨어 아키텍트로, 프로젝트 현장에서는 프로젝트 리더 겸 시니어 개발자로 일하면서 아이디어를 현실로 구현해보고자 노력하고 있다.책 속으로
JMOD 형식은 기존 JAR 형식과 다소 유사하지만, 자바 8에서처럼 별도의 공유 객체 파일을 제공하지 않고, 네이티브 코드를 단일 파일의 일부로 포함할 수 있도록 수정됐다. 메이븐에 모듈을 게시하는 등 대부분의 개발자의 경우, 자체 모듈을 JMOD보다는 모듈식 JAR로 패키징하는 것이 더 좋다. / JIMAGE 형식은 자바 런타임 이미지를 나타내는 데 사용된다. 자바 8 이전까지는 두 가지 런타임 이미지(JDK와 자바 실행 환경(Java Runtime Environment, JRE))만 존재했지만, 이는 대부분 역사적 우연이었다. 오라클은 완전한 모듈화를 향한 디딤돌로 자바 8(및 콤팩트 프로파일)과 함께 Server JRE를 도입했다. 이 이미지는 기본적으로 서버 측 애플리케이션의 요구 사항에 맞춰 더 작은 공간을 차지하기 위해 일부 기능(예: GUI 프레임워크)을 제거했다. --- p.34 자바 11에서 다양한 주문을 모델링하고 싶다고 가정해보겠다. 이 경우 두 가지 대안 중 하나를 선택해야 한다. 첫째, 실제 타입을 보유하는 상태 필드를 가진 단일 구현 클래스(또는 레코드)인 FXOrder를 선택할 수 있다. 이 패턴은 상태 필드가 열거형이고 이 객체가 실제로 어떤 타입을 의미하는지를 나타내는 정보를 제공함으로써 작동한다. 이 패턴은 필드가 가질 수 있는 모든 타입의 경우를 애플리케이션 프로그래머가 일일이 체크하고 추적해야 하므로 차선책이 될 수 있다. 또는 기본 추상 클래스인 BaseOrder를 선언하고 이를 서브클래싱해서 구체적인 타입인 MarketOrder와 LimitOrder를 가지도록 할 수 있다. --- p.86 많은 오퍼레이션 코드에는 여기저기서 몇 바이트를 절약하기 위한 바로 가기 형식shortcut form이 있다. 일반적인 패턴은 특정 로컬 변수가 다른 변수보다 훨씬 더 자주 액세스되므로 로컬 변수를 인수로 지정하는 대신 ‘로컬 변수에 직접 일반 연산을 수행’하라는 것을 의미하는 특수한 오퍼레이션 코드를 사용하는 것이 합리적이다. 예를 들어 load/store 패밀리 내에서 aload_0, dstore_2와 같은 오퍼레이션 코드는 동등한 바이트 시퀀스인 aload 00 또는 dstore 02보다 1바이트 더 짧다. --- p.138 FutureTask 클래스는 흔히 사용되는 Future 인터페이스의 구현 중 하나이며, Runnable도 구현한다. 이는 FutureTask를 실행자에게 전달할 수 있다는 것을 의미한다. FutureTask의 API는 기본적으로 Future와 Runnable이 결합된 형태다. get(), cancel(), isDone(), isCancelled(), run()과 같은 메서드가 있다. 그러나 실제 작업을 수행하는 마지막 메서드는 클라이언트 코드가 직접 호출하는 것이 아니라 실행자에 의해 호출된다. / FutureTask에는 편리한 생성자 두 가지가 제공된다. 하나는 Callable을 사용하고, 다른 하나는 Runnable을 사용한다(이 경우에는 Executors.callable()을 사용하여 Runnable을 Callable로 변환한다). 이는 작업을 유연하게 처리할 수 있는 방법을 제공하며, 작업을 Callable로 작성한 다음 Runnable 형태인 FutureTask로 래핑해서 실행자에게 실행을 예약하고 필요한 경우 취소할 수 있다. --- p.245 컨테이너는 배포를 위한 더욱 일관된 패키징의 세계를 열었다. 예전에는 애플리케이션의 바이트들을 배포 환경에 복사하는 방법, 운영체제 의존성을 관리하는 방법, 심지어 프로세스 시작을 관리하는 방법까지 모두 제각각이었다. 컨테이너는 이 모든 것에 대한 해답을 제공하므로 엄청난 양의 도구와 사용자 정의 스크립트가 필요하지 않다. 또한 배포 환경과 컨테이너의 콘텐츠 사이에 단열 기능을 제공한다. 컨테이너 엔진은 컨테이너 내부를 어떻게 배치할지 신경 쓸 필요 없이 요청이 있을 때 스스로 시작하는 방법만 알면 된다. 컨테이너 이미지의 패키징은 시스템 계층에 대해 선언적이고, 소스 컨트롤된 설명을 사용한 서비스형 인프라스트럭처(infrastructure as a service, IaaS)의 중요한 예다. 과거에는 주의 깊은 명령형 구성이 필요했던 것과 달리 현재는 더욱 간편하게 이뤄진다. --- p.486 하스켈과 같은 많은 함수형 언어는 지연 평가에 크게 의존한다. 코틀린은 JVM 언어로, 핵심 실행 모델에서 지연 평가를 중심으로 두지 않는다. 그러나 Lazy 인터페이스를 통해 필요한 곳에 지연을 위한 최상의 지원을 제공한다. 이것은 처리를 지연시키거나 아예 건너뛰려고 할 때, 표준 구조를 제공한다. / 일반적으로 Lazy를 직접 구현하지 않고 lazy() 함수를 사용해서 인스턴스를 생성한다. 가장 간단한 형태로 lazy()는 람다를 취하며 해당 람다의 반환 타입이 반환된 인터페이스 T의 타입을 결정한다. 람다는 value가 명시적으로 요청할 때까지 실행되지 않는다. 또한 다음과 같이 이미 값을 계산했는지 확인할 수도 있다.
출판리뷰
더 나은 자바 개발자가 되는 법
자바는 많은 개발자에게 이미 익숙한 언어다. 1995년 썬 마이크로시스템즈에서 개발해 무려 30여 년 동안 사랑받아왔으며, 자바 21까지 출시됐다. 익숙하면 초심을 잊기 마련이다. 지금보다 더 나은 개발자가 되고 싶다면 기본기를 갖춰야 한다. 기본기가 탄탄할수록 변화하는 기술 환경에 잘 적응해 활용하는 개발자가 될 수 있다. 자바에 대한 기본기를 탄탄하게 갖추고 싶고, 6개월이라는 빠른 릴리스 주기와 자바 21이 출시됐음에도 여전히 자바 8을 사용한다는 이유로 새로운 자바를 배우는 것이 쉽지 않았다면 바로 이 책을 선택하자.
2012년 《The Well-Grounded Java Developer》의 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를 극대화하는 방법
ㆍ 동시성과 함수형 프로그래밍 사이의 상호작용
자바는 많은 개발자에게 이미 익숙한 언어다. 1995년 썬 마이크로시스템즈에서 개발해 무려 30여 년 동안 사랑받아왔으며, 자바 21까지 출시됐다. 익숙하면 초심을 잊기 마련이다. 지금보다 더 나은 개발자가 되고 싶다면 기본기를 갖춰야 한다. 기본기가 탄탄할수록 변화하는 기술 환경에 잘 적응해 활용하는 개발자가 될 수 있다. 자바에 대한 기본기를 탄탄하게 갖추고 싶고, 6개월이라는 빠른 릴리스 주기와 자바 21이 출시됐음에도 여전히 자바 8을 사용한다는 이유로 새로운 자바를 배우는 것이 쉽지 않았다면 바로 이 책을 선택하자.
2012년 《The Well-Grounded Java Developer》의 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를 극대화하는 방법
ㆍ 동시성과 함수형 프로그래밍 사이의 상호작용
카드뉴스로 보는 책
상품 리뷰
동일한 상품에 대해 작성된 상품 리뷰로, 판매자는 다를 수 있습니다.
동일한 상품에 대해 작성된 상품 리뷰로, 판매자는 다를 수 있습니다.
등록된 상품평이 없습니다.
상품문의
- 구매한 상품의 취소/반품은 마이쿠팡 구매내역에서 신청 가능합니다.
- 상품문의 및 후기게시판을 통해 취소나 환불, 반품 등은 처리되지 않습니다.
- 가격, 판매자, 교환/환불 및 배송 등 해당 상품 자체와 관련 없는 문의는 고객센터 내 1:1 문의하기를 이용해주세요.
- "해당 상품 자체"와 관계없는 글, 양도, 광고성, 욕설, 비방, 도배 등의 글은 예고 없이 이동, 노출제한, 삭제 등의 조치가 취해질 수 있습니다.
- 공개 게시판이므로 전화번호, 메일 주소 등 고객님의 소중한 개인정보는 절대 남기지 말아주세요.
아직 문의가 없습니다.
판매 부적격 상품 또는 허위과장광고 및 지식재산권을 침해하는 상품의 경우 신고하여 주시기 바랍니다.
배송정보
| 배송방법 | 순차배송 | 배송비 | 무료배송 |
|---|---|---|---|
| 배송사 | 업체직송 | ||
| 묶음배송 여부 | 가능 | ||
| 배송기간 | ㆍ도서산간 지역 등은 배송에 3-5일이 더 소요될 수 있습니다. - 천재지변, 물량 수급 변동 등 예외적인 사유 발생 시, 다소 지연될 수 있는 점 양해 부탁드립니다. | ||
교환/반품 안내
- ㆍ교환/반품에 관한 일반적인 사항은 판매자가 제시사항보다 관계법령이 우선합니다.
다만, 판매자의 제시사항이 관계법령보다 소비자에게 유리한 경우에는 판매자 제시사항이 적용됩니다.
| 교환/반품 비용 (왕복비용) | 5,000원 - 단, 고객 변심의 경우에만 발생 - 도서산간 및 일부 지역 추가비용 발생 |
|---|---|
| 교환/반품 신청 기준일 | ㆍ단순변심에 의한 교환/반품은 제품 수령 후 7일 이내까지, 교환/반품 제한사항에 해당하지 않는 경우에만 가능 (배송비용과 교환/반품 비용 왕복배송비 고객부담) ㆍ상품의 내용이 표시·광고의 내용과 다른 경우에는 상품을 수령한 날부터 3개월 이내, 그 사실을 안 날 또는 알 수 있었던 날부터 |
교환/반품 제한사항
- ㆍ주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우
- ㆍ상품 포장을 개봉하여 사용 또는 설치 완료되어 상품의 가치가 훼손된 경우 (단, 내용 확인을 위한 포장 개봉의 경우는 예외)
- ㆍ고객의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
- ㆍ세트상품 일부 사용, 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염으로 재판매 불가한 경우
- ㆍ모니터 해상도의 차이로 인해 색상이나 이미지가 실제와 달라, 고객이 단순 변심으로 교환/반품을 무료로 요청하는 경우
- ㆍ제조사의 사정 (신모델 출시 등) 및 부품 가격 변동 등에 의해 무료 교환/반품으로 요청하는 경우
※ 각 상품별로 아래와 같은 사유로 취소/반품이 제한될 수 있습니다.
| 의류/잡화/수입명품 | ⋅ 상품의 택(TAG) 및 라벨의 멸실 또는 훼손, 상품의 사용 또는 훼손, 구성품 누락으로 상품의 가치가 현저히 감소된 경우 |
|---|---|
| 계절상품/식품/화장품 | ㆍ신선/냉장/냉동 상품의 단순변심의 경우 ㆍ뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우, |
| 전자/가전/설치상품 | ㆍ설치 또는 사용하여 재판매가 어려운 경우 ㆍ상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 (내비게이션, OS시리얼이 적힌 PMP) ㆍ홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 (노트북, 데스크탑 PC 등) |
| 자동차용품 | ㆍ상품을 개봉하여 장착한 이후 단순변심인 경우 |
| CD/DVD/GAME/ BOOK | ㆍ복제가 가능한 상품의 포장 등을 훼손한 경우 |
판매자 정보
상호/대표자 | 예스이십사주식회사 / 김석환 | 사업장 소재지 | 서울영등포구여의도동 15-15일신빌딩5,6층 |
|---|---|---|---|
e-mail | bookpartner3@yes24.com | 연락처 | 1599-1121 |
통신판매업 신고번호 | 2005-02682 | 사업자번호 | 229-81-37000 |
구매안전 서비스 | 02-006-00042 서비스 가입사실 확인 > 본 판매자는 고객님의 안전거래를 위해 관련 법률에 의거하여 쿠팡페이의 구매안전서비스를 적용하고 있습니다. | ||
미성년자가 체결한 계약은 법정대리인이 동의하지 않는 경우 본인 또는 법정대리인이 취소할 수 있습니다. 쿠팡은 통신판매중개자로서 통신판매의 당사자가 아니며, 광고, 고시정보, 상품 주문, 배송 및 환불의 의무와 책임은 각 판매자에 있습니다.







