MVC (Model-View-Controlle)
: 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리

- Model :
데이터와 비즈니스 로직 - View :
사용자 인터페이스 - Controller :
Model과 View 사이의 상호작용을 조정하고 제어
Spring MVC
Servlet API를 기반으로 구축된 웹 프레임워크
DispatcherServlet이 중앙에서 HTTP 요청을 처리해주는데 이는 공유 알고리즘을 제공하는 Front Controller 패턴으로 설계되어있다
더보기
Servlet (서블릿) : 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양

Front Controller 패턴
서블릿의 동작 방식에 맞춰 코드를 구현한다면 무수히 많은 Servlet 클래스를 구현해야하기에 Front Controller 패턴 방식을 사용해 효율적인 api처리가 필요하다.

@Controller 애너테이션이 달려있는 클래스를 생성한 뒤 @GetMapping 처럼 요청한 HTTP Method 와 일치하는 애너테이션을 추가한 메서드를 구현한다
@RestController
public class HelloController {
@GetMapping("/api/hello")
public String hello() {
return "Hello World!";
}
}