1.정적 컨텐츠
서버에서 하는 것 없이 서버에서 파일을 그냥 내려주는 것
스프링 부트는 정적 컨텐츠 기능을 기본으로 제공한다.
1) 웹 브라우저에서 URL을 보냄
2) 스프링부트 내장 톰켓 서버가 요청을 받음
3) 스프링 컨테이너 쪽에서 컨트로러가 있는지 확인
4) 없으면 외부에 있는 resource에 있는 정적 파일을 찾음
2.MVC와 템플릿 엔진
JSP, PHP 같은 것들이 템플릿 엔진이다. HTML을 그냥 주는게 아니라 서버에서 동적으로 바꿔서 내려주는 것
MVC: Model, View, Controller
과거에는 Controller와 View가 나눠져 있지 않았다.(Model One 방식)
View는 화면을 그리는데 모든 역량을 집중해야 된다.
Controller는 내부적인 것을 처리하는 데에 집중해야 된다.
1) 웹 브라우저에서 URL을 보냄
2) 스프링부트 내장 톰켓 서버가 요청을 받음
3)스프링 컨테이너는 helloController를 호출하고 리턴을 줌
4)viewResolver가 view를 찾아서 템플릿 엔진에게 넘겨 처리
5)HTML을 변환해서 넘김
3.API
JSON 데이터구조 포맷으로 클라이언트에 내려주는 것이 보통 API
서버끼리 통신할 때도 보통 사용
RespnseBody는 HTTP의 Body부분에 데이터를 직접 넣어주겠다.
1) 웹 브라우저에서 URL을 보냄
2) 스프링부트 내장 톰켓 서버가 요청을 받음
3)스프링 컨테이너는 helloController가 있는 걸 찾고 @ResponseBody가 있으면 HTTP 응답에 그대로 넘겨야 되겠구나 함
4)문자면 문자를 그대로 넘기고 객체를 넘겨야 하면 default가 json방식으로 넘긴다. 객체를 보고 ViewResolver 대신 HttpMessageConverter라는 애가 동작을 해서 StringConveter, jsonConverter 등을 가지고 데이터를 바꿔서 넘김
기본 객체처리: MappingJackson2HttpMessageConverter
'프로그래밍 > Spring' 카테고리의 다른 글
스프링 핵심 원리 - 객체 지향 설계와 스프링 (0) | 2022.10.03 |
---|---|
[SPRING] 회원 관리 예제 - 백엔드 개발 (0) | 2022.09.20 |
[SPRING] 프로젝트 환경설정 (0) | 2022.09.18 |
[Spring] AOP(Aspect Oriented Programming) (0) | 2021.05.20 |
[spring] 빈 라이프사이클과 범위 (0) | 2021.04.15 |