자바 9 모듈화(Java 9 Modularity)
도서명:자바 9 모듈화(Java 9 Modularity)
저자/출판사:샌더,맥,폴,베이커/터닝포인트
쪽수:312쪽
출판일:2018-09-17
ISBN:9791161340296
목차
Part 1. Java 모듈 시스템 소개
1장. 모듈화 관련 이슈들
모듈화는 무엇인가?
Java 9 이전 버전 살펴보기
JAR가 모듈로 사용될 수 있을까?
클래스패스 지옥
Java 9 모듈
2장. 모듈과 모듈형 JDK
모듈형 JDK
모듈 디스크립터(Module Descriptor)
가독성(Readability)
접근성
묵시적 가독성
제한적인 익스포트(qualified exports)
모듈 해석(resolution)과 모듈패스
모듈화 되지 않은 코드에서 모듈형 JDK 사용하기
3장. 모듈 개발하기
첫 번째 모듈 만들기
모듈 구조
모듈 이름 정하기
컴파일하기
패키징하기
모듈 실행하기
모듈패스
모듈 연결하기
혼자 동작하는 모듈은 없다
EasyText 예제 알아보기
두 개의 모듈
플랫폼 모듈을 사용하여 동작하기
적합한 플랫폼 모듈 찾기
GUI 모듈 만들기
캡슐화의 한계
인터페이스와 인스턴스화
4장. 서비스
팩토리 패턴
구현을 숨기기 위한 서비스
서비스 제공하기
서비스 사용하기
서비스 라이프 사이클
서비스 Provider 메소드
팩토리 패턴 재검토
디폴트 서비스 구현
서비스 구현 선택
서비스 타입 검사 및 게으른 인스턴스화
서비스 바인딩을 사용한 모듈 해석
서비스 및 연결하기
5장. 모듈화 패턴
모듈 바운더리 정하기
린(lean) 모듈
API 모듈
API 모듈은 어떻게 구성해야 할까?
묵시적 가독성
디폴트 구현이 있는 API 모듈
집합 모듈
모듈에 Fa?ade 패턴 적용하기
안전하게 모듈 분리하기
순환 의존성 피하기
분할 패키지
순환 의존성 제거하기
선택적 의존성
컴파일 시점 의존성
서비스를 이용한 선택적 의존성 구현
모듈 버전 관리
모듈 해석과 버전
리소스 캡슐화
모듈에서 리소스 로딩하기
모듈 사이의 리소스 로드
ResourceBundles 클래스 사용하기
6장. 고급 모듈화 패턴
강력한 캡슐화 재검토
딥 리플렉션
오픈 모듈과 패키지
의존성 주입
모듈에 대한 리플렉션
모듈 읽기
모듈 수정하기
어노테이션
컨테이너 애플리케이션 패턴
레이어 및 설정
레이어에서의 클래스 로딩
플러그인 아키텍처
컨테이너 아키텍처
컨테이너에서 플랫폼 모듈 해석
Part 2. 마이그레이션
7장. 모듈로 변환하지 않고 마이그레이션하기
클래스 패스는 없어졌지만, 여전히 사용된다
라이브러리, 강력한 캡슐화 그리고 JDK 9 클래스패스
컴파일 및 캡슐화된 API
삭제된 타입
JAXB 및 기타 Java EE API 사용
jdk.unsupported 모듈
기타 변경 사항
8장. 모듈로 마이그레이션
마이그레이션 전략
간단한 예제 살펴보기
클래스패스와 모듈패스 같이 사용하기
자동 모듈
오픈 패키지
오픈 모듈
캡슐화 해제를 위한 VM인수
자동 모듈과 클래스패스
Jdeps 사용하기
동적 코드 로딩
분할 패키지
9장. 마이그레이션 케이스 스터디: Spring과 Hibernate
애플리케이션에 익숙해지기
Java 9에서 클래스패스 기반으로 실행하기
모듈 설정하기
자동 모듈 사용하기
Java 플랫폼 의존성 및 자동 모듈
리플렉션을 위해 패키지 오픈하기
불법적인 접근 수정하기
다중 모듈에 대한 리팩터링
10장. 라이브러리 마이그레이션
모듈화 이전 단계
라이브러리 모듈 이름 선택하기
모듈 디스크립터 만들기
모듈 디스크립터로 라이브러리 업데이트하기
Java 구버전 타겟팅하기
라이브러리 모듈 의존성
내부 의존성
외부 의존성
다양한 Java 버전 타겟팅하기
다중 릴리즈 JAR
모듈형 다중 릴리즈 JAR
Part 3 모듈 개발을 위한 도구
11장. 빌드 도구와 IDE
Apache Maven
다중 모듈 프로젝트
EasyText에 Apache Maven 적용하기
Apache Maven으로 모듈형 애플리케이션실행하기
Gradle
IDE
12장. 모듈 테스트
블랙박스 테스트
Junit을 이용한 블랙박스 테스트
화이트박스 테스트
테스트 도구들
13장. 사용자 정의 런타임 이미지를 이용한 사이즈 줄이기
정적 링크와 동적 링크
jlink 사용하기
적합한 서비스 Provider 모듈 찾기
링크 시점의 모듈 해석
클래스패스 기반의 어플리케이션을 위한 jlink
사이즈 줄이기
성능 향상하기
크로스 타겟팅을 위한 런타임 이미지
14장. 모듈화의 미래
OSGi
Java EE
마이크로서비스