[java] Jigsaw 모듈 비트코드 추적 도구 (jdeps) 소개

Java 9 이상부터 Jigsaw 모듈 시스템이 도입되었습니다. 이 모듈 시스템을 통해 Java 애플리케이션을 모듈 단위로 구성할 수 있으며, 이를 통해 애플리케이션의 구조와 의존성을 더욱 명확하게 관리할 수 있습니다.

Jigsaw 모듈 시스템을 사용하면 모듈 간의 의존성을 명시적으로 선언할 수 있으며, 컴파일 및 실행 시에 자동으로 모듈의 의존성을 해결해줍니다. 그러나 때로는 모듈 간의 의존성을 파악하기 위해 추가적인 도구가 필요할 수 있습니다. 이때 jdeps라는 도구가 유용하게 사용될 수 있습니다.

jdeps는 Jigsaw 모듈 시스템을 위한 비트코드 분석 도구로, 주어진 모듈 또는 클래스 파일을 분석하여 해당 모듈 또는 클래스가 의존하는 다른 모듈들을 확인할 수 있습니다. 이를 통해 애플리케이션의 모듈 간 의존성을 추적하고, 필요한 의존 모듈을 정확히 지정할 수 있습니다.

jdeps 사용법

jdeps는 주로 명령행으로 실행되며, 다음과 같은 형식으로 사용할 수 있습니다:

jdeps [options] <파일 또는 디렉토리>

<파일 또는 디렉토리>는 분석하고자 하는 모듈 파일 또는 클래스 파일 또는 패키지(디렉토리)를 지정합니다.

jdeps를 실행하면, 모듈 또는 클래스 파일 내에 포함된 의존성 정보와 함께, 해당 모듈 또는 클래스에 대한 분석 결과가 출력됩니다. 출력 결과를 통해 어떤 모듈이 다른 모듈에 의존하고 있는지를 확인할 수 있습니다.

jdeps 예시

다음은 jdeps를 사용하여 myapp.jar라는 모듈 파일을 분석하는 예시입니다:

jdeps myapp.jar

이때 myapp.jar라는 모듈 파일이 의존하는 다른 모듈들과 해당 모듈의 클래스들의 의존성 정보가 출력됩니다.

결론

Jigsaw 모듈 시스템은 Java 애플리케이션의 구조와 의존성을 더욱 명확하게 관리할 수 있도록 도움을 주는 기능입니다. 이를 위해 jdeps 도구를 사용하여 모듈 간 의존성을 추적하고, 필요한 모듈을 정확히 지정할 수 있습니다. jdeps는 Java 9 이상 버전에서 사용 가능하며, Java 개발자들에게 유용한 도구로 활용될 수 있습니다.


참고문헌: