별도의 서버 통신이 필요하지 않고 html만 화면에 띄울 때 사용한다.
- 웹 브라우저가 request를 날리면 spring boot 내장 톰캣 서버가 받는다.
- 내장 톰캣 서버가 spring에서 request를 처리할 controller가 있는지 먼저 찾아본다.
- controller가 없으면
/static
(or/public
or/resources
or/META-INF/resources
) 에서 html 파일을 찾는다.- 찾은 html 파일을 웹 브라우저로 넘긴다.
MVC는 프로젝트의 구성요소를 Model, View, Controller 로 역할을 나눠 코드를 작성하는 디자인 패턴이다.
thymeleaf, mustache 등의 템플릿 엔진을 이용하면 html 파일 내에서 데이터를 조작하기 편리하다.
- 웹 브라우저에서 request를 날리면 내장 톰캣 서버가 받아 spring에 관련 controller를 찾는다.
- controller에서 문자열을 반환하면 viewResolver가 화면을 찾아서 처리한다.
- controller에서 문자열을 반환할 때, 파라미터로 받은 model 객체에 원하는 데이터를 key, value 형식으로 담아 화면에 넘길 수 있다.
서버 간 통신 or 클라이언트에게 데이터를 넘겨줄 때 사용한다.
- 웹 브라우저에서 날린 request를 controller에서 받는다.
- API 방식을 사용할 때는 controller 함수에
@ResponseBody
를 붙인다.- 그럴 경우
viewResolver
대신에HttpMessageConverter
가 동작하면서 HTTP의 BODY에 문자 내용을 직접 반환한다.
이때, 객체를 반환하면 JSON 형식으로 변환된다.