메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

Java 9 모듈 프로그래밍

자바 모듈 프로그래밍으로 재사용 가능하고 관리하기 쉬운 코드 작성하기

한빛미디어

번역서

판매중

  • 저자 : 코시크 코타갈
  • 번역 : 유동환
  • 출간 : 2018-05-01
  • 페이지 : 268 쪽
  • ISBN : 9791162240403
  • 물류코드 :10040
초급 초중급 중급 중고급 고급
4점 (5명)
좋아요 : 4

유지 보수 가능한 응용 프로그램 개발을 위한 자바 모듈 프로그래밍 

 

자바 9에서 모듈화의 도입은 엄청난 사건입니다. 자바 9에 포함된 다른 선택적인 요소와 달리 자바 플랫폼 모듈 시스템은 자바 코드의 설계와 구현에서 근본적인 변화를 의미합니다. 

이 책은 단계별 접근법으로 새로운 모듈을 생성해보고 레거시 코드에서 자바 9 모듈 시스템으로 옮겨가는 방법을 다룹니다. 완전히 모듈화된 예제 코드로 새로운 기능들을 직접 실습해볼 수 있습니다. 모듈 정의를 생성하고 모듈 간 의존성을 설정하고 모듈화된 JDK에서 제공하는 내장 모듈들을 활용해볼 수 있습니다. 또한, 모듈 해석에 대해 배우고 jlink 명령으로 사용자 정의 런타임 이미지를 생성합니다.

한 단계 더 나아가 새로운 모듈 응용 프로그램을 작성하는 모범 사례를 배웁니다. 또한, 기존 자바 코드베이스를 자바 9로 업그레이드하고 라이브러리 코드 작성 시 발생할 수 있는 문제들과 자바 9 응용 프로그램을 테스트하는 방법을 알아봅니다.

  • 모듈과 모듈 프로그래밍 개념 소개
  • 자바 9 모듈 빌드 및 구성
  • 모듈 사용과 모듈 간 종속성 설정
  • 캡슐화와 가독성, 접근성 원칙 이해 및 사용
  • jlink로 완전히 로드된 사용자 정의 런타임 이미지 생성
  • 모듈을 작성하는 데 유용한 모범 사례 
  • 새로운 자바 9 모듈 시스템으로의 마이그레이션
저자

코시크 코타갈

Java Brains의 설립자. Java Brains는 온라인 교육 사이트를 운영하며 기업용 자바와 자바스크립트 기술에 관한 다양한 과정을 무료로 제공합니다. Financial Engines에서 선임 엔지니어로 근무하였으며 풀스택 웹 개발자로 14년간 일하였습니다. 주 관심사는 자바, 스프링, 자바 EE, 자바스크립트와 앵귤러입니다. 가르치기를 좋아하여 자바와 자바스크립트로 코딩하지 않을 때는 아마도 누군가를 가르치고 있을 겁니다. 현재 베이 에어리어에 거주합니다. 

역자

유동환

책 쓰는 프로그래머. 연세대학교 정보대학원에서 경영정보학을 전공한 후 LG전자에 안드로이드 앱을 개발하였습니다. 최근에는 선행플랫폼개발팀으로 자리를 옮겨 차세대 모바일 기술 프로젝트를 진행하고 있습니다. 자바카페와 한국자바개발자협의회(JCO)의 초기 멤버로 수년간 활동하였습니다.

집필한 책으로는 『안드로이드를 위한 Gradle』(2016)과 『RxJava 프로그래밍』(공저, 2017, 이상 한빛미디어)이 있고, 번역한 책으로는 『Professional Java Web Services』(2002, 정보문화사)와 『그레이들 레시피』(2016), 『Java 9 모듈 프로그래밍』(2018, 이상 한빛미디어)이 있습니다.

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 마무리 

