Java Platform Module System(JPMS)은 Java 9에서 도입된 모듈 기반의 소프트웨어 개발 모델입니다. 이 모듈 시스템은 복잡한 프로그램을 개발하기 위해 필요한 고수준 차원의 구조화를 제공합니다. 이 노트는 JPMS의 개념과 모듈화된 자바 애플리케이션 개발 방법, JPMS 구현 방법, 그리고 모듈화된 자바 애플리케이션 실행하는 방법에 대해 소개합니다.
JPMS 개념 소개
JPMS은 모듈이라는 새로운 개념을 소프트웨어 시스템의 단계로 소개합니다. 모듈은 개발자가 무한한 관계를 가진 여러 객체들로 구성된 복잡한 시스템을 개발할 때 보다 유용한 단위로 나뉩니다. 각 모듈은 다른 모듈의 기능을 사용할 수 있는 방법과 그렇지 않은 방법을 명확하게 정의하는 모듈 바인딩 규칙을 포함합니다. 또한, 모듈들은 각각의 의존성을 지정하기 위해 정의된 모듈 레코드를 통해 서로 분리됩니다.
모듈화된 자바 애플리케이션 개발
JPMS를 사용하면, 개발자는 모듈별로 코드를 분리하고 각 모듈에 대한 의존성을 쉽게 지정할 수 있습니다. 이는 보다 분산되고 고급 사용 사례를 가진 소프트웨어 시스템 개발에 큰 도움이 됩니다. 모듈화된 자바 애플리케이션을 개발하기 위해서는 모듈 간의 의존성과 모듈 바인딩 규칙을 지정하는 방법을 이해해야 합니다. 모듈은 다음과 같이 정의할 수 있습니다.
module com.example.app {
requires java.base;
requires com.example.library;
exports com.example.app.api;
}
JPMS 구현 방법
JPMS의 구현은 모듈 로더 및 모듈 제어권 규칙을 기반으로 합니다. 모듈 로더는 모듈 설정과 모듈 레코드를 읽어 모듈 이름과 의존성을 확인합니다. 모듈 제어권 규칙은 모듈 바인딩 규칙과 관련되어, 각 모듈이 어떤 모듈을 호출하고 사용할 수 있는지 제한합니다. 이 규칙들은 모듈과 모듈 사이의