관리 메뉴

공부 기록장 💻

[Spring] Spring Boot의 정적 컨텐츠 기능 본문

# Tech Studies/Java Spring • Boot

[Spring] Spring Boot의 정적 컨텐츠 기능

dream_for 2023. 1. 5. 11:50

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

 

 


 

웹 개발 방식

웹을 개발하는 방법에는 3가지가 있다.

1. 정적 컨텐츠. 파일을 그대로 웹 브라우저로 전달하는 방법

2. MVC와 템플릿 엔진. Model, Controller, View 템플릿 엔진 화면을 통해 서버의 어떤 프로그램으로 HTML을 동적으로 변형하여 로드. 

3. API. Android, iOS, Vue, React 등의 클라이언트 또는 다른 서버와 json 포맷을 통해 데이터를 주고 받는 방식. 

 

위의 방법 중, 1번에 해당하는 정적 컨텐츠 기능을 Spring Boot 프로젝트에서 확인해보자.

 

 

 

정적 컨텐츠

스프링 부트는 정적 컨텐츠 기능을 제공한다. 이전에 Thymeleaf 템플릿 엔진을 이용한 View 환경 설정과 관련하여 쓴 글(https://dream-and-develop.tistory.com/357) 에서도 살펴본 바와 같이, spring boot 프로젝트 내 src > main > resources > static 디렉터리 내 html 파일을 로컬 서버에 올릴 수 있다.

 

다음과 같이 간단한 hello-static.html 을 작성한 후 spring boot application 을 실행한 뒤,

 

 

localhost:8080/hello-static.html 로 지정한 경로로 접속해보면 다음과 같이 <body> 태그 내에 작성한 텍스트가 뜨는 것을 확인할 수 있다.

 

 

 

spring boot에서 정적 컨텐츠를 제공하는 기능의 원리를 다음의 그림을 통해 이해해보자.

 

 

1. html 파일 이름의 경로로 브라우저가 접속을 한다.

2. 내장 Tomcat 서버가 경로 요청을 받아 우선적으로 controller에서 "hello-static" 과 매핑되는 것이 있는지 확인한다. (이전에 작성한 "hello" 는 존재하지만 "hello-static"은 존재하지 않는 상황이다.)

3. 2번에 해당하지 않는 경우, resources에 static/hello-static.html 파일이 존재하는지 확인한다.

4. 발견한 경우 해당 정적 컨텐츠를 반환한다.

 

 

728x90
반응형
Comments