이 책은 자바로 모듈 프로그래밍을 할 수 있도록 자세한 지침과 따라 해볼 수 있는 실습 예제를 제공합니다. 이 책에 있는 코드를 읽고 따라 해보면 자바 9 모듈화의 개념과 기능, 플랫폼에 미치는 영향을 이해하게 되고, 모듈 응용 프로그램을 만드는 데 새로운 패러다임을 직접 활용할 수 있습니다. 

이 책의 주요 목표는 자바 모듈화에 대한 개념과 중요 내용을 깊게 이해하는 것입니다. 장 순서는 중간에 모르는 내용이 없도록 세심하게 고려하였습니다. 그래서 가능하면 처음부터 정독하기를 추천하지만, 이미 특정 주제를 알고 있다면 건너뛰어도 무방합니다. 

 

장별 다루는 내용

 

<1장 자바 9 모듈화 소개> 

자바 코드의 구조와 관리 상태를 다룹니다. 자바 프로그래밍을 하는 사람은 누구나 익숙한 JDK를 예로 들어 시간이 흐르면서 커져만 가는 코드베이스를 관리하고 조직하면서 겪는 도전 과제와 위험성을 개괄적으로 서술합니다. 그리고 프로젝트 Jigsaw(직소)를 소개하고 앞서 설명한 도전 과제를 모듈화 개념으로 어떻게 해결하는지 설명합니다. 

 

<2장 첫 번째 자바 모듈 만들기>

모듈 구조를 사용하지 않는 샘플 코드로 한 단계씩 첫 번째 자바 9 모듈을 만들어갑니다. module 키워드와 module-info.java 클래스, 자바 모듈을 어떻게 정의하는지 알아봅니다. 그다음 모듈을 컴파일하고 실행해봅니다. .class 파일의 구조와 런타임이 어떻게 모듈 구조를 추론하여 동일한 모듈 정의를 사용하는지 알아봅니다. 

 

<3장 모듈 간 의존성 다루기>

이 장에서는 두 번째 모듈을 만들고 모듈끼리 서로 참조하도록 합니다. 자바 9를 활용하여 이러한 관계를 정의하며 멀티 모듈 응용 프로그램을 컴파일하고 실행하는 방법을 배웁니다. 

 

<4장 모듈화 JDK 소개>

플랫폼의 모듈화라는 JDK에 가해진 중요한 변화를 배웁니다. JDK를 설치할 때 기본으로 들어 있는 모듈을 알아봅니다. 이러한 모듈에 관해 더 많은 정보를 찾고 얻을 수 있는 도구와 기법에 대해서도 알아봅니다. 

 

<5장 플랫폼 API 사용하기>

실습 형태의 단계별 학습으로 예제 응용 프로그램에서 플랫폼 모듈을 사용하는 방법을 배웁니다. 이러한 플랫폼 모듈을 참조할 때 겪을 수 있는 몇 가지 도전 과제와 그 해결 방안을 이해할 수 있습니다.

 

<6장 가독성과 접근성>

모듈 간 의존성을 상세하게 알아보고 모듈과 라이브러리의 캡슐화 수준을 통제하는 방법을 소개합니다. 자바 요소의 캡슐화와 가용성에 영향을 주는 새로운 조건인 접근성과 가독성을 살펴봅니다.

 

<7장 서비스 소개> 

예제 응용 프로그램에서 두 모듈 사이의 강한 결합도를 알아보고 이것이 어떻게 확장성을 저해하고 새로운 모듈을 끼워 넣는 데 어려움을 주는지 이야기합니다. 또한, 새롭게 추가된 자바 9 서비스를 소개하고 구현 클래스를 캡슐화하기 위한 단계별 지침을 제공하며 ServiceLoader API를 호출하여 이들을 어떻게 찾는지 알아봅니다. 

 

<8장 링킹 이해하기와 jlink 활용하기>

자바 9로 개발하는 과정에서 정적 링킹 단계를 소개하고 이것이 어떻게 동작하는지 알아봅니다. 자바 9로 모듈을 만들 때 링킹이 하는 중요한 역할을 설명합니다. 그리고 예제 프로젝트용 런타임 이미지를 만들고 최적화하고 실행하기 위한 단계별 지침을 제공합니다. 

 

