본문 바로가기
카테고리 없음

Eclipse에서 Java 프로젝트 컴파일 속도 향상하기: JarScanner 설정 이해하기

by [김경민]™ ┌(  ̄∇ ̄)┘™ 2023. 11. 21.
728x90

프로그래밍을 하다 보면 컴파일 시간이 길어져 작업 효율이 떨어지는 경우가 종종 있습니다. 특히 큰 프로젝트나 많은 의존성을 가진 경우에는 이 문제가 더욱 심각해질 수 있죠. 오늘은 Apache Tomcat 서버 환경에서 Eclipse를 사용하여 Java 프로젝트를 컴파일할 때 컴파일 속도를 향상시키는 하나의 방법, JarScanner scanClassPath="false" 설정에 대해 알아보겠습니다.

JarScanner의 역할

Apache Tomcat과 같은 서블릿 컨테이너에서는 JarScanner가 웹 애플리케이션의 클래스 패스 내 모든 JAR 파일들을 스캔합니다. 이 과정에서 Servlet 3.0 스펙에 정의된 web-fragment.xml, META-INF/services 등의 메타데이터를 찾아내는데, 이는 상당한 시간과 자원을 소모할 수 있습니다.

 

728x90

scanClassPath="false" 설정의 효과

JarScanner scanClassPath="false" 설정은 JarScanner가 이러한 스캔 작업을 수행하지 않도록 합니다. 결과적으로 다음과 같은 이점을 얻을 수 있습니다:

  1. 컴파일 시간 감소: 클래스 패스 상의 JAR 파일들을 스캔하지 않게 되면, 컴파일 시간이 상당히 단축됩니다. 특히 많은 JAR 파일을 포함한 큰 프로젝트에서 이 차이는 매우 크게 느껴질 수 있습니다.
  2. 자원 사용 최적화: 불필요한 JAR 파일 스캔을 방지함으로써 CPU 사용량과 I/O 작업이 줄어들어 전체 시스템 성능이 향상됩니다.
  3. 효율적인 스캔: 모든 JAR 파일을 스캔할 필요가 없는 경우, 이 설정을 통해 불필요한 스캔을 제거함으로써 전체적인 컴파일 과정을 최적화할 수 있습니다.

주의 사항

이 설정을 적용할 때는 주의가 필요합니다. 어떤 JAR 파일들은 실행 시 필요한 메타데이터를 포함하고 있으며, 이러한 파일들을 스캔하지 않으면 런타임 에러가 발생할 수 있습니다. 따라서, 이 설정을 적용하기 전에는 어떤 JAR 파일들이 스캔되지 않는지, 그리고 이로 인해 발생할 수 있는 부작용을 면밀히 고려해야 합니다.

728x90

댓글