모듈
- JAVA 9에서 도입된 개념
- 패키지와 이미지 등 리소스를 담은 컨테이너
- 모듈 파일(.jmod)로 저장
자바 플랫폼의 모듈화
- 자바 개발 환경(JDK)과 실행 환경(JRE)을 지칭(Java SE 포함)
- 자바 API의 모든 클래스가 여러 개의 모듈로 재구성
- 모듈 파일은 JDK의 jmods 디렉터리에 저장하여 배포
- jmod 파일은 ZIP으로 압축
jmod extract "C:\Program Files\JAVA\jdk-10\jmods\java.base.jmod"
- 현재 디렉터리의 jaba.base 모듈이 풀림
모듈 기반의 자바 실행 환경
자바 실행 환경(java run time environment)
- 자바 응용프로그램이 실행되는 데 필요한 환경
- 자바 API 클래스와 자바 가상 기계(JVM) 등으로 구성
비교 관점 | JAVA 8까지 | JAVA 9 이후 |
자바 API 클래스의 컨테이너 | - rt.jar 단일체에 자바 API 패키지들을 모두 담음 | - rt.jar 사용x - 자바 API를 많은(99개) 모듈 파일에 나누어 저장 |
디폴트 실행 환경 | - 실행되는 컴퓨터에 rt.jar 설치(용량 큼) | - modules(JRE lib 밑) 비공개 파일에 모듈 저장 - 응용프로그램 실행 시 modules 파일에서 필요한 모듈 및 클래스 로딩 |
맞춤형 실행 환경(custom JRE) | - 없음 - 소형 기기에 rt.jar 설치 불가 |
- 맞춤형 실행 환경 구축 가능 - jlink 명령을 이용하여 응용프로그램 실행에 필요한 모듈들로 실행 환경 구출 가능 - 메모리가 열악한 소형 기기에도 응용프로그램 실행 가능 |
자바 모듈화의 목적
- 자바 컴포넌트들을 필요에 따라 조립하여 사용
- 컴퓨터 시스템의 불필요한 부담 감소
- 소평 IoT 장치에도 자바 응용프로그램이 실행되고 성능을 유지하게 함
'java > 개념' 카테고리의 다른 글
Object 클래스 (0) | 2024.06.02 |
---|---|
JDK에서 제공하는 패키지 (0) | 2024.06.02 |
패키지 만들기 (0) | 2024.06.02 |
import와 클래스 경로 (0) | 2024.05.23 |
패키지(package) (0) | 2024.05.23 |