스프링에서 정적 컨텐츠는 별도의 서버 로직을 처리하지 않고, 브라우저에서 바로 클라이언트에게 제공할 수 있는 파일(HTML,CSS,JS,..) 을 의미함. 프론트엔드의 파일과 같다고 할 수 있음.
장점
단점
MVC : Model, View, Controller
Model, View, Controller는 소프트웨어 설계 패턴으로, 애플리케이션을 세 가지 역할로 나누어 유지보수성과 확장성 을 높이는데 중점을 둠.
웹 애플리케이션에서 Spring MVC는 Controller 클래스에서 요청을 받고, Service/Model을 통해 처리하고, View (jsp, thymeleaf)로 응답한다.
또한 MVC 패턴에서 Controller가 프론트엔드에서 오는 JSON 데이터를 받는 역할을 한다.
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
@RestController
public class UserController{
@GetMapping("/hello")
public String getHello(){
return "hello";
}
}

@GetMapping("/hello") : 이 어노테이션은 Spring MVC에서 GET(클라이언트가 서버에 데이터를 요청하는 HTTP 요청 방식) 요청을 특정 메서드와 연결하는 어노테이션이고, localhost:8080/hello로 http통신을 보내면 해당 요청을 처리하는 컨트롤러의 특정 메서드와 매핑하여 실행되도록 한다.API는 응용 프로그램 간에 상호작용할 수 있도록 정의된 규칙이나 인터페이스.
예를들어, 프로그램의 다른 서비스(구글 지도, 날씨 정보, 축구 데이터) 기능이나 데이터를 활용하려면 API를 사용.
@ResponseBody 애노테이션을 선언하면 ViewResolver(뷰)를 사용하지 않고 바로 데이터를 제공

레이어드 아키텍처와 마찬가지로
1. Controller(프레젠테이션 계층)
2. Service(비지니스 계층)
3. Repository(데이터 접근 계층)
으로 나뉜다. 그래서 각각의 패키지로 나눈 후 Service와 Repository interface 를 설계한다.