인프런 커뮤니티 질문&답변

임현강님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC - 실용적인 방식

template, webapp

21.03.23 22:44 작성

·

299

12

안녕하세요 강사님, 말씀하셨던대로 이번 강의에서 대부분의 의문이 해결되었습니다.

그런데 이번 강의에서도 뷰 파일의 저장 위치가(template or webapp) 달라지는 부분에 대해서는 별다른 언급이 없더라구요.

이 부분도 뒷부분을 듣다보면 알게 되나요??

답변 2

16

김영한님의 프로필 이미지
김영한
지식공유자

2021. 03. 23. 23:05

안녕하세요. 현강님

6. 스프링 MVC 기본 기능 -> HTTP 응답 - 정적 리소스, 뷰 템플릿에서 추가 설명이 있습니다.

미리 말씀드리면 이 부분은 과거? 이야기가 좀 필요한데요.

톰캣 같은 WAS는 기본으로 webapp 하위 경로에 정적 리소스나 jsp 같은 것을 두도록 스펙에 명시되어 있습니다. 그리고 WAS 컨테이너들이 이 경로를 인식해서 동작합니다. 그리고 이것이 War로 빌드되는 이유중에 하나이지요.

이 war를 열어보면 항상 webapp이라는 폴더가 존재하게 됩니다.

그런데 스프링 부트는 톰캣을 내장하고 있기는 하지만, WAS 스펙대로 구현한 것이 아니기 때문에, webapp 같은 특정 폴더를 기준으로 동작하기 보다는 클래스 패스라는 경로를 기준으로 데이터를 로드하고 사용하도록 되어 있습니다. (추가로 스프링 부트의 빌드 특성상 클래스 패스의 리소스를 인식할 수 있는데 이 부분까지 들어가면 스프링 부트 내부에 대한 복잡한 설명이 들어가서 생략하겠습니다.)

그래서 클래스 패스인 resoruces 하위에 template이라는 기본 폴더를 지정해두고, 여기에 템플릿 파일들을 두도록 되어 있습니다.

쉽게 이야기해서 스프링 부트는 WAS 스펙을 구현하는 것이 아니기 때문에 webapp 같은 경로를 사용하지 않고, 스프링 부트가 임의의 클래스 패스 경로를 지정해두었다고 이해하시면 됩니다. 그리고 그 경로를 설정으로 변경할 수도 있습니다.

감사합니다.

7

임현강님의 프로필 이미지
임현강
질문자

2021. 03. 23. 23:10

한 번에 이해되었습니다.

영한님의 강의는 고퀄리티 강의도 강의지만 시원시원한 답변도 강의료의 5할정도는 차지하지 않을까 싶습니다.

답변 감사합니다!