<9장 모듈 설계 패턴과 전략>

자바로 모듈 응용 프로그램을 만들 때 활용할 수 있는 몇 가지 모범 사례를 다룹니다. 자바 모듈 시스템의 기능과 동작 방식에 익숙해졌으므로 다음 질문은 언제, 어떻게 활용하는가입니다. 모듈의 범위와 경계를 정립하고 좋은 모듈 인터페이스를 정의하며 모듈 응용 프로그램을 만들 때 맞닥뜨리는 일반적인 몇 가지 도전 과제의 해결 방안을 소개합니다. 

 

<10장 자바 9를 위한 코드 준비하기>

오래된 예제 코드베이스를 자바 9로 마이그레이션하는 방법을 알아봅니다. 자바 모듈의 선택적 특성과 클래스패스 기반 코드가 어떻게 자동으로 이름 모듈로 할당되는지 알아봅니다. 그리고 자바 9에서 단계적으로 레거시 코드를 컴파일하고 실행해봅니다. 또한, 캡슐화된 타입을 사용할 때 발생하는 문제를 처리하거나 이를 피하는 방법을 알아봅니다. 

 

<11장 자바 9로 마이그레이션하기> 

자바 9에서 제공하는 새로운 모듈 시스템으로 레거시 코드를 마이그레이션하는 방법을 알아봅니다. 코드에 대한 마이그레이션 전략을 세우는 방법을 배우고 자바 9와 호환되지 않는 의존 관계를 어떻게 다루어야 할지 배웁니다. 자동화 모듈이나 명령줄 덮어쓰기 같이 마이그레이션을 보조하기 위해 설계된 자바 9의 기능도 알아봅니다. 

 

<12장 빌드 도구 활용과 자바 모듈 테스트>

