웹 개발의 기초에는 세가지 방법이 있다.
1. 정적컨텐츠방법
2. MVC와 템플릿엔진
3. API
각각 내용을 정리할 예정이며, 이번에는 정적컨텐츠에 대해 정리했다.
세부적인 것 보다는 어떻게 동작하는지 큰 틀을 이해하는 목적으로 작성했다.
정적컨텐츠란 welcome page를 만들어서 전달했던 것 처럼 html파일 자체를 그대로 웹브라우저에 전달해주는 방식이다.
Spring Boot에서는 정적컨텐츠 기능을 자동으로 제공한다.
https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content
실제로 어떻게 동작하는지 IDE에서 테스트 할 수 있는 실습과정이다.
브라우저에 보여주고 싶은 원하는 html파일을 resources/static 경로에 생성한다.
테스트용 html 소스를 간단히 작성했다.
(파일명 : hello-static.html)
<!DOCTYPE HTML>
<html>
<head>
<title>jin2rang's static content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
jin2rang 정적 컨텐츠 파일 입니다.
</body>
</html>
프로젝트를 실행(run)시킨 후에 해당 파일이 브라우저에 잘 보이는지 확인한다.
현재 서버 포트가 8080이므로, localhost:8080/hello-static.html을 브라우저에서 요청한다.
그러면, 생성한 html파일을 볼 수 있다.
이때, 꼭 ' 파일명.html '로 요청해야한다.
이렇게 정적컨텐츠는 resources/static폴더에서 요청한 html파일을 가져와 브라우저에 보여준다.
대신 프로그래밍을 할 수 없고 html파일화면 그 자체만 볼 수 있다.
동작원리를 그림으로 살펴보면, 다음과 같다.
웹에서 localhost:8080/hello-static.html 요청하면 내장되어있는 톰캣서버가 요청을 받고, 스프링 컨테이너에게 전달한다.
그러면, 첫번째로 컨트롤러에서 hello-static이 있는지 확인한다.
그 이유는 컨트롤러가 우선순위를 가지고 있기 때문에 먼저 확인하는 것이다.
hello-static과 맵핑이 되어있는 컨트롤러를 찾지 못하면 resources/static에서 hello-static이 있는지 확인한 후, 웹 브라우저에 전달한다.
'Spring > Spring Boot 기초' 카테고리의 다른 글
Spring Boot - 웹개발 기초 - ② MVC란? (0) | 2022.11.09 |
---|---|
Spring Boot 기초 - 라이브러리 살펴보기 (0) | 2022.06.27 |
Spring Boot - thymeleaf ( 템플릿 엔진 ) (0) | 2022.06.25 |
Spring Boot - Welcome Page 만들기 (0) | 2022.06.25 |
Spring Boot - Import projects (0) | 2022.06.25 |