지식

[STS4] src/main/resources 의 static과 webapp의 차이

colin2 2024. 1. 31. 16:25

 

Spring Tool Suite 4 (STS4)에서 src/main/resources/static과 src/main/webapp 디렉토리에 정적 자원을 배치하는 것은 각각 다른 방식으로 처리됩니다.

  1. src/main/resources/static:
    • Spring Boot 프로젝트에서 권장되는 위치로, 정적 자원(이미지, CSS, JavaScript 등)을 저장하는 데 사용됩니다.
    • 클래스패스 상에 위치하기 때문에, 컴파일된 클래스 파일과 함께 JAR 파일 내에 포함됩니다.
    • Spring Boot는 내장된 웹 서버를 통해 이 디렉토리의 자원을 정적 자원으로 제공합니다.
    예를 들어, src/main/resources/static/css/style.css는 /css/style.css 경로로 웹 애플리케이션에서 접근 가능합니다.
  2. src/main/webapp:
    • 이 디렉토리는 기본적으로 서블릿 기반의 웹 애플리케이션에서 사용되는 디렉토리입니다.
    • Maven을 사용하는 경우, src/main/webapp에 위치한 자원은 WAR 파일의 루트에 포함됩니다.
    • 일반적으로 src/main/webapp 디렉토리에는 JSP 페이지, 이미지, CSS, JavaScript 등이 저장됩니다.
    예를 들어, src/main/webapp/css/style.css는 /css/style.css 경로로 웹 애플리케이션에서 접근 가능합니다.

Spring Boot 프로젝트에서는 src/main/resources/static을 사용하는 것이 권장되며, 이는 내장된 웹 서버를 통해 정적 자원을 빠르게 제공할 수 있기 때문입니다. 만약 서블릿 기반의 전통적인 웹 애플리케이션을 개발하고 있다면 src/main/webapp을 사용할 수 있습니다.

간단히 말해서, Spring Boot에서는 정적 자원은 src/main/resources/static에, 전통적인 서블릿 기반의 프로젝트에서는 src/main/webapp에 위치시키는 것이 일반적인 관례입니다.