Spring 기초

쪼경·2021년 7월 4일
0

정적 컨텐츠

  • 파일을 그대로 웹 브라우저에 보이는것

MVC와 템플릿엔진

템플릿 엔진

  • html을 그냥 보내주는것이 아니라 서버에서 프로그래밍을 해서 html을 동적으로 바꿔서 내리는것 (JSP, PHP 등등)

    ⇒ 그것을 하기위해서 controller, model, view를 합쳐서 MVC라고 부름

MVC [model, view, controller]

  • 옛날에는 view에 Controller가 포함되어잇는 구조였다. (MVC1 구조)

  • 지금은 view는 화면에 관련된 일만, 비즈니스 로직, 서버 뒷단의 일은 controller가 맡아서 한다.

  • 화면과 관련된 것들을 model에 담아서 화면에 넘겨준다.

  • html파일을 그대로 출력하는것이 아니라, 안에서 동적 처리(렌더링)를 하고 html로 변환 후 출력한다.



API

  • 객체를 반환하는 컨텐츠라고 생각하면 편함
  • HttpMessageConverter를 통해서 json으로 바꿔서 반환 해주는것
  • view 없이 바로 그대로 ResponseBody에 담아서 반환해서 보여주는것

@ResponseBody 란?

html에 나오는 <body>를 의미하는것이 아니다!

http에서 Header부와 Body부가 있는데, http의 응답 Body 부분에 이 데이터를 넣어주겠다 라는 의미이다

템플릿과의 차이가 뭐지??

  • API는 view 없이 그냥 데이터가 보내져 출력한다

  • @ResponseBody를 사용했을때, 서버 내부에서는 템플릿을 사용했을때 동작한 viewResolver 대신에 HttpMessageConverter 가 동작한다.

  • 기본 문자가 들어오면 StringHttpMessageConverter 가 처리하고

  • 기본 객체가 들어오면 MappingJackson2HttpMessageConverter 가 처리한다.
    ⇒ byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음

=⇒ 요즘은 그냥.. json을 많이 한다..ㅎ

profile
[개발자] Lv.1

0개의 댓글