<이 책의 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원받아 작성된 글입니다.>
책소개
유지 보수 가능한 응용 프로그램 개발을 위한 자바 모듈 프로그래밍
자바 9에서 모듈화의 도입은 엄청난 사건입니다. 자바 9에 포함된 다른 선택적인 요소와 달리 자바 플랫폼 모듈 시스템은 자바 코드의 설계와 구현에서 근본적인 변화를 의미합니다.
이 책은 단계별 접근법으로 새로운 모듈을 생성해보고 레거시 코드에서 자바 9 모듈 시스템으로 옮겨가는 방법을 다룹니다. 완전히 모듈화된 예제 코드로 새로운 기능들을 직접 실습해볼 수 있습니다. 모듈 정의를 생성하고 모듈 간 의존성을 설정하고 모듈화된 JDK에서 제공하는 내장 모듈들을 활용해볼 수 있습니다. 또한, 모듈 해석에 대해 배우고 jlink 명령으로 사용자 정의 런타임 이미지를 생성합니다.
한 단계 더 나아가 새로운 모듈 응용 프로그램을 작성하는 모범 사례를 배웁니다. 또한, 기존 자바 코드베이스를 자바 9로 업그레이드하고 라이브러리 코드 작성 시 발생할 수 있는 문제들과 자바 9 응용 프로그램을 테스트하는 방법을 알아봅니다.
-모듈과 모듈 프로그래밍 개념 소개
-자바 9 모듈 빌드 및 구성
-모듈 사용과 모듈 간 종속성 설정
-캡슐화와 가독성, 접근성 원칙 이해 및 사용
-jlink로 완전히 로드된 사용자 정의 런타임 이미지 생성
-모듈을 작성하는 데 유용한 모범 사례
-새로운 자바 9 모듈 시스템으로의 마이그레이션
[인터넷 교보문고 제공]자세한 내용 : Link
목차
CHAPTER 1 자바 9 모듈화 소개
_1.1 자바 언어의 모듈화
_1.2 패키지로 자바 개발을 다시 생각하기
_1.3 자바, 스무 해가 넘은 코드베이스
_1.4 자바 플랫폼 모듈 시스템
_1.5 프로젝트 Jigsaw
_1.6 요약
CHAPTER 2 첫 번째 자바 모듈 만들기
_2.1 JDK 설정하기
_2.2 JDK 버전 전환하기
_2.3 넷빈즈 IDE 설정하기
_2.4 자바 9 모듈
_2.5 넷빈즈 활용 모듈 만들기
_2.6 주소록 관리 프로그램
_2.7 오류 다루기
_2.8 요약
CHAPTER 3 모듈 간 의존성 다루기
_3.1 두 번째 모듈 만들기
_3.2 두 모듈 컴파일하기
_3.3 모듈 의존성 설정하기
_3.4 모듈 버전 관리
_3.5 패키지 구조 다시 생각하기
_3.6 모듈 경로 인자 이해하기
_3.7 클래스패스 다시 보기
_3.8 클래스패스 문제점 다시 보기
_3.9 요약
CHAPTER 4 모듈화 JDK 소개
_4.1 레거시 JDK 확인
_4.2 프로젝트 Jigsaw로 들어가기
_4.3 플랫폼 모듈화
_4.4 관찰대상 모듈
_4.5 두 가지 문제점 다시 보기
_4.6 요약
CHAPTER 5 플랫폼 API 사용하기
_5.1 로깅 기능 추가
_5.2 XML 파일에서 주소록 정보 읽기
_5.3 자바 FX로 UI 추가하기
_5.4 요약
CHAPTER 6 가독성과 접근성
_6.1 가독성
_6.2 접근성
_6.3 모듈화 비틀기
_6.4 주소록 관리 프로그램에 개념 적용하기
_6.5 요약
CHAPTER 7 서비스 소개
_7.1 결합의 문제
_7.2 서비스 이해하기
_7. 고급 서비스
_7.4 서비스와 모듈 시스템의 목적
_7.5 요약
CHAPTER 8 링킹 이해하기와 jlink 활용하기
_8.1 모듈 해석
_8.2 JDK 상태 다시 보기
_8.3 jlink를 활용한 링킹
_8.4 모듈 JAR 파일 만들기
_8.5 요약
CHAPTER 9 모듈 설계 패턴과 전략
_9.1 모듈 설계하기
_9.2 관심사에 따른 모듈화
_9.3 계층 구조로 모듈화
_9.4 변화 패턴으로 모듈화
_9.5 API 설계하기
_9.6 자바 모듈의 코딩 패턴과 전략
_9.7 요약
CHAPTER 10 자바 9를 위한 코드 준비하기
_10.1 자바 9 마이그레이션 시작
_10.2 자바 8 기반의 응용 프로그램 예제
_10.3 자바 9 컴파일러와 런타임 사용하기
_10.4 영향력 이해하기
_10.5 추천 전략
_10.6 요약
CHAPTER 11 자바 9로 마이그레이션하기
_11.1 마이그레이션 목표 이해하기
_11.2 마이그레이션 시작하기
_11.3 좀 더 큰 코드베이스 다루기
_11.4 라이브러리 마이그레이션하기
_11.5 여러 자바 버전에 대응하는 라이브러리 빌드하기
_11.6 요약
CHAPTER 12 빌드 도구 활용과 자바 모듈 테스트
_12.1 아파치 메이븐과 통합하기
_12.2 자바 9로 유닛 테스트하기
_12.3 요약
_12.4 마무리
Java 9 모듈 프로그래밍, 자바 모듈 프로그래밍으로 재사용 가능하고 관리하기 쉬운 코드 작성하기
5월 나는 리뷰어다 이벤트로 리뷰하게 된 Java 9 모듈 프로그래밍입니다.
리뷰를 시작하기에 앞서 현재 자바의 최신 버전은 10입니다!
책이 번역되고 출판되는 동안 벌써 버전이 바뀌었네요. 빠르게 변화하다보니 항상 빠르게 적응해야 하는게 일이 되어버렸네요.
잘 보이지는 않지만, 모듈 프로그래밍을 해야하는 이유는 JAR 파일을 활용하여 개발하는 방식의 한계점이 있기 때문에
그 부분을 개선하기 위해서라고 이해하시면 될 것 같네요.
평소 자바로 프로젝트를 진행할 때 대부분의 개발자가 다음과 같은 방식으로 개발을 진행합니다. 물론 제가 진행하는 프로젝트 또한
사진과 같은 형태로 되어 있습니다. 자바 9에서는 이런 부분에 약간의 수정이 이루어졌습니다.
모듈 프로그래밍이라는 개념이 도입되면서 조금 더 세분해되었습니다. 재사용성을 높이는 방법 중에 하나는 세분화 시키는 방법이기 때문에
사진과 같은 형태로 된게 아닌가 라는 고민을 하게 되었습니다.
모듈을 다루면서 의존성에 대한 개념도 다루게 됩니다. 의존도가 높으면 재사용 하기 어렵고, 그만큼 코드 리팩토링도 힘들어지기 때문이죠.
의존성이 높은 .java 파일끼리 모아놓고 사용하는 모듈을 이용해서 프로그램을 작성하는 방식이 주로 나옵니다.
제가 느끼기에 책을 읽으면서 가장 중요한 부분이라고 생각하는 곳은 5장 가독성과 접근성이라고 생각했습니다.
가독성이 중요한 이유는 혼자만 알아볼 수 있는 코드를 작성하게 되면 팀 프로젝트를 진행할 때 그만큼 따르는 문제도 크고
유지보수에서의 문제도 크기 때문에 중요하게 봐야할 곳인데 설명이 조금 짧은게 아닌가 싶어요.
주로 사용되는 변수 명명법이나 함수 명명법은 프로젝트 마다 다르고 또한 인터넷을 조사해보면 많으니 검색해보시는 것도
좋을 것 같네요.
모듈 사용이 어느정도 익숙해지면 설계에 대한 내용이 나옵니다. 사실 모듈을 먼저 설계하고 나서 기능을 설계하는게 더욱 쉬운 작업 일 수 있는데 어려운 내용이다 보니 뒤로 빼서 작성한게 아닌가 생각이 듭니다.
책을 읽어도 좋을 것 같지만, 지금 진행하는 프로젝트 방식으로 충분히 세분화해서 만들면
굳이 모듈 프로그래밍을 하지 않아도 사용할 수 있다는 생각이 듭니다. 오히려 모듈 프로그래밍을 하게 되면 여러사람이
방식을 알아야 하는 등 다양한 문제가 발생할 수 있을 것 같네요.
모듈 프로그래밍에 대해 궁금하신 분들께 이 책으로 개념을 잡아보는 것을 추천드리지만,
비슷한 내용들이 인터넷에 많이 나와 있기 때문에 그런 점을 감안하고 보셔야 할 것 같네요.
[ 마무리 ]
현재 자바 버전은 10이지만 모듈 프로그래밍에 대한 개념을 익힐 수 있는 책.
디자인 ★★★☆☆
내용 ★★★☆☆
난이도 ★★★☆☆