[java] Jigsaw 모듈의 접근 제어와 가시성 설정
Java 9부터 도입된 Jigsaw 모듈 시스템은 코드의 모듈화를 가능하게 해주었습니다. 이 모듈 시스템은 모듈 간의 의존성 관리와 코드의 격리를 쉽게 처리할 수 있게 해줍니다.
Jigsaw 모듈 시스템을 사용할 때, 모듈 내부에서의 접근 제어와 모듈 간의 가시성 설정은 매우 중요한 부분입니다. 이번 포스트에서는 Jigsaw 모듈에서의 접근 제어와 가시성 설정에 대해 알아보겠습니다.
접근 제어 키워드
Jigsaw 모듈 시스템에서는 접근 제어 키워드를 사용하여 다른 모듈에 대한 접근을 제어할 수 있습니다. 다음은 Jigsaw 모듈 시스템에서 사용할 수 있는 접근 제어 키워드입니다.
open
: 다른 모듈에서 이 모듈의 클래스, 인터페이스, 메서드 등에 접근할 수 있도록 합니다.public
: 모든 모듈에서 이 모듈의 클래스, 인터페이스, 메서드 등에 접근할 수 있도록 합니다.protected
: 같은 모듈이나 하위 클래스에서만 이 모듈의 클래스, 인터페이스, 메서드 등에 접근할 수 있도록 합니다.private
: 같은 클래스 내에서만 이 모듈의 클래스, 인터페이스, 메서드 등에 접근할 수 있도록 합니다.
가시성 설정
모듈 간의 가시성은 아래와 같이 module-info.java
파일의 exports
키워드를 사용하여 설정할 수 있습니다.
module com.example.moduleA {
exports com.example.packageA;
}
위 예제에서는 com.example.packageA
패키지를 com.example.moduleA
모듈 외부로 공개합니다.
또한, requires
키워드를 사용하여 다른 모듈을 이 모듈이 사용하도록 지정할 수도 있습니다.
module com.example.moduleA {
requires com.example.moduleB;
}
위 예제에서는 com.example.moduleA
모듈이 com.example.moduleB
모듈을 사용한다고 명시합니다.
정리
Jigsaw 모듈 시스템에서는 접근 제어와 가시성 설정을 통해 모듈간의 관계와 접근을 제어할 수 있습니다. 적절한 접근 제어와 가시성 설정을 통해 모듈 시스템의 장점을 최대한 활용할 수 있으며, 유연하고 견고한 애플리케이션을 개발할 수 있습니다.
더 자세한 내용은 공식 Java 문서를 참조하시기 바랍니다.