Java 9에서 모듈형 애플리케이션을 만드는데 필요한 패턴과 사례를 담았다. Java 모듈시스템은 Java 애플리케이션을 설계하고 빌드하는 방법을 개선한다. 모듈을 즉시 사용하지않더라도 JDK 자체의 모듈화를 이해하는 것이 중요한 첫걸음이다.
서문 머리말
Part 1. Java 모듈 시스템 소개 chapter 1. 모듈화 관련 이슈들 모듈화는 무엇인가? Java 9 이전 버전 살펴보기 JAR가 모듈로 사용될 수 있을까? 클래스패스 지옥 Java 9 모듈 chapter 2. 모듈과 모듈형 JDK 모듈형 JDK 모듈 디스크립터(Module Descriptor) 가독성(Readability) 접근성 묵시적 가독성 제한적인 익스포트(qualified exports) 모듈 해석(resolution)과 모듈패스 모듈화 되지 않은 코드에서 모듈형 JDK 사용하기 chapter 3. 모듈 개발하기 첫 번째 모듈 만들기 모듈 구조 모듈 이름 정하기 컴파일하기 패키징하기 모듈 실행하기 모듈패스 모듈 연결하기 혼자 동작하는 모듈은 없다 EasyText 예제 알아보기 두 개의 모듈 플랫폼 모듈을 사용하여 동작하기 적합한 플랫폼 모듈 찾기 GUI 모듈 만들기 캡슐화의 한계 인터페이스와 인스턴스화 팩토리 패턴(Factory Pattern) chapter 4. 서비스 구현을 숨기기 위한 서비스 서비스 제공하기 서비스 사용하기 서비스 라이프 사이클 서비스 Provider 메소드 팩토리 패턴 재검토 디폴트 서비스 구현 서비스 구현 선택 서비스 타입 검사 및 게으른 인스턴스화 서비스 바인딩을 사용한 모듈 해석 서비스 및 연결하기 chapter 5. 모듈화 패턴 모듈 바운더리 정하기 린(lean) 모듈 API 모듈 API 모듈은 어떻게 구성해야 할까? 묵시적 가독성 디폴트 구현이 있는 API 모듈 집합 모듈 모듈에 Facade 패턴 적용하기 안전하게 모듈 분리하기 순환 의존성 피하기 분할 패키지 순환 의존성 제거하기 선택적 의존성 컴파일 시점 의존성 서비스를 이용한 선택적 의존성 구현 모듈 버전 관리 모듈 해석과 버전 리소스 캡슐화 모듈에서 리소스 로딩하기 모듈 사이의 리소스 로드 ResourceBundles 클래스 사용하기 chapter 6. 고급 모듈화 패턴 강력한 캡슐화 재검토 딥 리플렉션 오픈 모듈과 패키지 의존성 주입 모듈에 대한 리플렉션 모듈 읽기(Introspection) 모듈 수정 어노테이션 컨테이너 애플리케이션 패턴 레이어 및 설정 레이어에서의 클래스 로딩 플러그인 아키텍처 컨테이너 아키텍처 컨테이너에서 플랫폼 모듈 해석
Part 2. 마이그레이션 chapter 7. 모듈로 변환하지 않고 마이그레이션하기 클래스 패스는 없어졌지만, 여전히 사용된다 라이브러리, 강력한 캡슐화 그리고 JDK 9 클래스패스 컴파일 및 캡슐화된 API 삭제된 타입 JAXB 및 기타 Java EE API 사용 jdk.unsupported 모듈 기타 변경 사항 chapter 8. 모듈로 마이그레이션 마이그레이션 전략 간단한 예제 살펴보기 클래스패스와 모듈패스 같이 사용하기 자동 모듈 오픈 패키지 오픈 모듈 캡슐화 해제를 위한 VM인수 자동 모듈과 클래스패스 jdeps 사용하기 동적 코드 로딩 분할 패키지 chapter 9. 마이그레이션 케이스 스터디: Spring과 Hibernate 애플리케이션에 익숙해지기 Java 9에서 클래스패스 기반으로 실행하기 모듈 설정하기 자동 모듈 사용하기 Java 플랫폼 의존성 및 자동 모듈 리플렉션을 위해 패키지 오픈하기 불법적인 접근 수정하기 다중 모듈에 대한 리팩터링 chapter 10. 라이브러리 마이그레이션 모듈화 이전 단계 라이브러리 모듈 이름 선택하기 모듈 디스크립터 만들기 모듈 디스크립터로 라이브러리 업데이트하기 Java 구버전 타겟팅하기 라이브러리 모듈 의존성 내부 의존성 외부 의존성 다양한 Java 버전 타겟팅하기 다중 릴리즈 JAR 모듈형 다중 릴리즈 JAR
Part 3 모듈 개발을 위한 도구 chapter 11. 빌드 도구와 IDE Apache Maven 다중 모듈 프로젝트 EasyText에 Apache Maven 적용하기 Apache Maven으로 모듈형 애플리케이션실행하기 Gradle IDE chapter 12. 모듈 테스트 블랙박스 테스트 Junit을 이용한 블랙박스 테스트 화이트박스 테스트 테스트 도구들 chapter 13. 사용자 정의 런타임 이미지를 이용한 사이즈 줄이기 정적 링크와 동적 링크 jlink 사용하기 적합한 서비스 Provider 모듈 찾기 링크 시점의 모듈 해석 클래스패스 기반의 어플리케이션을 위한 jlink 사이즈 줄이기 성능 향상하기 크로스 타겟팅을 위한 런타임 이미지 chapter 14. 모듈화의 미래 OSGi Java EE 마이크로서비스 다음 단계들
찾아보기
자바 코딩 인터뷰 완벽 가이드 : 자바 프로그래머의 취업을 위한 258가지 코딩 인터뷰 & 테스트 2022 / 지음: 안겔 레오나르드 ; 옮김: 시진 / 동양북스
좋은 코드, 나쁜 코드 : 프로그래머의 코드 개선법 2022 / 지음: 톰 롱 ; 옮김: 차건희 / Jpub(제이펍)
(Web·programming·Git이 쉬워지는) 비주얼 스튜디오 코드 가이드 2024 / 저: 리브로웍스 ; 역: 김은철 , 유세라 / Youngjin.com(영진닷컴)
(제프리 리처의) Windows via C/C++ : 5판까지 이어진 제프리 리처의 명성, 윈도우 프로그래밍의 바이블!2019 / 지음: 제프리 리처, 크리스토프 나자르 ; 역: 김명신 / 한빛미디어
프로그래밍 언어도감 : for programming language lovers2018 / 저: 마스이 토시카츠 ; 역: 김형민 / Youngjin.com(영진닷컴)
클로저 시작하기 : 기본 개념과 7주 훈련 프로그램2016 / 지음: 캐린 마이어 ; 옮김: 박상규, 김만명, 김영태 / 인사이트
(마츠모토 유키히로의) 프로그래밍 언어 만들기 : Ruby 및 Streem을 통한 언어 제작 과정 살펴보기2019 / 지음: 마츠모토 유키히로 ; 옮김: 김성준 / 에이콘출판사
자바 9 모듈화2018 / 지은이: 샌더 맥, 폴 베이커 ; 옮긴이: 김성태, 임재봉 / 터닝포인트
Head First JavaScript : 대화형 웹 애플리케이션의 시작2008 / 마이클 모리슨 저 ; 홍형경 역 / 한빛미디어
생각대로 블록코딩. 1, 아두이노 보드를 이용한 조이스틱 만들기 : 코딩교육 전문도서2018 / 지음: 민형기, 로봇엔모어 / 토마토북
개발자로 살아남기 2022 / 지음: 박종천 / Golden Rabbit(골든래빗)
세상을 만드는 글자, 코딩2018 / 지음: 박준석 / 동아시아
좋은 코딩 나쁜 코딩 : 단순한 코드가 좋은 코드다 : 성공하는 프로그래머의 128가지 코딩 습관2013 / 박진수 지음 / 한빛미디어
로블록스로 게임 만들기 : 루아 기초 떼고 메타버스 콘텐츠 만들고, 게임 만들고, 배포 수익화까지! 2023 / 지음: 박필준 / 앤써북
비트코딩 라이트 : C언어 2019 / 지음: 박해민 ; 한기현 / 햄큐
코어 자바스크립트 = Core Javascript : 핵심 개념과 동작 원리로 이해하는 자바스크립트 프로그래밍 2022 / 지음: 정재남 / 위키북스