목차
지은이ㆍ옮긴이 소개 = 4
감수자 소개 = 5
옮긴이의 글 = 6
이 책에 대해 = 7
CHAPTER 1 자바 9 모듈화 소개
1.1 자바 언어의 모듈화 = 19
1.2 패키지로 자바 개발 다시 생각하기 = 21
1.2.1 라이브러리 개발자의 불운한 이야기 = 22
1.2.2 배포 엔지니어의 불가능한 작업 = 25
1.2.3 클래스패스 문제 = 28
1.3 자바, 스무 해가 넘은 코드베이스 = 28
1.3.1 레거시 클래스 = 29
1.4 자바 플랫폼 모듈 시스템 = 32
1.5 프로젝트 Jigsaw = 35
1.6 요약 = 37
CHAPTER 2 첫 번째 자바 모듈 만들기
2.1 JDK 설정하기 = 40
2.2 JDK 버전 전환하기 = 41
2.3 넷빈즈 IDE 설정하기 = 42
2.4 자바 9 모듈 = 43
2.4.1 전통적인 자바 코드 구조 = 43
2.4.2 모듈은 무엇인가 = 44
2.4.3 모듈 생성하기 = 45
2.4.4 첫 번째 자바 모듈 만들기 = 48
2.4.5 모듈 컴파일하기 = 49
2.4.6 모듈 실행하기 = 51
2.5 넷빈즈 활용 모듈 만들기 = 52
2.6 주소록 관리 프로그램 = 57
2.7 오류 다루기 = 61
2.8 요약 = 62
CHAPTER 3 모듈 간 의존성 다루기
3.1 두 번째 모듈 만들기 = 64
3.2 두 모듈 컴파일하기 = 65
3.3 모듈 의존성 설정하기 = 67
3.4 모듈 버전 관리 = 72
3.5 패키지 구조 다시 생각하기 = 73
3.6 모듈 경로 인자 이해하기 = 74
3.7 클래스패스 다시 보기 = 75
3.8 클래스패스 문제점 다시 보기 = 75
3.9 요약 = 77
CHAPTER 4 모듈화 JDK 소개
4.1 레거시 JDK 확인 = 80
4.1.1 JRE 구조 = 80
4.1.2 API 캡슐화의 상태 = 82
4.2 프로젝트 Jigsaw로 들어가기 = 85
4.3 플랫폼 모듈화 = 85
4.3.1 플랫폼 모듈화의 영향 = 88
4.3.2 모듈 그래프 = 87
4.3.3 java, base 모듈 = 88
4.3.4 모듈 살펴보기 = 89
4.3.5 모듈 타입 = 91
4.3.6 플랫폼 파일 구조 확인하기 = 93
4.4 관찰대상 모듈 = 94
4.5 두 가지 문제점 다시 보기 = 95
4.5.1 모놀리식 런타임 문제 해결 = 95
4.5.2 API 캡슐화 문제 해결 = 96
4.6 요약 = 96
CHAPTER 5 플랫폼 API 사용하기
5.1 로깅 기능 추가 = 98
5.1.1 대안적인 컴파일러 명령 사용하기 = 100
5.2 XML 파일에서 주소록 정보 읽기 = 101
5.2.1 하드코딩된 주소록 제거하기 = 102
5.2.2 모듈 생성하기 = 102
5.2.3 XmlUtil 클래스 코딩하기 = 104
5.2.4 ContactLoader 클래스 코딩하기 = 105
5.2.5 새로운 모듈 호출하기 = 109
5.3 자바 FX로 UI 추가하기 = 111
5.3.1 모듈 생성하기 = 111
5.4 요약 = 117
CHAPTER 6 가독성과 접근성
6.1 가독성 = 120
6.2 접근성 = 121
6.2.1 인터페이스와 구현의 접근성 = 123
6.2.2 분리된 패키지 = 125
6.3 모듈화 비틀기 = 127
6.3.1 암시적 가독성 = 127
6.3.2 집합자 모듈 = 131
6.3.3 제한적 익스포트 = 133
6.4 주소록 관리 프로그램에 개념 적용하기 = 135
6.4.1 사용자 정의 집합자 모듈 만들기 = 135
6.4.2 모듈 임포트 최적화하기 = 137
6.4.3 모듈 익스포트 최적화하기 = 138
6.5 요약 = 139
CHAPTER 7 서비스 소개
7.1 결합의 문제 = 141
7.2 서비스 이해하기 = 144
7.2.1 서비스 등록자 = 145
7.2.2 서비스 생성하고 사용하기 = 146
7.2.3 정렬 서비스 구현하기 = 150
7.2.4 모듈 그래프 그리기 = 154
7.3 고급 서비스 = 154
7.3.1 싱글톤과 팩토리 제공자의 지원 = 155
7.3.2 서비스 우선순위 구현하기 = 155
7.3.3 서비스 인터페이스 제공자 탐색하기 = 158
7.3.4 선택적인 서비스 인스턴스화 = 159
7.4 서비스와 모듈 시스템의 목적 = 161
7.5 요약 = 162
CHAPTER 8 링킹 이해하기와 jlink 활용하기
8.1 모듈 해석 = 165
8.1.1 모듈 해석 과정 = 167
8.1.2 모듈 해석 실행해보기 = 168
8.2 JDK 상태 다시 보기 = 170
8.3 jlink를 활용한 링킹 = 171
8.3.1 jlink 명령 = 172
8.3.2 링킹 최적화와 jlink 플러그인 = 176
8.4 모듈 JAR 파일 만들기 = 178
8.5 요약 = 179
CHAPTER 9 모듈 설계 패턴과 전략
9.1 모듈 설계하기 = 181
9.1.1 범위 = 182
9.1.2 팀 구조 = 183
9.1.3 재사용성 = 183
9.2 관심사에 따른 모듈화 = 184
9.3 계층 구조로 모듈화 = 185
9.4 변화 패턴으로 모듈화 = 185
9.5 API 설계하기 = 185
9.6 자바 모듈의 코딩 패턴과 전략 = 186
9.6.1 패턴 1 - 공개 인터페이스와 내부 구현, 팩토리 클래스 = 186
9.6.2 패턴 2 - 다수의 동적 구현을 위한 서비스 = 187
9.6.3 패턴 3 - 선택적 의존성 = 189
9.6.4 패턴 4 - 서비스를 활용한 선택적 의존성 = 192
9.6.5 패턴 5 - 모델 클래스를 별도의 공유 모듈로 묶기 = 195
9.6.6 패턴 6 - 리플렉션을 위한 열린 모듈 = 195
9.6.7 패턴 7 - 버전 관리를 위한 도구 사용 = 198
9.6.8 패턴 8 - 변화를 위한 설계 = 199
9.6.9 패턴 9 - 의존성 누수로부터 보호하기 = 200
9.6.10 패턴 10 - 집합자와 퍼시드 모듈 = 201
9.7 요약 = 203
CHAPTER 10 자바 9를 위한 코드 준비하기
10.1 자바 9 마이그레이션 시작 = 206
10.2 자바 8 기반의 응용 프로그램 예제 = 207
10.3 자바 9 컴파일러와 런타임 사용하기 = 209
10.3.1 이름 없는 모듈 = 211
10.3.2 비표준 접근 다루기 = 214
10.3.3 모듈 행동 오버라이드하기 = 217
10.4 영향력 이해하기 = 221
10.5 추천 전략 = 222
10.6 요약 = 223
CHAPTER 11 자바 9로 마이그레이션하기
11.1 마이그레이션 목표 이해하기 = 226
11.2 마이그레이션 시작하기 = 229
11.2.1 자동 모듈 = 233
11.2.2 자동 모듈로 마이그레이션하기 = 235
11.2.3 jdeps로 모듈 관계 확인하기 = 237
11.2.4 작은 모듈로 리팩토링하기 = 238
11.3 좀 더 큰 코드베이스 다루기 = 239
11.4 라이브러리 마이그레이션하기 = 241
11.4.1 라이브러리 이름 예약하기 = 242
11.4.2 jdpes 명령으로 모듈 기술자 생성하기 = 243
11.5 여러 자바 버전에 대응하는 라이브러리 빌드하기 = 244
11.6 요약 = 248
CHAPTER 12 빌드 도구 활용과 자바 모듈 테스트
12.1 아파치 메이븐과 통합하기 = 252
12.1.1 메이븐 훑어보기 = 252
12.1.2 자바 9 모듈과 메이븐 사용하기 = 252
12.1.3 멀티 모듈 자바 9 메이븐 프로젝트와 작업하기 = 254
12.2 자바 9로 유닛 테스트하기 = 259
12.2.1 자바 9 모듈 테스트하기 = 260
12.3 요약 = 264
12.4 마무리 = 264
찾아보기 = 265
닫기