작성
·
299
답변 2
16
안녕하세요. 현강님
6. 스프링 MVC 기본 기능 -> HTTP 응답 - 정적 리소스, 뷰 템플릿에서 추가 설명이 있습니다.
미리 말씀드리면 이 부분은 과거? 이야기가 좀 필요한데요.
톰캣 같은 WAS는 기본으로 webapp 하위 경로에 정적 리소스나 jsp 같은 것을 두도록 스펙에 명시되어 있습니다. 그리고 WAS 컨테이너들이 이 경로를 인식해서 동작합니다. 그리고 이것이 War로 빌드되는 이유중에 하나이지요.
이 war를 열어보면 항상 webapp이라는 폴더가 존재하게 됩니다.
그런데 스프링 부트는 톰캣을 내장하고 있기는 하지만, WAS 스펙대로 구현한 것이 아니기 때문에, webapp 같은 특정 폴더를 기준으로 동작하기 보다는 클래스 패스라는 경로를 기준으로 데이터를 로드하고 사용하도록 되어 있습니다. (추가로 스프링 부트의 빌드 특성상 클래스 패스의 리소스를 인식할 수 있는데 이 부분까지 들어가면 스프링 부트 내부에 대한 복잡한 설명이 들어가서 생략하겠습니다.)
그래서 클래스 패스인 resoruces 하위에 template이라는 기본 폴더를 지정해두고, 여기에 템플릿 파일들을 두도록 되어 있습니다.
쉽게 이야기해서 스프링 부트는 WAS 스펙을 구현하는 것이 아니기 때문에 webapp 같은 경로를 사용하지 않고, 스프링 부트가 임의의 클래스 패스 경로를 지정해두었다고 이해하시면 됩니다. 그리고 그 경로를 설정으로 변경할 수도 있습니다.
감사합니다.
7