본문으로 바로가기

( 강의 수강 후 작성한 내용입니다. 코드로 배우는 스프링 부트)

 

 

static: 말 그대로 정적인 컨텐츠

따른 로직을 수행하지 않고 파일 그대로를 클라이언트에 내려주는 형식.

 

 

MVC 패턴: Model + View + Controller

 

클라이언트에서 서버로 요청을 하면 Spring 컨테이너가 Controller를 맵핑시켜 로직 수행 후

ViewResolver를 통해 View를 반환하는 형식.

 

코드 예제)

 

SpringBoot 에서 작성된 /hello-mvc 컨트롤러.

 

hello-template.html

 

 

name 파라미터가 전송된 모습

 

웹 페이지에 hello-mvc를 요청하면, 

Spring Boot에서 /hello-mvc (Method: GET) 에 맞는 컨트롤러를 찾아 맵핑시킨다.

hello-mvc 컨트롤러에서 Model 속성을 정의하고 hello-template을 리턴하면

 

ViewResolver가 hello-template.html 이라는 View 파일을 찾아 웹 브라우저에 리턴하여 화면에 템플릿 파일이 띄워진다. 

 

 

API 방식

View가 필요없는 서버 간 통신 혹은 서버에서는 Data를 제공하고 Front가 분리된(React, Vue 등) 프로젝트에서 사용한다.

 

코드 예제)

controller & class

 



JSON 형식으로 내려준다

 

 

 

 

동작 방식

 

웹 브라우저에서 서버(localhost:8080) 으로 hello-api를 요청하면, 

hello-api url에 맞는 컨트롤러를 찾아 맵핑한다. 

 

이전에 @ResponseBody annotation이 없는 컨트롤러는 template찾아 맵핑시켰지만

@ResponseBody로 인해 html body 에 결과값을 직접 return 하게 된다. 

 

위 예시에서는 객체가 리턴되는데, Spring 에서 객체를 리턴하면 Json 형식으로 반환하는게 기본이다. 

 

controller에서 리턴값이 단순 문자열이라면 StringConverter(StringHttpMessageConverter) 가, 객체 형태라면 JsonConverter(MappingJackson2HttpMessageConverter)가 작동하게 된다.