스프링 웹 개발 기초

뚝딱이·2022년 7월 3일
0

스프링 입문 

목록 보기
2/7

정적 컨텐츠

웹 브라우저에서 localhost:8080/hello-static.html을 치면 톰캣 서버에 요청이 들어와 스프링부트로 넘겨준다. 넘어오면 컨트롤러를 찾지만 없기 때문에 resource에서 static/hello-static.html을 찾아 그대로 넘긴다.

웹 브라우저에서 스프링부트로 넘어오면 관련 Controller를 먼저 찾음
=> Contoller가 우선순위를 가진다.


MVC와 템플릿 엔진

  • MVC : Model, View, Controller
  • View는 화면을 그리는 것에 집중하고, Model과 Controller는 비즈니스 로직이나 내부의 구성에 집중한다.
<p th:text="'hello '+${name}"> hello! empty</p>
#'hello '+${name} : 서버를 탈 때
# hello! empty : 서버 없을 때

웹 브라우저에서 localhost:8080/hello-mvc 를 치면 톰켓 서버에서 요청을 받아 스프링 부트로 넘기고 helloController를 찾는다. hello-template을 반환하고 viewResolver가 hello-templat과 같은 것을 찾아 templates/hello-template.html을 템플릿엔진에 넘긴다. 템플릿 엔진에서는 랜더링해 변환한 html을 웹 브라우저에 넘긴다.

  • viewResolver : 화면과 관련된 해결자, 관련된 view를 찾아주고 템플릿 엔진을 연결시켜준다.

API

  • @ResponseBody 를 사용하면 viewResolver를 사용하지 않는다.
    • viewResolver 대신 HttpMessageConverter가 동작함
      • 문자처리 : StringHttpMessageConverter
      • 객체처리 : MappingJackson2HttpMessageConverter
  • @ResponseBody를 사용하고 객체를 반환하면 객체가 JSON으로 변환된다.
    • JSON은 (Key : Value) 형식으로 된 데이터 포멧이다.
  • @ResponseBody를 사용하면 HTTP의 BODY에 문자 내용을 직접 반환한다.

    웹 브라우저에서 localhost:8080/hello-api가 서버를 통해 넘어오면 컨트롤러를 찾고 @ResponseBody를 사용했기 때문에 viewResolver가 아닌 HttpMessageConverter가 동작한다. 객체이므로 JsonConverter가 동작하여 객체를 Json 스타일로 바꿔 웹 브라우저에 보낸다.


출처 : 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

profile
백엔드 개발자 지망생

0개의 댓글