inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

섹션2의 정적 컨텐츠 부분에 질문이 있습니다

125

Dongjun Lee

작성한 질문수 2

0

강의를 한번 돌리고 복습중입니다

섹션2. 정적 컨텐츠 강의에서 위와 같이 /hello-static.html을 입력하여 요청하면 우선 1번과 같이 hello-static관련 controller에서 있는지 확인하고 없으면 2번과 같이 정적 컨텐츠를 내려준다고 설명하셨습니다.

이와 관련하여 궁금증이

 

uri요청 자체가 hello-static.html로 요청자체에 .html을 요청하였기 때문에 .html을 찾아야 하는게 흐름상 맞지 않나라는 생각이 듭니다. gpt를 통해 알아보니 .html을 처리하는 controller가 있을 수 있기 때문이라고 하는데, 그렇다면 hello-static.html을 요청할 경우 스프링 컨테이너에서 찾는 controller의 이름이 어떻게 되나요??

dispatcher servlet처럼 논리 이름만을 생각하여 .html을 제외한 hello-static이라는 controller의 이름을 찾을 것 같은데 맞는지 궁금하네요

질문 요점: /hello-static.html로 요청했을 경우 1번 경우의 스프링 컨테이너에서 controller를 찾을때 찾는 이름의 기준이 무엇인지에 대한 질문.

java spring mvc spring-boot

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

스프링 부트와 관련해 궁금증을 해결해 드리겠습니다.

스프링 부트에서 정적 컨텐츠 요청 처리 과정은 주로 DispatcherServlet을 통해 이루어집니다. DispatcherServlet은 클라이언트로부터 들어오는 모든 요청을 첫 번째 단계로 받는 프론트 컨트롤러입니다. 클라이언트가 /hello-static.html과 같이 정적 리소스를 요청할 경우, 스프링 부트는 먼저 해당 요청을 처리할 컨트롤러가 있는지 확인합니다.

정적 컨텐츠 처리에 있어서, 스프링 부트는 Controller를 찾지 않고 내부적으로 설정된 정적 리소스 위치에서 해당 파일이 있는지 검사합니다. 별도로 DispatcherServlet에서 .html을 처리하는 컨트롤러를 찾는 것이 아니라, 정적 리소스 처리 규칙에 따라 /static, /public, /resources, /META-INF/resources 등의 디렉토리에서 hello-static.html 파일을 찾게 됩니다.

요청된 URI에 대한 컨트롤러의 이름 찾기보다는, 스프링 부트의 정적 리소스 위치에서 해당 파일을 찾는 방식으로 이해하시면 됩니다. .html 파일을 찾아 응답하는 것은 별도의 컨트롤러 명명보다는 정적 리소스 처리 로직에 의해 이루어지므로, 일반적인 컨트롤러 탐색 로직과는 다릅니다.

따라서, 정적 컨텐츠 처리에 있어서는 DispatcherServlet이 직접 .html 파일을 처리하기 위한 컨트롤러를 찾는 것이 아니라, 정적 리소스로서 해당 파일을 서빙하는 흐름을 갖습니다.

질문해 주셨던 부분에 대해 명확한 답변이 되었길 바랍니다. 추가 질문이 있다면 언제든 문의해 주세요!

..

0

74

2

Unused property.....

0

98

2

project JDK is misconfigured

0

130

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

82

2

단위/통합 테스트 버전충돌 문제

0

91

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

228

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

101

2

윈도우 build test오류 질문

1

102

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

98

2

테스트 실행 시 에러 질문

0

289

1

name을 통한 비교와 객체를 통한 비교

0

77

1

빌드 후 libs 없음

1

128

1

윈도우 gradlew.bat 에러

0

167

1

@PostMapping("/members/new")가 동작하지 않습니다

0

88

1

java static class와 kotlin class

0

77

1

스프링 DB연결

0

126

1

소요 시간

0

85

2

ddl.sql에 빨간 밑줄

1

101

2

welcome page 에러

0

180

3

잘 모르겠습니다.

0

163

2

fail을 똑같이 쳤는데 오류가 발생해요

0

156

2

index.html Welcome page

0

120

1

프로젝트 gradle-groovy ?

0

364

1

테스트코드 메서드명 한글

0

199

2