🧩 classpath 란

정의

classpathJVM이 클래스와 리소스를 찾기 위해 참조하는 검색 경로이다. 컴파일된 .class 파일뿐 아니라 설정 파일, 이미지, 템플릿 같은 리소스도 포함될 수 있다.

  • JVM이 프로그램을 실행할 때 클래스를 찾는 기준 경로다.
  • src/main/resources에 들어간 파일은 보통 classpath에 포함된다.
  • Spring에서는 classpath: 접두어로 리소스를 참조하는 경우가 많다.

⚙️ IntelliJ 에서 classpath 설정

image

  • Source, Resources 로 지정된 경로는 모두 classpath에 포함된다.
  • 따라서 application.properties, 정적 리소스, XML 설정 파일 등을 classpath 기준으로 읽을 수 있다.

📦 ClassPathResource

역할

ClassPathResourceclasspath 안에 있는 리소스를 읽기 위한 Spring의 Resource 구현체이다.

  • classpath 내부의 파일을 가져올 때 사용한다.
  • classpath: 경로를 코드에서 다루고 싶을 때 유용하다.
public Resource getResource(String relativePath) {  
    ClassPathResource resource = new ClassPathResource("/WEB-INF/");  
    return resource.createRelative(relativePath);  
}

✅ 사용 예시

  • 설정 파일 읽기
  • 정적 리소스 참조
  • 템플릿 파일 로딩
  • 테스트 리소스 접근

⚠️ 주의사항

  • classpath:는 파일 시스템 경로와 다르다.
  • 실행 환경에 따라 실제 물리 경로가 달라질 수 있다.
  • jar로 패키징하면 classpath 리소스는 파일처럼 직접 수정하기 어렵다.

📌 정리

  • classpath는 클래스와 리소스를 찾는 기준 경로다.
  • Spring에서는 리소스 로딩과 정적 파일 참조에 자주 사용한다.
  • IntelliJ의 Source, Resources 설정이 classpath 구성에 영향을 준다.

연결문서

태그:

카테고리:

업데이트:

댓글남기기