스프링 부트에서의 자동 매핑과 index 파일 사용 시 주의사항

Lee·2023년 4월 13일
0

문제

스프링 부트를 사용하여 간단한 웹 애플리케이션을 개발하던 중, 두 개의 경로(/와 /hello) 모두 index.mustache 파일에 접근할 수 있다는 문제가 발견되었습니다.

원인

스프링 부트에서는 특정한 파일 이름들을 기본값으로 사용하여 자동으로 매핑이 됩니다. 그 중 하나가 'index' 파일입니다. 이 파일은 기본적으로 root 경로 (예: /)에서 찾게 됩니다. 따라서 별도의 매핑을 설정하지 않아도 스프링 부트 애플리케이션이 실행되면 자동으로 / 경로에서 index.mustache 파일을 찾습니다.

해결

View에 사용할 파일을 index 이름으로 생성하지 않거나, index 파일을 사용하기 위한 추가적인 폴더 만들기

만약 index.mustache 파일을 hello.mustache로 변경하면 기본 매핑이 적용되지 않으므로, / 경로에서 hello.mustache 파일을 찾지 못하게 됩니다. 이 경우에는 사용자 정의 매핑만 적용되어 /hello 경로에서만 hello.mustache 파일을 찾게 됩니다.
또한, resources 폴더의 기본적으로 존재하는 static, templetes 폴더 내에 직접 저장하지 않고 static/folder, templetes/folder 와 같이 사용하는 방법을 통해서도 이러한 문제를 해결할 수 있습니다.

결론

지금까지 스프링 부트에서 발생하는 자동 매핑의 원인과 해결 방법을 살펴보았습니다. Spring boot에서 / 경로의 자동 매핑이 적용되지 않게 하려면 index 이름의 view 파일을 사용하지 않아야 합니다. 또한 resources 폴더의 기본적으로 존재하는 static, templetes 폴더 내에 추가적인 폴더를 만드는 것을 통해서도 이러한 문제를 해결할 수 있습니다.

profile
잡다한 개발자

0개의 댓글