Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9 jdeprscan 도구 완벽 가이드: 사용 중단(deprecated) API 탐지 방법과 주요 옵션

jdeprscan 도구란 무엇인가?

jdeprscan은 클래스, 아카이브(JAR), 폴더를 대상으로 정적 분석(static analysis)을 수행하여 사용 중단(deprecated)으로 표시된 API 요소를 찾아내는 도구입니다. Java 애플리케이션을 최신 JDK 버전으로 마이그레이션하기 전에 코드베이스를 점검할 때 매우 유용하게 활용됩니다.

다만 이 도구에는 몇 가지 중요한 특징이 있습니다.

  • Java SE 전용 감지: jdeprscan은 Java SE에서 사용 중단으로 표시된 항목만 감지하며, 서드파티 라이브러리나 기타 라이브러리에서 표시된 항목은 감지하지 않습니다.
  • 의존성 요구 사항: 분석 대상 클래스(또는 클래스 집합)가 의존하는 모든 클래스는 컴파일 및 실행 시점에 접근 가능해야 합니다.
  • 오류 처리: 의존 클래스를 찾지 못할 경우, 도구는 cannot find a class 오류 메시지와 함께 찾을 수 없는 클래스 목록을 출력합니다.

jdeprscan 문법(Syntax)

jdeprscan의 기본 사용 형식은 다음과 같습니다.

jdeprscan [options] {dir | jar | class}

분석 대상으로는 디렉터리(dir), JAR 파일(jar), 개별 클래스(class)를 지정할 수 있습니다.

또한 "jdeprscan" 명령은 jmods\jdk.jdeps.jmod 모듈 파일을 통해 지원되며, JDK 9, 10, 11에서는 이 모듈이 lib\modules JImage 파일에 연결(link)되어 포함됩니다.

jdeprscan 주요 옵션 정리

jdeprscan 도구에서 사용할 수 있는 옵션 목록은 다음과 같습니다.

Options:
        --class-path PATH
        --for-removal
        --full-version
-? -h   --help
-l      --list
        --release 6|7|8|9|10|11
-v      --verbose
        --version

각 옵션의 역할을 간략히 살펴보면 다음과 같습니다.

옵션설명
--class-path PATH분석 시 참조할 클래스 경로를 지정합니다. 의존성 클래스가 있는 위치를 알려줄 때 유용합니다.
--for-removal향후 제거 예정(forRemoval=true)으로 표시된 deprecated API만 검색합니다.
--full-version / --version도구의 전체 버전 또는 간단한 버전 정보를 출력합니다.
-?, -h, --help도구의 사용법과 도움말을 표시합니다.
-l, --list클래스를 스캔하지 않고, 해당 JDK에서 알려진 deprecated API 목록만 출력합니다.
--release 6|7|8|9|10|11특정 Java SE 릴리스를 기준으로 사용 중단된 API를 검사합니다.
-v, --verbose추가적인 상세 정보를 함께 출력합니다.

마무리

jdeprscan은 Java 플랫폼의 발전에 따라 사라질 수 있는 API를 미리 파악하여 코드 호환성을 확보하는 데 필수적인 도구입니다. 특히 구버전 JDK에서 신규 버전으로 업그레이드하기 전에 --for-removal 옵션과 --release 옵션을 조합해 사용하면, 향후 제거될 위험이 큰 API를 우선적으로 점검하고 계획적으로 리팩토링할 수 있습니다.