빌드 도구 통합과 유닛 테스트라는 자바 프로그래밍의 중요한 영역을 다룹니다. 메이븐으로 프로젝트를 구조화하고 자바 9 모듈 응용 프로그램에 메이븐의 멀티 모듈 프로젝트 개념을 어떻게 맞추는지 알아봅니다. 마지막으로 JUnit을 활용한 자바 모듈 테스트 방법을 알아봅니다. 

  • 넷빈즈 기반인게 좀 아쉽지만, 자바9에서 새로 추가된 모듈 프로그래밍에 대하여 배우려면 필수라고 생각되는 책입니다. 강추 합니다.

  •  

    Java9에서 중요한 개념인 모듈화에 대해서 상세하게 알 수 있었습니다. 

    앞으로의 자바 플랫폼 모듈이 캡슐화 되어 내부 클래스를 외부로부터 온전히 보호 할 수 있다는 장점에 있다고 생각합니다. 특히, 플랫폼 개발자들에게는 더할 나위 없는 장점이 될거라 생각합니다.

     

    그리고 모듈화에 대한 개념이 추가 되며, 링킹이라는 개념도 추가적으로 도입하게 되었습니다. 이러한 모듈화 관련한 java9에 대한 개념들을 상세하게 소개 하고 있습니다.

     

    그리고 Java8의 유지보수 정책 기간이 2019.1월까지로 설정 되어있습니다. 고로, 웹 어플리케이션의 JDK 업데이트 시기가 점점 다가온다는 뜻입니다. JDK9은 이미 지나고, JDK10이 릴리즈 되었습니다.

     

    JDK11이 LTS버전으로 최소한의 장기간 업데이트 보장을 하는 버전으로 대부분의 서비스들이 java8에서 9로의 마이그레이션 시점이 가장 혼동이 심해지는 시기라고 생각되며, 9에서 11로 가는 데에는 그보다는 반감된 수고스러움으로 마이그레이션이 되리라 생각합니다.

     

    아마 tomcat,jetty등과 같은 어플리케이션 또한 지원을 하기 위한 준비를 하고 있으리라 생각합니다.

    새로운 전환점을 맞이하는 Java가 되어 가고 있으며, Java10에서는 Javascript style의 변수 선언 방식이 도입된다는 글도 보았습니다.

     

    모듈화라는 개념에 대해서만해도 책 한권의 분량으로 나오게 되었습니다. 앞으로의 Java는 lightweight를 지향하는 방향과 함께 진정한 함수형 패러다임의 도입과 완전한 일급 객체를 도입 할 수도 있을거라 생각합니다.

  • 이 책의 제목은 당연히 "Java 9 모듈 프로그래밍"이다.

     

    부제로는 "자바 모듈 프로그래밍으로 재사용 가능하고 관리하기 쉬운 코드 작성하기"이다.

     

    기존에 자바 프로그래밍도 물론 재사용 가능하고 관리하기가 쉽다. 하지만, 여기에서 붙는 단서는 모듈 프로그래밍 이라는 말이다. 그렇다면, 모듈 프로그래밍이 뭔지 제대로 정의하고 그것에 대한 구체적인 사례와 설명이 있을것이라는 기대를 제목에서 하게 만든다.

     

     

    samsung|SM-G955N|Normal program|Pattern|1/10sec|F/1.7|0.00 EV|4.2mm|ISO-200|Flash did not fire|2018:05:25 01:15:44

     

    표지는 심플하다. Java라는 글자보다는 역시 9에 집중하게 된다. Java를 잘 안다는 개발자로서 살아왔지만, Java가 계속 발전하고 있다는 사실도 알지만... Java 8에서의 Lambda 특성 이후에 Java 9, 그리고 Java 10에 이르기까지.. 그 특징들은 사실 하나도 모르고 있었다.

     

    그 중 Java 9를 이 책을 통해 알 수 있을 것이라는 기대가 생겼다.

     

     

    samsung|SM-G955N|Normal program|Pattern|1/60sec|F/1.7|0.00 EV|4.2mm|ISO-160|Flash did not fire|2018:05:25 01:16:25

     

    이 책의 초판발행일은 뜨끈뜨끈한 2018년 5월 1일이다. 아직도 5월은 채 다 지나지 않았는데.. 참 신선한 책이다.

     

    물론 번역서이기 때문에, 이 책의 내용 자체가 그렇게 뜨끈뜨끈하다고 볼 순 없지만, 영문 자체의 내용을 직접 접하는 것보다는 역시 한글이 친숙하다.

     

     

     

    samsung|SM-G955N|Normal program|Pattern|1/60sec|F/1.7|0.00 EV|4.2mm|ISO-160|Flash did not fire|2018:05:25 01:16:47

     

    각 챕터별 설명에 대한 내용이다.

     

    1장부터 12장까지 어떻게 구성되어 있는지 간략한 설명으로 편하게 다가갈 수 있게 돕고 있다.

     

     

     

    samsung|SM-G955N|Normal program|Pattern|1/60sec|F/1.7|0.00 EV|4.2mm|ISO-200|Flash did not fire|2018:05:25 01:17:07

     

    구성은 다음과 같다.

     

    총 12개의 Chapter로 구성되어 있다.

     

    CHAPTER 1. 자바 9 모듈화 소개

    CHAPTER 2. 첫 번째 자바 모듈 만들기

    CHAPTER 3. 모듈 간 의존성 다루기

    CHAPTER 4. 모듈화 JDK 소개

    CHAPTER 5. 플랫폼 API 사용하기

    CHAPTER 6. 가독성과 접근성

    CHAPTER 7. 서비스 소개

    CHAPTER 8. 링킹 이해하기와 jlink 활용하기

    CHAPTER 9. 모듈 설계 패턴과 전략

    CHAPTER 10. 자바 9를 위한 코드 준비하기

    CHAPTER 11. 자바 9로 마이그레이션 하기

    CHAPTER 12. 빌드 도구 활용과 자바 모듈 테스트

     

     

    전반적인 흐름을 유추할 수 있는 것은 Java 9의 큰 변화인 모듈 프로그래밍에 대한 초점을 맞추면서도, 그 주변 기능이나 변화에 대한 부분도 놓치지 않고 진행하고 있음이 보인다. 사실 Java 7하면 기억나는 것이 NIO, 그리고 Java 8 하면 기억나는 것이 Lambda였던 것처럼, 이젠 Java 9에 대한 부분도 "모듈 프로그래밍"이라는 feature를 각인시키려는 노력이 보이는 것이다. 그리고 그것을 어떻게 실제로 기존 프로젝트 및 신규 프로젝트에 적용할 수 있는지 구체적으로 예시를 들어 설명하고 있다는 것을 알 수 있다.

     

     

     

    samsung|SM-G955N|Normal program|Pattern|1/60sec|F/1.7|0.00 EV|4.2mm|ISO-200|Flash did not fire|2018:05:25 01:17:38

     

    챕터의 서두이다. 별도의 챕터별 표지는 없다. 다만, 주요로 다룰 내용을 먼저 나열하여, 이 챕터에서 학습해야 하는 부분을 알려주고 있다.

     

    그리고 필요할 때마다 옮긴이의 주석을 통해 이해를 돕고자 노력한 부분도 보인다.

     

     

     

    samsung|SM-G955N|Normal program|Pattern|1/60sec|F/1.7|0.00 EV|4.2mm|ISO-200|Flash did not fire|2018:05:25 01:18:01

     

    사실 자바 9의 모듈 프로그래밍의 필요성이 매우 중요하다. 사실 그 필요성이 크게 와 닿지 않으면 아무리 좋은 기능이라 하더라도 친숙한 기존의 개발 방법대로 개발할 것이다. 하지만, 여기에서는 필요성을 느낄 수 있도록 잭과 아미트라는 개발자 및 배포 엔지니어를 예를 들며 어떠한 상황에서 모듈 프로그래밍이 필요한지 언급하고 있다. 1장을 제대로 읽었다면, 이제 자바 9의 모듈 프로그래밍을 배우고 싶어할 것이다. 그렇다면, 2장으로 아주 부드럽게 넘어갈 수 있게 된다.

     

     

    samsung|SM-G955N|Normal program|Pattern|1/40sec|F/1.7|0.00 EV|4.2mm|ISO-160|Flash did not fire|2018:05:25 01:18:31

     

    새로운 모듈을 만드는 개념에 대해서 절차를 정확하게 명시해준다.

     

    많은 이야기를 하더라도 이러한 요약이 없으면, 어떤 절차로 진행해야하는지 사실 좀 막막할 때가 있다.

     

    하지만, 그런 수순을 밟지 않도록 큰 부분에서 흐름을 알려주고 있기 때문에 도움이 된다. 물론 9장에서는 설계 패턴 및 전략에 대한 부분까지 나오기 때문에, 이 절차 이전에도 어떻게 디자인을 할 것인가를 하는 고민에서 해방시켜 주기도 한다.

     

     

    samsung|SM-G955N|Normal program|Pattern|1/60sec|F/1.7|0.00 EV|4.2mm|ISO-200|Flash did not fire|2018:05:25 01:18:54

     

    JDK를 설치하는 과정이다. 당연하게 9.0에 대해서 설치하게 된다.

     

     

    samsung|SM-G955N|Normal program|Pattern|&l

  • 아직 많은 자바 프로젝트에서 jdk 1.8 로 넘어가지 못하고 있을 것 같다. 그만큼 1.8에 추가된 functional interface나 lambda의 개념은 기존의 프로그래밍 방식과 많이 다르다. 이런 시점에 java 9 이 릴리즈 된지도 벌써 반년이 넘었다. 자바9에서 추가되거나 개선된 기능은 여러가지 가 있지만 가장 큰 변화는 모듈화(Modularity) 일 것이다.

    OOP에 익숙한 자바 개발자 입장에서 1.8의 함수형 프로그래밍 개념 보다는 모듈 프로그래밍이 그나마 더 친숙하게 다가올 수 있을 것 같다. 하지만 모듈을 어떻게 만들고 어떻게 다뤄야 하는지 익숙해 지기는 쉽지 않아 보인다. 오히려 1.8로 넘어가는 것 보다 9가 자리잡는데 더 오랜 시간이 걸릴 수 도 있을 것 같다는 생각이 든다. 그래도 “Java 9 모듈프로그래밍” 책이 매우 좋은 가이드가 되어 줄 것 같다.

    일단 번역서임에도 불구하고 번역의 느낌이 별로 없다. 책 전체를 보면서 한 두문장을 제외하고는 딱히 애매한 부분이 없었다. 용어도 영어를 알파벳 그대로 옮길지, 한국어로 표현할지, 번역해서 표현할 지 매우 잘 선택한 것 같다. 개발자가 익숙한 단어를 다르게 표현되는 경우에 읽다가 흐름이 끊기는 경우가 많은데, 아마도 역자가 개발을 꽤 오래 한 것 같다. 오탈자도 거의 없는 느낌이다. 눈에 띄게 발견한 것도 한단어 정도?

    이 책이 전달하고자 하는 목적은 명확하다. “모듈이란 무엇이고 왜 사용해야 하는가.”
    이 내용 말고는 다른 사족이 붙어있지 않다. 처음 부터 끝까지 모듈만 집중해서 전달한다. 예제 코드도 매우 단순하고 짧다. 단순한 예제가 step by step으로 점진적으로 나아간다.
    무엇보다 좋았던 점은 모듈이라는 개념이  나올 수 밖에 없었는지 설명을 하며 책이 시작하는 것이다. 매우 간단한 예제와 java api를 모듈화하는 Jigsaw 프로젝트를 통해 간결하고 명확하게 전달해 준다.

    기존 코드에 어떤 문제가 있었는지, 그래서 모듈이 무엇이고 왜 필요한지, 모듈화를 위해 어떤 것들이 추가되었는지, 어떤 철학을 가지고 모듈화를 해야하는지, 기존 코드를 어떻게 마이그레이션 하는지 순으로 내용이 진행된다. 앞의 내용을 이해한 상태에서 다음 장으로 넘어가야 한다. 그래서 뒤로 갈 수록 조금씩 내용이 어려워 지는 느낌이다. 각 장에서 다루는 세부내용은 출판사 리뷰를 보면 좋을 것 같다.

    당장 java 9를 사용할 계획이 없더라도 6,7장 정도까지는 부담없이 볼 수 있고, java9를 사용하지 않더라도 보면 좋은 내용들이 많다. 캡슐화에 대해서 많은 부분에서 다루고 있다.

    다 보고나면 뭔가 배운 것 같은 느낌을 주는 책이다. 그냥 추가된 API를 훑는 것이 아니라, 저자의 경험과 철학을 조금은 담은 느낌이다.

    단, 모듈 프로그래밍의 다양하고 상세한 예제를 보고 싶거나, Java9 의 새로운 기능을 전반적으로 알고 싶은 사람에게는 조금은 지루 할 수도 있다.

  • <이 책의 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원받아 작성된 글입니다.>

     


     

     

    책소개

    유지 보수 가능한 응용 프로그램 개발을 위한 자바 모듈 프로그래밍

    자바 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이지만 모듈 프로그래밍에 대한 개념을 익힐 수 있는 책.

     

    디자인    ★★★☆☆

    내용       ★★★☆☆ 

    난이도    ★★★☆☆ 

     

결재하기
배송료 : 0원배송료란?

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
Java 9 모듈 프로그래밍
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
Java 9 모듈 프로그래밍
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
Java 9 모듈 프로그래밍
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실