728x90
스프링 웹 개발 기초
1. 정적 컨텐츠
- 파일 그대로를 웹 브라우저에 내려 주는 것
2. MVC와 템플릿 엔진
- 템플릿 엔진 : HTML 파일을 서버에서 프로그래밍 하여 동적으로 내려주는 방식
- MVC : Model, View, Controller로 구분하여 프로그래밍하는 패턴
3. API
- 서버가 안드로이드나 다른 클라이언트와 통신해야 하는 경우 JSON 형식으로 데이터를 주고받는다
- 이처럼 JSON 형식으로 서버와 클라이언트가 데이터를 주고 받으며 통신하는 방식을 API 방식이라고 한다
정적 컨텐츠
- 웹 브라우저에서 html 파일을 요청한다
- 내장 톰캣 서버가 요청을 받는다
- 요청을 스프링 컨테이너에게 넘긴다
- 스프링 컨테이너는 우선 컨트롤러에게 넘겨서 확인한다
- 만약 컨트롤러가 없으면 resources에서 html 파일을 찾아서 넘겨준다
MVC와 템플릿 엔진
MVC : Model, View, Controller
- 웹 브라우저에서 요청을 보낸다
- 내장 톰캣 서버가 요청을 받는다
- 요청을 스프링 컨테이너에게 넘긴다
- 스프링 컨테이너는 우선 컨트롤러에게 넘겨서 확인한다
- 컨트롤러에서 name value의 값을 찾아서 template 엔진을 연결시켜준다
- viewResolver가 hello-template 파일을 찾아서 변환시킨 후 웹 브라우저로 전송한다
API
@ResponseBody를 사용하면 viewResolver를 사용하지 않는다
대신 HTTP의 Body에 문자 내용을 직접 반환한다 (HTML Body Tag를 의미하는 것이 아니다)
@ResponseBody를 사용하고, 객체를 반환하면 객체가 JSON으로 변환된다
@ResponseBody 사용 원리
@ResponseBody를 사용
- HTTP의 BODY에 문자 내용을 직접 반환한다
- viewResolver 대신에 HttpMessageConverter가 동작한다
- 기본 문자처리 ; StringHttpMessageConverter
- 기본 객체처리 : MappingJackson2HttpMessageConverter
- byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있다
💡 참고 : 클라이언트의 HTTP Accept 헤더와 서버의 컨트롤러 반환 타입 정보 둘을조합해서 HttpMessageConverter가 선택된다
728x90
'인프런 🍀' 카테고리의 다른 글
[스프링 입문] 스프링 DB 접근 기술 (0) | 2022.09.11 |
---|---|
[스프링 입문] 회원 관리 예제 - 웹 MVC 개발 (0) | 2022.09.11 |
[스프링 입문] 스프링 빈과 의존관계 (0) | 2022.09.06 |
[스프링 입문] 회원 관리 예제 - 백엔드 개발 (0) | 2022.08.19 |
[스프링 입문] 강의 소개 및 프로젝트 환경 설정 (0) | 2022.07.20 |
댓글