5편 JAVA spring boot study - 정적 컨텐츠

송인성·2022년 3월 15일
0

서버에서 데이터를 클라이언트 딴으로 내려주는게 아니라, 파일을 그대로 웹브라우저에 내려주는것을 정적 컨텐츠라고 한다.

MVC란 jsp,php의 예시를 들 수 있는데 html을 바로 주는게 아니라, 서버에서 프로그래밍을 해서 클라이언트쪽에 동적으로 전달하는 것을 의미한다.
이러한 동적으로 작동을 하기위해서 model, controller, view를 하는것을 말한다.

정적컨텐츠는 그대로 웹 브라우저에 전달, mvc는 서버에서 변형에서 전달하는 방식이다.

API 과거에는 xml도 많이 사용했었는데 현재는, json 포맷형식으로 클라이언트에게 데이터를 전달하는 방식을 api 방식이라고 한다.
요즘에는 react와 같은 프론트 딴에서 json형식으로 데이터만 내려주면 view를 그리기때문에 api 방식을 많이 사용하는 추세이다.

서버끼리는 어떤 데이터가 왔다갔다 하는지가 중요하기에 api방식을 서버에서도 주로 사용한다.

정적 컨텐츠에 대해 자세히 살펴보면,
spring boot는 정적 콘텐츠 기능을 자동으로 제공을 한다.


위 사진을 보진을 보면, main - java - resources안에 static을 보면

localhost:8080/hello-static.html

을 입력하면, 바로 해당 html파일이 정적으로 바로 불려지는것을 볼 수 있다.
이처럼 spring은 static파일안에 html파일을 정적으로 바로 호출해 올 수 있는것을 확인하는 시간을 가진다.

여기까지는 가벼운 설명이고 이것을 조금더 딥하게 들어가면
웹브라우저에서

요청이 있으면 우리는 이전 편에서 spring을 설치할때
spring web 라이브러리를 설치했다. 이 라이브러리를 설치함으로써 여러 의존성 라이브러리들이 같이 프로젝트 안에 설치가 되었는데 이중에는 서버를 실행하기위해 내장 톰캣 서버가 같이 의존성에 의해 설치가 되었다는 배경지식에 대해서 생각해봐야한다.

따라서, 위 설명을 통해

localhost:8080/hello-static.html

우리는 해당 요청을 클라이언트가 요청을 하면, 내장 톰캣 서버를 거쳐 톰캣 서버가 spring(= 스프링 컨테이너)에게 요청을 넘긴다. 그러면 spring은 controller부분에 hello-static이 있는지 찾는다. 컨트롤러가 static폴더보다 우선순위를 갖는다.

hello-static으로 매핑된(= @Controller중 return "hello-static") controller가 없는것을 확인한다면 spring-boot가 resources에 있는 hello-static을 찾아서 반환하는 원리인 것이다.

profile
코드 한줄에 의미를 생각할 수 있는 개발자가 되어 가는중... 🧑🏻‍💻

0개의 댓글