김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 정리
정적 컨텐츠는 가장 단순한 형태의 웹 리소스 제공 방식입니다. 서버는 로직 없이 파일을 있는 그대로 브라우저에 반환합니다.
Spring Boot는 기본적으로 /resources/static 디렉토리에 위치한 파일들을 정적 컨텐츠로 서빙합니다.
src/main/resources/static/hello-static.html
<!DOCTYPE HTML>
<html>
<head>
<title>static content</title>
<meta charset="UTF-8" />
</head>
<body>
정적 컨텐츠 입니다.
</body>
</html>
http://localhost:8080/hello-static.html
/hello-static.html 요청/static 폴더에서 파일 탐색 후 반환❗ 정적 컨텐츠는 단순하지만 동적 처리(예: 사용자 맞춤형 페이지)가 불가합니다.
전통적인 서버 사이드 렌더링 방식입니다. 컨트롤러가 모델 데이터를 생성하고, 뷰 템플릿(예: Thymeleaf, JSP)을 통해 HTML을 생성합니다.
Spring MVC는 이 구조를 자연스럽게 지원합니다.
@Controller+ModelAndView조합이 일반적입니다.
모던 웹/모바일 환경에서는 API 방식이 널리 사용됩니다. 서버는 HTML 대신 JSON 형식의 데이터만 클라이언트에 전달하며, UI는 클라이언트(React, Vue, 모바일 앱)가 담당합니다.
@RestController
public class HelloApiController {
@GetMapping("/api/hello")
public Map<String, String> hello() {
return Map.of("message", "Hello, API!");
}
}