ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java 9 모듈 프로그래밍
    후기/Book Review 2018. 6. 16. 15:27


    작년 9월에 자바9가 출시되었고, 9에서 가장 눈에 띄게 달라진 부분은모듈프로그래밍이라고 할 수 있다. 자바가 처음 출시된 지 20년이 지난 지금까지 하위호환성을 지키고 있다는 점은 다른 언어로서는 상상하기 힘든 장점이다. jdk1.4에서 컴파일한 클래스파일이 jre8에서도 여전히 잘 돌아간다는 뜻이다. 하지만 호환성을 지키기 위해 포기해야 하는 부분들이 있었는데 바로 jre의 사이즈이다. deprecated되거나 거의 쓰지도 않는 CORBA 클래스 같은 것들을 지원하기 위해 상위 jre에서는 계속 가져가야한다. 그러다보니 버전이 올라갈 때마다 rt.jar의 사이즈는 계속 커질 수 밖에 없다. 그 부분들을 해결하기 위해 나온것이 바로 자바9의 모듈인 것이다.


    목차

    1. 자바 9 모듈화 소개
    2. 첫 번째 자바 모듈 만들기
    3. 모듈 간 의존성 다루기
    4. 모듈화 JDK 소개
    5. 플랫폼 API 사용하기
    6. 가독성과 접근성
    7. 서비스 소개
    8. 링킹 이해하기와 jlink 활용하기
    9. 모듈 설계 패턴과 전략
    10. 자바 9를 위한 코드 준비하기
    11. 자바 9로 마이그레이션하기
    12. 빌드 도구 활용과 자바 모듈 테스트


    위에서 언급한 커져가는 rt.jar의 내부를 각각의 모듈로 나누어서 그 프로젝트가 jigsaw 프로젝트이다. 이미 엄청난 양의 코드 베이스를 모듈로 정리한 다는 것이 쉽지는 않았을 테지만 자바9, 자바10이 잘 동작하는 것을 보면 성공적인 것 같다. 이렇게 모듈화된 클래스들을 각각의 응용 프로그램마다 필요한 모듈만 가져다 사용할 수 있다. 모듈의 등장은 거대한 변화인것 같다. 기존의 모놀리틱한 클래스관점을 모듈의 관점으로 보게 하기 때문이다. 자바의 역사를 자바9 이전/이후로 나눌 수도 있지 않을까 생각될 정도다.


    자바9 module부터 새로 시작한다고 하면 필요 없을 것들이 너무 많다. 하위호환성을 위해 필요한 추가기능들이 너무 많다는 말이다. jdk.internals의 제공이라든지 unnamed module 등등.. 오히려 더 복잡해 진 것 같다는 생각이 들기도 한다. 하지만 여기서 한번 맺고 가지 않으면 자바 20쯤 나올 될때가 되면 jdk설치파일의 크기가 1기가가 넘어갈것 같다.


    책의 예제를 따라가다보면 소스가 다 없음을 발견하게 된다. 책을 번역하신 유동환님의 깃헙에서 전체 소스를 확인할 수 있다. 실습은 윈도우 환경보다는 맥이나 리눅스에서 하는게 더 좋아 보인다. 책에서 자바 명령줄로 javac & java를 실행하기 때문이다. 그리고 자동완성의 혜택을 누리고자 IntelliJ에서 실습을 해보니 수많은 빨간줄들을 경험했다. IntelliJ에서 제공하는 모듈방식으로 안하고 책의 소스 구조대로 만들어서 그런것 같다. 챕터별로 실습하고 작업한 것들의 소스를 정리해 보았다.


    Java 9 모듈 프로그래밍, 한빛미디어(코시크 코타갈)

    '후기 > Book Review' 카테고리의 다른 글

    블록체인 무엇인가?  (0) 2018.07.08
    자바 프로젝트 필수 유틸리티  (0) 2018.06.23
    관계형 데이터베이스 실전 입문  (0) 2018.05.13
    NoSQL 철저 입문  (0) 2018.04.19
    토비의 스프링 3.1 Vol.1  (0) 2018.04.07

    댓글

Designed by Tistory.