이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 


전이 의존

이러한 의존 관계를 아래의 의존 관계로 바꾸었다고 해보자.

 

 

이렇게 되면 myapp1은 module_1에 있는 내용은 접근할 수 있지만, module_2의 내용은 접근할 수 없다.

myapp1에서 module_1과 module_2에 있는 내용 전부 접근하고 싶다면 전이 의존을 이용해야 한다.

이 상황에서 전이 의존은 module_1의 모듈 기술자에 transitive 키워드와 module_2를 의존 설정하면 된다.

module myapp1 {
	requires module_1;
}
module module_1 {
	requires transitive module_2
}

 

당연히 module_1과 module_2의 위치를 알려줘야 한다.

 

이제 의존 관계는 아래와 같다.

 


 

집합 모듈

  • 집합 모듈은 전이 의존을 이용하여 여러 모듈을 모아놓은 모듈을 뜻한다.
  • 자주 사용되는 모듈들을 일일이 requires 하는 번거로움을 피하고 싶을 때 집합 모듈을 생성하면 편리하다.
  • 집합 모듈은 자체적인 패키지를 가지지 않고, 모듈 기술자에 전이 의존 설정만 하면 된다.

 

예를 들어 my_module은 module_1과 module_2를 제공하는 집합 모듈이라고 가정하면  my_module의 모듈 기술자는 아래와 같이 작성할 수 있다.

module my_module {
    requires transitive module_1;
    requires transitive module_2;
}

따라서 외부에서는 my_module만 모듈 기술자에서 requires 해주면  module_1과 module_2를 모두 사용할 수 있다.

하지만 my_module, module_1, module_2 모두 경로를 알려줘야 한다는 귀찮은 점이 있다.