- @참고: https://greatkim91.tistory.com/197

 

위 글에서

 

1. Java9 의 장점

2. Java9 의 탄생 목적(기존의 문제점)

3. Java9 에서 가능해진 일

4. Java9에서 고려해야 할 점(넘어야할 산)

 

등에 대해서 잘 설명해두었다.

 

기존 Java 의 캡슐화 지원이 부족해서 Java9 가 생겼다고 하는데, 이는 

기존에 JAR 로 제공된 패키지에서 사용하는 class 만 노출하기가 안된다는 점이다. 왜냐하면 기존에는 대부분의 클래스가 public 이기 때문이다.

문제는 API 제공자가 기능 향상이나 리팩토링을 하기 위해 이러한 내부용 API 를 바꾸고 싶을 때 문제가 된다.

 

Java Jigsaw 프로젝트는 유연한 런타임 이미지를 만들 수 있도록 Java 플랫폼을 모듈화한다. 이말은 Java 진형의 개발자가 jdk 자체도 자유롭게 업그레이드 할 수 있게 된다는 말이다.

작은 모듈 단위로 관리됨으로, 언어 레벨에서 모듈간의 의존성을 알 수 있으며, 애플리케이션이 사용하는 모듈만 모아 런타임환경(이미지)를 만들 수 있다.

언어레벨에서 모듈화를 지원하기 때문에 도구레벨에서 가능한 일로

java runtime 을 쪼갤 수 있다. 즉 배포시 사용하지 않는 Swing, XML, SQL 같은 패키지를 제외하고 배포할 수 있다.

 

- 런타임 이미지가 작아지는 것의 이점으로

1. 소형 디바이스에서 사용가능

2. 경량으로 도커 이미지, 클라우드 컴퓨팅, 마이크로 서비스에서 활용가능

3. 모듈화 시스템은 스타트업 시 필요한 모듈만 로드할 수 있어서 시간, 성능 향상

4. JDK, JRE 통합 가능

 

단 주의점으로 cyclic dependency(모듈간 상호 참조) 를 주의해야한다.

 

블로그 이미지

uchacha

개발자 일지

,